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

Вниз

messagedlg +timer+random   Найти похожие ветки 

 
MoGiLsHiKK   (2003-10-24 15:03) [0]

Привет всем!!
Объясните ,пожалуйста, как можно вывести сообщение через определенное время с помощью random-а .
Пробовал прописывать в TimerN.OnTimer :
......
case random(i) of
0:messagedlg();
1:messagedlg();
.............
end;
Но таймер выводит сообщения не через интервал а все сразу .
Заранее спасибо!( если нужно больше информации-говорите опишу подробнее)


 
Mihey   (2003-10-24 15:46) [1]

Это потому, что когда диалог выводится, таймер продолжает работать. А тебе бы хорошо приостанавливать его работу в ожидании нажатии пользователем кнопочки.


 
Jel   (2003-10-24 15:56) [2]

код onTimer покажи целиком.


 
MoGilShiKK   (2003-10-25 07:36) [3]

to Mihey
в форме кнопки не используются или их слишком много ,
в каждой ведь не пропишишь timer:=false;

to Jel
вот часть кода (подного больше не существует);
var break1:boolean;
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;c:string;
begin
application.ProcessMessages;
repeat
break1:=false;
case random(i) of
0:showmessage("0");
1:showmessage("1");
2:messagedlg("hi",mtinformation,[mbOK],0);
3:showmessage("2");
end;
until break1;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
break1:=true;
end;


 
cyborg   (2003-10-25 11:45) [4]

Карамба! Что это такое? :)
Всё в мусор

procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
case random(i) of
0:showmessage("0");
1:showmessage("1");
2:messagedlg("hi",mtinformation,[mbOK],0);
3:showmessage("2");
end;
end;


 
MoGilShiKK   (2003-10-25 19:20) [5]

to Cyborg
А ты сам пробовал запускать то что написал.
После запуска выдастся только первое сообщение.
Если вставить repeat тогда сообщения действительно будут
выдаваться через random но без интервала.
К тому же остановить программу с помощью самой себя(если так можно выразиться) невозможно(для этого и используется процедура break и application.pm).
Так что ошибка наверное не здесь.( точнее ошибки)
Но все равно спасибо!!!


 
cyborg   (2003-10-26 01:12) [6]

Ты мне ответь зачем это всё в таймере у тебя?
Вообщето там не i, а 4 должно быть.
К тому же остановить программу с помщью самой себя возможно и что такое остановить программу с помощью самой себя? :)


 
MoGilShiKK   (2003-10-27 16:30) [7]

To cyborg
>Ты мне ответь зачем это всё в таймере у тебя?
>Вообщето там не i, а 4 должно быть.
>К тому же остановить программу с помщью самой себя возможно и >что такое остановить программу с помощью самой себя? :)

1)как почему? и как интересно по другому можно заставить сообщения появляться через определенный интервал времени?!?(не усложняя код)
2) обязательно попробую заменить I на кол-во сообщений;
3) заранеее спасибо


 
Mihey   (2003-10-27 21:42) [8]

Итак, я приведу код. Данный код через определённый интервал показывает сообщение, в котором етсь одна кнопка ОК. После того, как юзер нажмёт кнопку ОК, через этот же интервал покажется следующее сообщение.

procedure TForm1.Timer1Timer(Sender: TObject);
var i: Integer;
begin
i := Random(2)+1;
Case i of
1: begin
Timer1.Enabled := False;
If MessageDlg("1", mtInformation, [mbOk], 0) = mrOk then
Timer1.Enabled := True;
end;
2: begin
Timer1.Enabled := False;
If MessageDlg("2", mtInformation, [mbOk], 0) = mrOk then
Timer1.Enabled := True;
end;
3: begin
Timer1.Enabled := False;
If MessageDlg("3", mtInformation, [mbOk], 0) = mrOk then
Timer1.Enabled := True;
end;
end;
end;

Не забудь выполнить где-нить Randomize.


 
Maxud   (2003-10-28 21:30) [9]


> Mihey © (27.10.03 21:42) [8]


If MessageDlg("3", mtInformation, [mbOk], 0) = mrOk // !!!!!!!

а что еще может вернуть эта функция?


 
panov   (2003-10-28 22:26) [10]

>Maxud © (28.10.03 21:30) [9]

а что еще может вернуть эта функция?

mrCancel, если нажмешь кнопку закрытия окна.



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

Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.052 c
4-42328
jonni
2003-09-04 15:55
2003.11.13
RegisterCalssEx


14-41943
Stupid
2003-10-20 15:47
2003.11.13
Разъем ATX12V


3-40814
Feofan
2003-10-22 02:32
2003.11.13
SQL запросы


3-41055
Стас
2003-10-24 12:29
2003.11.13
Вопросы по базам данных


4-42244
Jack
2003-09-16 14:00
2003.11.13
ReadDitectoryChangeW





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