Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

X-Program ПО, новости сайта и программирование в Delphi7


Информационный Канал Subscribe.Ru

Выпуск №25


О нас:
www.X-Program.narod.ru (Наш сайт. Последнее обновление - 12.12.2004);
http://xbase.banerka.ru/?xprogram (Наша гостевая книга);
http://narod.yandex.ru/userforum/?owner=x-program (Наш форум по Delpi7)
X-Program@narod. ru (Наш EMail. Присылайте свои вопросы).
http://www.delphi-faq.fatal.ru (Сайт наших друзей)
Привет всем подписчикам. Спасибо за ваши вопросы, которых кстати приходит довольно много. Мы не можем размещать все вопросы в одной рассылке долгое время. Поэтому мы решили открыть страницу в internet, с вашими вопросами и ответами конечно! Вот её адрес http://www.x-program.narod.ru/vopros.html. Заходите, будем рады!                             

Голосование


Как вы относитесь к нашей рассылке?

Супер!

Нормально.

Удовлитворительно.

Плохо.

Результаты

Сегодня в выпуске:
1 - Вопросы подписчиков
2 - Вылет окна
3 - Вывод текста на печать, используя com порт
4 - Как добавить документ в меню Документы кнопки ПУСК
5 - Событие при потере и установке фокуса для формы
6 - Запретить запуск второго экземпляра программы
Вопросы подписчиков

Вопрос №1 [MagicSasha]

Здарово челы. Как рисунки JPG засунуть в DLL, а потом использовать в Delphi. И еще как сохранить параметры о цветах в ini файл.

Ответ №1 [X-Program]

Привет чел:)
Все очень просто. Берём любую програму для работы с ресурсами. Я взял Restorator (в Internet много взломов для него).
Создаём библиотеку в Delphi. Потом открываем эту библиотеку Restoratorом и суём туда BMP(BMP так как я не знаю ак загружать JPG) файлы.
В Delphi в библиотеке пишем следйший код.

procedure JPG;
var
bit:TBitmap;
begin
bit:=TBitmap.Create;
bit.LoadFromResourceName(HInstance,'Bitmap');//Вроде так. Bitmap- это папка в которую ты в ресурсах засунул BMP.
end;
Вылет окна

Если Вы хотите ввести в изумление пользователя с первых минут его использования Вашего приложения, тогда самый верный способ - заставить окно “вылететь”, а не появиться обычным способом! Сделать это довольно легко, надо только описать два события: OnShow (на появление формы) и OnClose (на закрытие формы)Выглядеть это будет так: 

procedure TForm1.FormShow(Sender: TObject);
var
  RectSmall, RectNormal: TRect;
begin
  RectSmall := Rect(0, 0, 0, 0);
  RectNormal := Form1.BoundsRect;
  DrawAnimatedRects(GetDesktopWindow, IDANI_CAPTION, RectSmall, RectNormal);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  RectSmall, RectNormal: TRect;
begin
  RectSmall := Rect(0, 0, 0, 0);
  RectNormal := Form1.BoundsRect;
  DrawAnimatedRects(GetDesktopWindow, IDANI_CAPTION, RectNormal, RectSmall);
end;


Мы объявляем две переменные класса TRect (От англ. Rectangle - прямоугольник ). Называем их, например RectSmall и RectNormal. Для RectSmall мы задаём нули: (0,0,0,0), тем самым указав начало координат, т.е. левый верхний угол экрана. В RectNormal помещаем рамку формы с помощью функции BoundsRect. Функция DrawAnimatedRects создаёт перетекание начальной рамки в конечную. В событии OnShow мы из маленькой рамки делаем большую – окно вылетает, а в событии OnClose большая рамка перетекает в маленькую – окно улетает! 

Вывод текста на печать, используя com порт

var
  Printer: THandle;
  N : Cardinal;
  C : POverlapped;

begin
  //Открываем порт принтера для записи
  Printer := CreateFile(PChar('LPT1'),
  GENERIC_READ or GENERIC_WRITE, 0, nil,
  OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

  //Печатаем слово 'Hello World';
  WriteFile(Printer, 'Hello World', 11, N, c);
  //Закрываем порт
  CloseHandle(Printer);

Как добавить документ в меню Документы кнопки ПУСК

uses
  ShlOBJ;
...

procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  s := 'C:\1\DelphiWorld.html'; //Здесь указываем имя нужного файла
  SHAddToRecentDocs(SHARD_PATH, pChar(s));
end;

Событие при потере и установке фокуса для формы

Type TMain = class(TForm)
  ....
  protected Procedure LastFocus(var Mess : TMessage);  message  WM_ACTIVATE;
End;

Procedure TMain.LastFocus(var Mess : TMessage);
Begin
  IF  Mess.wParam = WA_INACTIVE Then
  PanelCaption.Color:=clInactiveCaption
  Else
  PanelCaption.Color:=clActiveCaption;

  Inherited;
End;

Запретить запуск второго экземпляра программы

В Windows 95, по-моему, это самый простой работающий вариант. Этот текст должен находиться в модуле проекта (добраться до него можно через меню View/Project Source). 

program Project1;

uses
  Forms,
  Windows, // не забудьте эту строчку
  Unit1 in 'Unit1.pas' {Form1};

  {$R *.RES}

var
  HM: THandle;
function Check: boolean;
begin
  HM := OpenMutex(MUTEX_ALL_ACCESS, false, 'MyOwnMutex');
  Result := (HM <> 0);
  if HM = 0 then
    HM := CreateMutex(nil, false, 'MyOwnMutex');
end;

begin
  if Check then
    Exit;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
 

Дизайнер рассылки Андрей Ерёмин < =>  Редактор рассылки Коржов Алексей

 


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.program
Отписаться

В избранное