Главная страница
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.015 c
14-25011
Ketmar
2002-12-19 16:02
2003.01.09
обжалование действий при остутствии улик.


14-25056
AL2002
2002-12-20 16:57
2003.01.09
Что делает файл Alevir.exe?


14-25010
Ru
2002-12-19 13:36
2003.01.09
Милиция


14-25024
France
2002-12-17 12:49
2003.01.09
Как сделать фото на стекле?


3-24804
Botcha
2002-12-16 22:02
2003.01.09
Win95 + ADO