clock for website часы на сайт
Программирование в Delphi

 

ИНФОРМАТИКА  

 

Программирование в Delphi

 

Порядок обработки событий

При загрузке формы Дельфи, происходят и обрабатываются следующие события и в следующем порядке:
On Create
On Show
On Paint
On Activate
On Resize
On Paint

 

Операции с курсором

Показать курсор "Песочные часы":
Screen.Cursor:=crHourglass;
Скрыть/показать курсор:
ShowCursor(false);
ShowCursor(true);
Определение и установка позиции мыши:
GetCursorPos(LpPoint:TPoint):boolean;
SetCursorPos(x,y:integer):boolean;
Пример: Блокировка работы мыши.
repeat
SetCursorPos(10000,10000);
Application.ProcessMessages;
until false;

 

Создание своего курсора в Delphi

Для создания нового курсора можно выполнить следующий порядок действий:
Открыть в программе "Image Editor" файл ресурсов своего проекта (*.res);
(Программа "Image Editor" поставляется вместе с Delphi).
Создать в ней курсор и сохранить файл;
В коде программы следует написать:
const crMyCursor=7;
Procedure TForm1.FormCreate(SenderTObject);
begin
Screen.Cursors[crMyCursor]:=
LoadCursor(HInstance,'NewCursor');
Cursor:=crMyCursor;
end;

{'NewCursor'- это имя вашего курсора в (*.res)}
Заново откомпилировать проект (можно предварительно удалить из папки проекта все файлы
типа(*.exe) и (*.dcu));

 

Кнопки мыши

Распознать нажатую кнопку мыши можно при помощи переменной Shift:TShiftState, которая отвечает за нажатую кнопку и присутствует во всех событиях "OnMouse..."
Например: Проверить, что нажата левая кнопка.
procedure TForm1.FormMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then
begin
ShowMessage('Нажата левая кнопка мыши');
end;
end;
 

Запись картинки на диск

Прежде всего, на форму нужно поместить объект "SavePictureDialog".
Затем набрать следующий код:
If SavePictureDialog1.Execute then
begin
SavePictureDialog1.DefaultExt := GraphicExtension(TBitmap);
b.SaveToFile(SavePictureDialog1.fileName);
end;
Переменную "b" нужно объявить заранее (var b:TBitmap) и присоединить к ней объект Image, в котором содержится изображение. Например, так:
b.Assign(Form1.image5.picture.bitmap);
К оглавлению
Работа со звуком в Delphi
Для работы со звуковыми файлами на форму нужно поместить объект "MediaPlayer".
Чтобы открыть звуковой файл, можно воспользоваться следующим кодом:
Procedure Open_Wav(f:string);
begin
form1.MediaPlayer1.close;
form1.MediaPlayer1.FileName:=f;
try
form1.MediaPlayer1.Open;
except
end;
end;

Здесь "f" - это имя звукового файла.
Если указан не полный путь, то файл ищется в текущем каталоге.
Пример открытия и проигрывания звукового файла:
Open_Wav('zv4.wav');
try
form1.MediaPlayer1.Play;
except
end;

 

Перехват закрытия окна формы

Если перед закрытием окна Вашей программы нужно выполнить какие-то действия, то нужно обработать событие "OnClose".
Это можно сделать, например, так:
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if MessageDlg('Закрыть программу?', mtCustom,
[mbYes, mbNo], 0) = mrYes then
begin
Action := caFree;
exit;
end
else
begin
Action := caNone;
exit;
end;
end;
К оглавлению
Сменить обои Windows программно
Для выполнения этой задачи можно воспользоваться такой командой:
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar('C:\Windows\Plus.bmp'),
SPIF_SENDWININICHANGE);
В разделе "PChar" нужно указать адрес реального файла картинки (*.bmp).

 

Изменить разрешение экрана программно

В Delphi это поможет сделать следующая процедура:
procedure ChangeDisplayResolution(x,y:word);
var dm : TDEVMODE;
begin
ZeroMemory(@dm, sizeof(TDEVMODE));
dm.dmSize := sizeof(TDEVMODE);
dm.dmPelsWidth := x;
dm.dmPelsHeight := y;
dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
ChangeDisplaySettings(dm, 0);
end;
Где х - размер экрана по горизонтали; y - размер по вертикали;

 

Вывод данных в текстовый файл

