Привет
всем
подписчикам.
Спасибо за
ваши
вопросы,
которых
кстати
приходит
довольно
много. Мы не
можем
размещать
все
вопросы в
одной
рассылке
долгое
время.
Поэтому мы
решили
открыть
страницу в
internet, с вашими
вопросами
и ответами
конечно!
Вот её адрес http://www.x-program.narod.ru/vopros.html.
Заходите,
будем рады!
Голосование
Сегодня в выпуске:1 - Вопросы подписчиков
2 - Вылет окна
3 - Вывод текста на печать, используя com порт
4 - Как добавить документ в меню Документы кнопки ПУСК
5 - Событие при потере и установке фокуса для формы
6 - Запретить запуск второго экземпляра программы
Привет чел:)
Все очень просто. Берём любую програму для работы с ресурсами. Я взял 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.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;
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.