Текущий архив: 2003.11.17;
Скачать: CL | DM;
ВнизКогда разница между Edit1.text и Edit2.text больше 14342, о прога Найти похожие ветки
← →
RoLeX (2003-11-06 17:33) [0]Всё! Прога готова! Но вот есть в ней ошибочка:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Gauges;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
GroupBox3: TGroupBox;
Edit3: TEdit;
GroupBox4: TGroupBox;
Edit4: TEdit;
Button1: TButton;
Button2: TButton;
Gauge1: TGauge;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x:Int64;
y:Int64;
txt:TextFile;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(txt,ExtractFilePath(application.exeName)+"\listing.txt");
ReWrite(txt);
x:=StrToInt64(edit1.text);
y:=0;
writeln(txt,IntToStr(x)+Edit4.Text+Edit3.text);
Button2.Click;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if (x<>StrToInt64(edit2.Text)) then begin
x:=x+1;
y:=y+1;
writeln(txt,IntToStr(x)+Edit4.Text+Edit3.text);
Gauge1.MinValue:=0;
Gauge1.MaxValue:=StrToInt64(edit2.text)-StrToInt64(edit1.text);
Gauge1.Progress:=y;
button2.Click; end else
CloseFile(txt);
end;
end.
Вкратце объясню суть прораммы:
В Edit1.text вводится начальное число, в Edit2.text - конечное число. В Edit4.text вводится символ, который будет стоять после числел, находящихся в промежутке от Edit1.text до Edit2.text.
Edit3.text - это слово которое будет прописываться после символа (Edit4.text).
Итак, если мы введём
в Edit1.text:=0;
в Edit2.text:=100;
в Edit4.text:=";";
в Edit3.text:="word";
то получится такой список:
0;word
1;word
2;word
3;word
...
100;word
А потом этот список сохраняется в файле listing.txt
А ошибка такая, когда разница между Edit1.text и Edit2.text больше 14342, то программа закрывается и ошибки вылазиют!
Попробуйте у себя создать по моему коду прогу, и посмотрите сами, и скажите чё надо сделать, чтобы небыло такого.
Очень вас прошу мне помочь!!!
← →
Anatoly Podgoretsky (2003-11-06 17:56) [1]Удалено модератором
← →
RoLeX (2003-11-06 18:12) [2]Удалено модератором
← →
clickmaker (2003-11-06 18:14) [3]Удалено модератором
← →
pasha_golub (2003-11-06 18:31) [4]Удалено модератором
← →
RoLeX (2003-11-06 18:33) [5]Удалено модератором
← →
Митяй (2003-11-06 18:37) [6]Удалено модератором
← →
RoLeX (2003-11-06 18:49) [7]Ну помогите же!!! Почему если разница между Edit1 и Edit2 >~14000, выскакиевает ошибка: "Stack overflow".
Что нужно сделать???
← →
Е-Моё имя (2003-11-06 18:55) [8]стэк расширить и углубить
---
nil
← →
RoLeX (2003-11-06 19:19) [9]Удалено модератором
← →
clickmaker (2003-11-06 19:31) [10]Удалено модератором
← →
RoLeX (2003-11-06 19:34) [11]Удалено модератором
← →
panov (2003-11-06 19:56) [12]Здесь не развлекательный форум и люди приходят сюда за помощью, пусть даже чайники и ламеры.
Не надо флейма и флуда не по делу.
← →
RoLeX (2003-11-06 20:00) [13]Кажется я понял! Может это из-за того, что Button2 слишком быстро и много нажимается???
← →
Arm79 (2003-11-06 21:33) [14]Слишком большая рекурсия, убери нажатие на button2. Вот и все.
2 модератор
А вопрос, я считаю, достоин занесения в орешник
← →
Тохус (2003-11-06 23:38) [15]А я думал, Анатолий Подгородецкий тоже модератор...
← →
Palladin (2003-11-06 23:45) [16]Вопрос достоин занесения в FAQ, местами, и сопровожден разъяснениями того - к чему может привести необузданная (и в таком случае врядли оправданная) рекурсия.
Здесь она точно не оправданна и вполне заменяемаwhile do
илиrepeat until
Страницы: 1 вся ветка
Текущий архив: 2003.11.17;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.009 c