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

Вниз

Последовательно выполнить процедуры   Найти похожие ветки 

 
dumb   (2009-05-31 12:55) [0]

Здравствуйте!
Хочу сделать последовательное выполнение десяти процедур:

procedure procedura1;
begin
...
end;

procedure procedura2;
begin
...
end;

и так до десяти.

Но если запустить их все сразу, то они начнутся в раз, а мне нужно дождаться выполнения предыдущей процедуры и перейти к следующей. Как это можно организовать, уважаемые мастера?


 
Anatoly Podgoretsky ©   (2009-05-31 12:56) [1]

Это как сразу, приведи пример.


 
dumb   (2009-05-31 12:58) [2]

у меня десять кнопок SpeedButton. Если я сделаю так:

SpeedButton1Click(Self);
SpeedButton2Click(Self);
...
SpeedButton10Click(Self);

то они же начнут все в раз работать, не дожидаясь выполнения предыдущей


 
{RASkov} ©   (2009-05-31 13:08) [3]

> [2] dumb   (31.05.09 12:58)
> то они же начнут все в раз работать, не дожидаясь выполнения
> предыдущей

Нет ли в их коде ProcessMessage?


 
Palladin ©   (2009-05-31 13:09) [4]


> то они же начнут все в раз работать, не дожидаясь выполнения
> предыдущей

это продположение или факт?


 
{RASkov} ©   (2009-05-31 13:11) [5]

Хм... [3] не читать :)


 
dumb   (2009-05-31 13:11) [6]

{RASkov}, есть Application.ProcessMessages;
Palladin, предположение. А что разве не так?


 
Palladin ©   (2009-05-31 13:12) [7]


> Palladin, предположение. А что разве не так?

Ты бы попробовал прежде чем ерунду всякую предполагать.


 
Palladin ©   (2009-05-31 13:13) [8]

да еще неизвестно на чем основанную...


 
Palladin ©   (2009-05-31 13:14) [9]


> {RASkov} ©   (31.05.09 13:11) [5]

:))


 
{RASkov} ©   (2009-05-31 13:19) [10]

> [6] dumb   (31.05.09 13:11)

Код выполняется всегда последовательно... Можно конечно псевдораспаралелить потоками или сообщениями, но все равно код будет выполнен последовательно....

Т.е.:

> SpeedButton1Click(Self);
> SpeedButton2Click(Self);
> ...
> SpeedButton10Click(Self);

выполнятся одна за другой и никак вместе....


 
Palladin ©   (2009-05-31 13:23) [11]


> псевдораспаралелить потоками

ну эт ты поспешил )


 
Anatoly Podgoretsky ©   (2009-05-31 13:28) [12]


> Если я сделаю так:

Не делай так.


 
{RASkov} ©   (2009-05-31 13:28) [13]

> [11] Palladin ©   (31.05.09 13:23)

имел в виду каждую строку SpeedButtonNClick(Self); выполнять в отдельном потоке )


 
dumb   (2009-05-31 21:47) [14]

ну надеюсь не запорю программу и все будет идти один за другим дожидаясь выполнения предыдущей процедуры


 
{RASkov} ©   (2009-05-31 22:48) [15]

> [14] dumb   (31.05.09 21:47)
> ну надеюсь

Не нужно надеятся, нужно знать точно... Иначе копейки тебе цена, программист.... :)


 
Германн ©   (2009-06-01 01:08) [16]


> {RASkov} ©   (31.05.09 22:48) [15]
>
> > [14] dumb   (31.05.09 21:47)
> > ну надеюсь
>
> Не нужно надеятся, нужно знать точно...

Эх! Был бы я волшебником - знал бы всё точно!
:)


 
Anatoly Podgoretsky ©   (2009-06-01 06:54) [17]

10 кнопок надо убрать, оставить только одну. Эти 10 кнопок провоцируют еще одну беду - непоследовательность.


 
Palladin ©   (2009-06-01 08:45) [18]


> dumb   (31.05.09 21:47) [14]

Что значит надеюсь? Что это за слово? Почему у тебя не возникает сомнений в том что:
WriteLn("Hello");
WriteLn("Word");

напишет слова точно последовательно, а не наоборот? А тут вдруг они возникли. Почему не возникает сомнений, что после:
a:=5;
b:=a+6;

b будет равно 11?

В чем твоя причина этих сомнений? Ты можешь обосновать? надеется он... программист...


 
Фима   (2009-06-02 11:37) [19]

используй функции

function procedure1:boolean
begin
result:=false;
try
//твой код....

finally
result:= true;
end;

как запускать последовательно ?

if procedure1 then
if procedure2 then
if procedure3 then
if procedure4 then
if procedure5 then
if procedure6 then
if procedure7 then
if procedure8 then
if procedure9 then
procedure10;

это один из вариантов..

......


 
Andy BitOff ©   (2009-06-02 11:42) [20]


> Фима   (02.06.09 11:37) [19]

Твой вариант бесмыленный. Он бы еще мог иметь право на существование, если бы;
result:=false;
try
//твой код....
result:= true;
finally
...
end;


 
Dennis I. Komarov ©   (2009-06-02 11:56) [21]


> Фима   (02.06.09 11:37) [19]

а если еще про IF почитать, то вообще все в строчку уместить можно...



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

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

Наверх




Память: 0.51 MB
Время: 0.142 c
2-1243356130
rect
2009-05-26 20:42
2009.07.26
Проблемы с transparent


2-1244025649
Trifle
2009-06-03 14:40
2009.07.26
Проблема с dll


15-1242565400
TUser
2009-05-17 17:03
2009.07.26
С.Г. Рубин. Устройство нашей Вселенной.


2-1243259097
ВладиславМинск
2009-05-25 17:44
2009.07.26
Запрос на выборку заданий для студентов по варианту


15-1242460113
PEAKTOP
2009-05-16 11:48
2009.07.26
Обновился Delphi RoadMap