Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

цыклы   Найти похожие ветки 

 
ant_   (2005-11-06 20:04) [0]

такая вот проблема у меня: пишу следуйщий цыкл,нормално работает.(prosto primer)

Button1;

for i:=1 to 100 do
label1.caption:=FloatToStr(i);
sleep(200);
application.processmessage;

но когда добавляю ешо один цыкл в туже кнопку,вот тогда и проблема появляется.а проблема в том что, при шелчке на эту кнопку,программа делает с перва один цыкл  когда она заканчивается, делает следуйешуйу. как можно зделать так чтоб при шелчке начались оба цыкла?
и вот другой вопрос: пока цыкл не закончевается,не возможно зактыть форму . как эту проблему решить?

P.S.izvenyayus za ruskiy.


 
Anatoly Podgoretsky ©   (2005-11-06 20:08) [1]

Циклы могут работать только поочередно, для паралельного исполнения нужны потоки.
В цикле обрабатывать глобальный флаг и делать break


 
SergP ©   (2005-11-06 22:33) [2]

Удалено модератором
Примечание: Офтопик и автор извинился за свой язык


 
ant_   (2005-11-07 01:47) [3]

Удалено модератором
Примечание: Наездов не надо


 
Toxa_ua ©   (2005-11-07 02:32) [4]

Можно в обеих циклах попробовать поставить метки перехода GoTo. В 1-м цикле после выполнения необходимых операций написать GOTO2. И аналогично во 2-м написать GOTO1. И эти циклы будут эмулировать одновременное выполнение.


 
Brother ©   (2005-11-07 05:50) [5]

что то меня этот цикл напрягает. А не так ли надо?

for i:=1 to 100 do
begin
label1.caption:=FloatToStr(i);
sleep(200);
application.processmessage;
end;


 
Brother ©   (2005-11-07 05:52) [6]

или sleep итд тут не причем? Тогда зачем
sleep(200);
application.processmessage;
вообще писать?


 
SergP.   (2005-11-07 12:53) [7]


> ant_   (07.11.05 01:47) [3]
> esli ti ne zametil,ya izvenilsya, umnik!


Не надо нервничать....

Вот тебе пример (туповатый правды, но работающий, просто что-то нормальное долго писать...):


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type Tcycle1=class(TThread)
   public
   procedure Execute; override;
end;

type Tcycle2=class(TThread)
   public
   procedure Execute; override;
end;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Label1: TLabel;
   Label2: TLabel;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure Tcycle1.Execute;
var
 i:integer;
begin
 for i:=1 to 100 do
 begin
   form1.label1.caption:=FloatToStr(i);
   form1.label1.update;
   sleep(200);
 end;
end;

procedure Tcycle2.Execute;
var
 i:integer;
begin
 for i:=1 to 100 do
 begin
   form1.label2.caption:=FloatToStr(i);
   form1.label2.update;
   sleep(180);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 with Tcycle1.Create(true) do
 begin
   FreeOnTerminate:=true;
   Suspended:=false;
 end;
 with Tcycle2.Create(true) do
 begin
   FreeOnTerminate:=true;
   Suspended:=false;
 end;
end;

end.



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

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.072 c
14-1130943942
sniknik
2005-11-02 18:05
2005.11.27
Эмуляция IP адреса...


2-1131304186
ЯТутаНовичек
2005-11-06 22:09
2005.11.27
Помогите с TDate


11-1112760998
uli
2005-04-06 08:16
2005.11.27
выделение текста в EDITBOX


1-1130933195
s_t_d
2005-11-02 15:06
2005.11.27
QReport в Delphi-7


14-1131222143
Andy BitOff
2005-11-05 23:22
2005.11.27
Скорость света в вакууме перестала быть рекордом