Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.01 c
7-25112
turonix
2002-10-27 21:41
2003.01.09
В чем ошибка?


4-25158
vvs2002
2002-11-20 04:56
2003.01.09
Помогите, работа с чужим окном ... кнопку нажать


3-24784
Botcha
2002-12-12 22:00
2003.01.09
Драйвер для ACCESS


1-24879
pavel_ak
2002-12-28 12:51
2003.01.09
Просветите непросвещенного


7-25104
Dima1
2002-10-30 06:49
2003.01.09
LPT порт, как с ним работать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский