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

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

MessageBox [D6, Win95/98]


kamalov ©   (2002-11-19 21:42:00) 

нужно сделать чтобы сообщение выпригивало поверх всех окон(не важно, активно или не активно приложение) и желательно со звуком.

пробовал
MessageBox(handle,PChar(temp),"Update", mb_OK);

оно выпригивает.. но пока OK не нажмешь так и прыгает без остановки

что посоветуете уважаемые?


Слесарь Матерящийся   (2002-11-20 11:20:00) [1]

>Или что-то подобное

Критическая секция, например...

А то, знаете ли, мультитрэдинг...


Victor_Cr   (2002-11-20 11:03:00) [2]

Что ж ты делаешь? Ты ж его в таймер загнал. Месага будет выводиться каждый раз при возникновения события онтаймер. Подумай над этим... может флажек какой-нибудь придумаешь для проверки сообщение уже выведено или нет, типа:

procedure TForm1.Timer1Timer(Sender: TObject);
var temp: string;
begin
FileListBox1.Update;
if (i<>FileListBox1.Count) then
begin
if (i>FileListBox1.Count) then i:=FileListBox1.Count
else begin
temp:="Was:"+inttostr(i)+"New:"+inttostr(FileListBox1.Count);
if MSGBool then
begin
MSGBool := False;
MessageBox(handle,PChar(temp),"Update", mb_OK);
MSGBool := True;
end;
i:=FileListBox1.Count;
end;
end;
end

Или что-то подобное


kamalov   (2002-11-19 23:24:00) [3]

а как сделать так, чтобы оно появлялось только один раз?

может где я не прав? программа проверяет содиржимое папки, и если количество файлов увеличилось выкидывает сообщение.

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
FileListBox1.Update;
i:=FileListBox1.Count;
Timer1.Enabled:=true;
Button1.Enabled:=false;
Button2.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var temp: string;
begin
FileListBox1.Update;
if (i<>FileListBox1.Count) then
begin
if (i>FileListBox1.Count) then i:=FileListBox1.Count
else begin
temp:="Was:"+inttostr(i)+"New:"+inttostr(FileListBox1.Count);
MessageBox(handle,PChar(temp),"Update", mb_OK);
i:=FileListBox1.Count;
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
Button1.Enabled:=true;
Button2.Enabled:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Enabled:=false;
i:=FileListBox1.Count;
end;

end.


TTCustomDelphiMaster   (2002-11-19 21:47:00) [4]


> нужно сделать чтобы сообщение выпригивало поверх всех окон

MB_SYSTEMMODAL


Наверх

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