![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как программно закрыть сообщение [D6, WinXP]
ol © (2003-03-24 16:58:00)Привет всем
Вызываю сообщение ShowMessage или MessageDlg не важно, как мне его закрыть по определенному событию (программно, без нажатия кнопки ок)
MUHAMOR (2003-03-24 22:59:00) [1]Нашвырял побыринькому, у меня работает. Только сделай проверку на то кончились окна или нет, а то если окна с таким заголовком не будет - висяк выйдет. Поэтому буттон1 надо жать первым. А вообще наверное можно намного проще сделать.
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageBox(0, "Nu vot on i posinel", "Abrakadabra", MB_ICONHAND);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
par:byte;
ss:array[0..12] of char;
ss1:string[11];
a,b:byte;
pp:integer;
aa:hwnd;
begin
par:=0;
pp:=0;
aa:=GetWindow(form1.Handle, gw_HWndFirst);
repeat
inc(pp);
aa:=GetNextWindow(aa,gw_HWndNext);
a:=GetWindowText(aa, ss, 12);
setlength(ss1,a);
for b:=0 to a do ss1[b+1]:=ss[b];
if ss1="Abrakadabra" then BEGIN
DestroyWindow(aa);
Par:=1;
End;
until par=1;
end;
ol (2003-03-24 17:15:00) [2]порылся в хелпе, функции нашел, не пойму как их в кучу слепить
DVM (2003-03-24 16:59:00) [3]findwindow+wm_close