Текущий архив: 2007.07.08;
Скачать: CL | DM;
Вниз
Как показать форму аналогично PopupMenu Найти похожие ветки
← →
alpha5 © (2007-06-15 21:23) [0]У меня есть кнопка и форма. При щелчке на кнопку надо сделать так, чтобы форма появлялась около кнопки, как будто это был PopupMenu (чтобы форма не заходила за края экрана). Как это сделать?
Заранее спасибо!
← →
TUser © (2007-06-15 22:05) [1]У объекта Screen есть соотв. свойства. Они позволят узнать размеры экрана. У кнопки также есть координаты + координаты парентов.
← →
JanMihail © (2007-06-16 10:37) [2]Вычисляй Left и Top . Ставь форму на них и все.
← →
alpha5 © (2007-06-16 15:14) [3]Спасибо, получилось!
Но возник ещё вопрос:
Как сделать так, если пользователь щёлкнул вне формы, то её надо закрыть.
Как перехватить это событие?
← →
JanMihail © (2007-06-17 09:04) [4]var
HookHandle: hHook;
function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg: PEVENTMSG;
begin
if Code >= 0 then
begin
result := 0;
msg := Pointer(LParam);
with Form1 do
case msg.message of
WM_LBUTTONUP:
begin
if WindowFromPoint(Mouse.CursorPos) <> Form1.Handle then
Caption:= "была кликнута мышь вне моего приложения"
else
Caption:= "была кликнута мышь на моем приложении"";
end;
end;
end else
result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.FormStyle := fsStayOnTop;
HookHandle := SetWindowsHookEx(WH_JOURNALRECORD, @HookProc, HInstance, 0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if HookHandle <> 0 then
UnhookWindowsHookEx(HookHandle);
end;
Страницы: 1 вся ветка
Текущий архив: 2007.07.08;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.025 c