Главная страница
    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.007 c
14-25038
Гл.Приколист
2002-12-19 14:10
2003.01.09
:)) И нам тоже нужен приколист


3-24805
Bocman
2002-12-16 19:21
2003.01.09
Выбор записи в DBLookupcomboBox


1-24886
sad
2002-12-25 15:38
2003.01.09
TeeChart и коэффициенты


8-24976
Алексей Ким
2002-09-21 19:17
2003.01.09
$f


7-25101
Вова
2002-09-29 06:00
2003.01.09
Низкоуровневый доступ к винту





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский