Форум: "Основная";
Текущий архив: 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.039 c