Привет. В этой статье мы разберем несколько полезных вещей в дельфи.
Возможно получиться 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
Полезности в delphi или FAQ дельфиста.
Подписаться на:
Комментарии к сообщению (Atom)
21 марта 2009 г. в 13:57
2.Как защитить форму паролем.
По поводу втрого пункта, не очень надежный вариант, пароль хранится в памяти в открытом виде, так что этот способ, чисто символический...
Ток тут я пасс изменил...
procedure TForm1.FormCreate(Sender: TObject);
var
Passwrd:string; // переменная для пароля
begin
if InputQuery('Окно ввода пароля','Введите пароль:',Passwrd) then //окно для ввода пароля
// Проверяем его:
if Passwrd = 'Kerny' then
Form1.Enabled:=true
else
if Passwrd <> 'Kerny' then
end;
Смотрите скрин:
http://xmages.net/out.php/i151303_1.JPG
Так, что такой способ лучше не юзать...
21 марта 2009 г. в 17:58
ой керн, эт защита естессно на дурака.