IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> исполнение кода по нажатию баттона, как реализовать?!!
сообщение
Сообщение #1


Гость






Возникла маленькая проблемка с нажатием кнопки. У меня выполняется код до определенного момента, а дальше программа не должна выполнятся, пока не нажата кнопка(в смысле TButton)

unit Unit1;

interface

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

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

var
Form1: TForm1;
t:boolean;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
t:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
t:=true;
end;

procedure TForm1.FormClick(Sender: TObject);
label l;
begin
l:
if not t then goto l;
Halt(0);
end;

end.


вариант с циклом тем более не проходит - программа виснет.Подскажите, пожалуйста, как можно вообще решить эту задачу. Спасибо
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Сначала второе - зачем мне надо дробить его на куски. Я пишу программу, илюстрирующую работу определенного алгоритма.
Я должен уметь делать это 2 способами.
Первый - по файлу с командами. Результат действия каждой новой команды я должен выводить на экран, когда пользователь нажал команду "далее". Соответственно я завершаю ввод из файла в цикле и в конце каждого цикла ждать нажатия клавишы.
Второй - это когда у меня есть код алгоритма, встроенный в программу и когда при выполнении прошел определенный его кусок - вывести данные на екран и ждать нажатия клавишы.
если первое как делать понятно:

procedure readdata;
{Считал данные, проилюстрировал, вышел}
procedure TForm1.Button1Click(Sender: TObject);
begin
readdata;
end;


то со вторым сложнее. Единственный свой вариант предложил во 2 посте.
Насчет кода который надо дробить на куски - хотя бы процедура поиска в глубину:

procedure dfs(const v:integer);
var i:integer;
begin
{Вывести номер текущей вершины, которую мы рассматриваем, ждать нажатия}
for i:=1 to n do
if { вершина и не рассмотрена а также есть связь в-и}
{Вывести попытку рассмотрения вершины и, ждать нажатия, dfs(i);}
end;


То есть мой вариант выхода из процедуры не работает еще и в случае рекурсии((
Надеюсь все понятно, я не великий мастер пояснять((
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 5:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name