Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Реакция на нажатие кнопки [D7, WinXP]


Горбатов В.Ю. ©   (2004-11-01 12:17:00) 

Уважаемые господа, поделитесь идеей!
Есть форма, с размещенными несколькими Edit'ами, в которые циклически вставляются строчки из файла. Также на форме есть кнопки <Применить>, <Пропустить>, <Отменить>.
Каким образом можно в теле цикла вставить ожидание нажатия кнопки?


clickmaker   (2004-11-01 13:53:00) [1]


> Из файла получил строку, пользователь решает обрабатывать
> ее далее или пропустить, а если у кнопки на OnClick навесить
> обработку, то нужно следить когда файл открыт - закрыт,
> ну и еще кое-какие замороки получаются.

Не вижу никаких заморок. Открыл форму - открыл файл, выкинул юзеру первую строчку. Он отвечает "Применить" - обрабатывай, "Пропустить" - читаешь следующую. Закрываешь форму - закрывай файл.
Структурно так:

FormCreate
begin
  F := CreateFile (или FileOpen или что у тебя там)
  ReadFile(F, Str)
end;

ApplyButtonClick;
begin
  Obrabotka(Str);
  ReadFile(F, Str);
end;

SkipButtonClick
begin
  ReadFile(F, Str);
end;

FormDestroy
begin
 CloseHandle(F)
end;


BillyJeans   (2004-11-01 13:35:00) [2]

в свой цикл воткни строчку:
Application.ProcessMessages;


Горбатов В.Ю.   (2004-11-01 13:27:00) [3]

2clickmaker - такой вариант уже обдумывал, не проще. Из файла получил строку, пользователь решает обрабатывать ее далее или пропустить, а если у кнопки на OnClick навесить обработку, то нужно следить когда файл открыт - закрыт, ну и еще кое-какие замороки получаются.

2BillyJeans - А можно поподробнее...смотрю хелп, там только пример, ничего не объясняющий.

Нужно именно ожидание вставить в сам цикл, который его останавливает, пока не будет нажата какая-либо кнопка. В Borland Pascal можно было навесить ожидание на readln или keypressed, тут же то же подобная фиговина должна присутствовать, вот только какая?


BillyJeans   (2004-11-01 12:56:00) [4]

Application.ProcessMessages;


clickmaker   (2004-11-01 12:27:00) [5]


> Каким образом можно в теле цикла вставить ожидание нажатия
> кнопки?

Зачем?
Не проще ли строчки вставлять по нажатию кнопки?


BillyJeans   (2004-11-01 12:27:00) [6]

Application.ProcessMessages;


Наверх

Титульная страница Поиск, карта сайта Написать письмо