Привет. В этой статье мы разберем несколько полезных вещей в дельфи.
Возможно получиться FAQ. Итак - полезности в delphi или FAQ дельфиста.


0.Как можно поменять стандартный курсор мыши на свой?

Это можно сделать вот таким кодом:

const
crmycursor = 1; // объявление константы равной 1.
procedure tform1.formcreate(sender: tobject);
begin
screen.cursors[crmycursor] := loadcursorfromfile(’c:курсор.ani’);// собственно сама загрузка
cursor := crmycursor; // устанавливаем курсор на форму
end;


1.Как поменять расположение кнопок на мыши.
Для этих целей существует функция SwapMouseButton
У нее два аргумента либо true (поменять) либо false (обратно)


SwapMouseButton(true); // Поменять
SwapMouseButton(false); // Поменять обратно


2.Как защитить форму паролем.

Сначала сделай форму неактивной (Enabled:=False;)
Далее создай обработчик Create и впиши туда


procedure TForm1.FormCreate(Sender: TObject);
var
Passwrd:string; // переменная для пароля
begin
if InputQuery('Окно ввода пароля','Введите пароль:',Passwrd) then //окно для ввода пароля
// Проверяем его:
if Passwrd = 'Delphi' then
Form1.Enabled:=true
else
if Passwrd <> 'Delphi' then
end;





3.Как узнать путь к исп. файлу.
Здесь есть 2 варианта.

Если в вашем приложении присутствует форма, то можно сделать так

name:=Application.ExeName;


Если формы не подключены, существует функция

GetCurrentDirectory, которая возвращяет путь к нашей проге



GetCurrentDirectory(nBufferLength:DWORD,lpBuffer:LPTSTR )

Первый аргумент это размер буфера. Ну а второй сам буфер в котором в последствии окажеться путь к нашей программе.

Вот пример

var
path:array[0..100] of char;
begin
GetCurrentDirectory( 100, path );
end;

И в переменной Path будет хранить путь к директории с нашей программой.

4.Как запустить другие приложение из моей программы?
Для этого есть 2 API функции: WinExec и ShellExecute

Вот пример исп. WinExt:

WinExec ('command.com', SW_SHOW); // запускает сеанс MS-DOS

У 2 побольше аргументом в возможностей, советую прочитать об этом в доп. литературе:

ShellExecute (Form1.Handle, nil, 'c:\1.exe', nil, nil, SW_RESTORE);

5. Как создать гипперссылку?
Здесь опять же применим функцию ShellExecute.

begin
ShellExecute(handle,'open','http://winsov.ru/',nil,nil,SW_SHOW);
end;

6.Как определить IP адресс по доменному имени?
Ниже приведена функция. Функция не моя. Кстати нужно добавить модуль winsock

function HostToIP(Name: string; var Ip: string): Boolean;
var
wsdata : TWSAData;
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
WSAStartup ($0101, wsdata);
try
gethostname (hostName, sizeof (hostName));
StrPCopy(hostName, Name);
hostEnt := gethostbyname (hostName);
if Assigned (hostEnt) then
if Assigned (hostEnt^.h_addr_list) then begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then begin
IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
Result := True;
end
else
Result := False;
end
else
Result := False
else begin
Result := False;
end;
finally
WSACleanup;
end
end;

Вот собственно и все. Могу теперь откланяться.
По возможности буду дополнять это...

StraNger aka reaL StraNger