Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как программно закрыть сообщение [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо