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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.008 c
15-1242460113
PEAKTOP
2009-05-16 11:48
2009.07.26
Обновился Delphi RoadMap


2-1243850262
Максим
2009-06-01 13:57
2009.07.26
TMenuItem


11-1204046814
andreil
2008-02-26 20:26
2009.07.26
Как быстро сравнить два файла?


9-1180939732
MegaVolt
2007-06-04 10:48
2009.07.26
Проблемы при освоении OpenGL. Подскажите решение.


2-1244006722
AntonioPermskiy
2009-06-03 09:25
2009.07.26
Unit s Structure Tree





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