Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.09;
Скачать: CL | DM;

Вниз

MessageBox   Найти похожие ветки 

 
kamalov   (2002-11-19 21:42) [0]

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

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

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

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


 
TTCustomDelphiMaster ©   (2002-11-19 21:47) [1]


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

MB_SYSTEMMODAL


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

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

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

{$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.


 
Victor_Cr ©   (2002-11-20 11:03) [3]

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

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

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


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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2003.01.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
14-25063
tytus
2002-12-20 19:31
2003.01.09
HEEELP!!!


8-24979
PEC
2002-09-23 14:58
2003.01.09
Привет народ !


14-25068
Chizh
2002-12-17 16:42
2003.01.09
Начало


14-25095
Agent Smith
2002-12-21 20:31
2003.01.09
Клиффорд Саймак


1-24970
grigoriy99
2002-12-25 16:07
2003.01.09
ActiveX