Для начала, на форму нужно поместить компонент "SaveDialog".
Свойству "DefaultExt" присвоить значение "TextFile";
Свойству "Фильтр" присвоить значение "*.txt";
В коде программы набрать процедуру:
procedure SaveTxtInfo;
var f:TextFile;
begin
If SaveDialog1.Execute then
begin
AssignFile(f,SaveDialog1.FileName);
Rewrite(f);
Writeln(f,'Ваши данные');
CloseFile(f);
end;
end;

 

Чтение данных из текстового файла

На форму нужно поместить компонент "OpenDialog".
Свойству "DefaultExt" присвоить значение "TextFile";
Свойству "Фильтр" присвоить значение "*.txt" и "*.*";
В программе набрать код:
procedure ReadTxtInfo;
var f:TextFile;
s:string;
begin
If OpenDialog1.Execute then
begin
AssignFile(f,OpenDialog1.FileName);
Reset(f);
Readln(f,s);
CloseFile(f);
end;
end;

 

Создание и чтение ini-файла в Дельфи

В разделе "Uses" нужно подключить модуль "Inifiles".
В приведенном ниже коде продемонстрированы основные приёмы работы с ini-файлами.
procedure TForm1.Button1Click(Sender: TObject);
var
IniFile:TIniFile;
pass:string;
begin
pass:='zsv';
IniFile := TIniFile.Create('c:\test.INI');
{ Создали экземпляр объекта }
IniFile.WriteBool('Options', 'Sound', True);
{ Секция Options: Sound:=true }
IniFile.WriteInteger('Options', 'Level', 3);
{ Секция Options: Level:=3 }
IniFile.WriteString('Options' , 'Secret password', Pass);
IniFile.WriteString('Windows','Run','c:\windows\reestr.reg');
{ Секция Options: в Secret password
записать значение переменной Pass }
IniFile.ReadSection('Options ', memo1.lines);
{ Читаем имена переменных }
IniFile.ReadSectionValues('Options ', memo2.lines);
{ Читаем имена и значения }
IniFile.ReadSectionValues('Windows ', memo2.lines);
{ Читаем имена и значения }
IniFile.Free;
{ Закрыли файл, уничтожили объект и освободили память }
end;

 

Работа с реестром

В разделе "Uses" нужно подключить модуль "Registry".
Данный пример создаёт (если его не было) или открывает ключ реестра HKEY_LOCAL_MACHINE\Softvare\Test и записывает в него два параметра типа Boolean и Integer.
(После выполнения удалите созданный ключ из реестра):
procedure TForm1.Button2Click(Sender: TObject);
var
REG : TRegistry;
begin
REG := TRegistry.Create;
REG.RootKey:=HKEY_LOCAL_MACHINE;
REG.OpenKey('Software\Test',true);
REG.WriteBool('Test1',true);
REG.WriteInteger('Test2',12);
REG.CloseKey;
REG.Destroy;
ShowMessage('Ключ создан, параметры внесены.');
end;
Следующий пример открывает ключ HKEY_LOCAL_MACHINE\Software\Test (контролируя, есть ли он) и пытается читать параметры с проверкой, существуют ли они:
procedure TForm1.Button2Click(Sender: TObject);
var
REG : TRegistry;
B : Boolean;
I : Integer;
begin
REG := TRegistry.Create;
REG.RootKey:=HKEY_LOCAL_MACHINE;
if REG.OpenKey('Software\Test',false) then begin
if REG.ValueExists('Test1') then
B:=REG.ReadBool('Test1')
else ShowMessage('Параметр Test1 не найден');
if REG.ValueExists('Test2') then
I:=REG.ReadInteger('Test2')
else ShowMessage('Параметр Test2 не найден');
end else
ShowMessage('Ключ HKEY_LOCAL_MACHINE\
Software\Test не найден');
REG.CloseKey;
REG.Destroy;
end;
Если нужно изменить значение ключа "по умолчанию", тогда вывод делается так:
REG.WriteString('','Мой компьютер');

 

Переключение языка из программы

var russian,latin:HKL;
begin
russian:=LoadKeyboardLayout('00000419',0);
latin:=LoadKeyboardLayout('00000409',0);
ActivateKeyboardLayout(latin,0);
end;
Соответственно, для включения русского языка:
ActivateKeyboardLayout(russian,0);
Pretty single Russian women and Ukrainian girls homepage counter счетчик сайта
счетчик посетителей сайта
СДЕЛАЛ МАХМУТОВ РАМИЛЬ.