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

Вниз

Отладка программы или неуловимый глюк   Найти похожие ветки 

 
Dark ©   (2007-11-16 14:42) [0]

http://slil.ru/25110827
Вот программа моя, весит всего ничего, 407 кб, так что думаю никому не будет впадлу скачать и помочь. Проблема в следующем:
1) Запускаю программу
2) Ввожу значения от балды или загружаю файл
3) Если загрузил, то меняю какую-нибудь цифру на любую другую, если считал заново,то сохраняю и меняю цифру.
3) Выбираю в меню ВЫХОД, появляется форма выбора(делал сам), нажимаю на ДА - ошибка, нажимаю на ОТМЕНА всё ок, на НЕТ приходится нажать пачиму-то два раза...хотя если сразу после запуска посчитать или вообще выполнять другую комбинацию действий без Сохранить\Загрузить, то всё меню работает отлично...И ещё бывает, после нескольких других таких же действий Сохранить\Загрузить тоже вылетает, но со стандартным для всех приложений Windows"ким окошком про недопустимую ошибку и прочую лабуду.
Вот основной код:


type
 TForm1 = class(TForm)
   Edit1: TEdit;
   name: TLabel;
   Edit2: TEdit;
   Edit3: TEdit;
   disc: TLabel;
   x1: TLabel;
   Button4: TButton;
   x2: TLabel;
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Label5: TLabel;
   Label6: TLabel;
   rez: TLabel;
   MainMenu1: TMainMenu;
   N1: TMenuItem;
   N2: TMenuItem;
   N3: TMenuItem;
   N5: TMenuItem;
   N6: TMenuItem;
   N7: TMenuItem;
   N8: TMenuItem;
   N9: TMenuItem;
   SaveDialog1: TSaveDialog;
   OpenDialog1: TOpenDialog;
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);
   procedure Edit2KeyPress(Sender: TObject; var Key: Char);
   procedure Edit3KeyPress(Sender: TObject; var Key: Char);
   procedure Button4Click(Sender: TObject);
   procedure FormActivate(Sender: TObject);
   procedure N6Click(Sender: TObject);
   procedure N2Click(Sender: TObject);
   procedure N3Click(Sender: TObject);
   procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
   procedure Edit1Change(Sender: TObject);
   procedure Edit2Change(Sender: TObject);
   procedure Edit3Change(Sender: TObject);
   procedure N9Click(Sender: TObject);
   procedure N8Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 a,b,c,d,x,z:real;
 f1: textfile;
 stroka:string;
 co:integer;
 
implementation

uses Kv_ur_ex, Kvadr_ur_help, Kvadr_ur_about;

{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);//Поле ввода а
begin
if not(Key in ["0".."9",",","-"]) then key:=#0;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);//Поле ввода б
begin
if not(Key in ["0".."9",",","-"]) then key:=#0;
end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);//Поле ввода с
begin
if not(Key in ["0".."9",",","-"]) then key:=#0;
end;

procedure TForm1.Button4Click(Sender: TObject);//Посчитать
begin
//Тут считаем результат
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
co:=1;
form1.n2.Enabled:=false;
//И ещё настройки переменных, не играющих роли
end;

procedure TForm1.N6Click(Sender: TObject);//Кнопочка выход
begin
If form1.n2.Enabled=false then
begin
form1.close
end
else
begin
exitform.showmodal;
If co=0 then
begin
form1.close;
end;
end;
end;

procedure TForm1.N2Click(Sender: TObject);//Кнопочка сохранить
begin
saveDialog1 := TSaveDialog.Create(self);
savedialog1.Filter := "Text file|*.txt";
saveDialog1.DefaultExt := "txt";
if SaveDialog1.Execute then
begin
AssignFile(F1, SaveDialog1.FileName);
ReWrite(F1);
Write(F1, Edit1.text);
WriteLn(F1);
Write(F1, Edit2.text);
WriteLn(F1);
Write(F1, Edit3.text);
WriteLn(F1);
Write(F1, disc.Caption);
WriteLn(F1);
Write(F1, x1.Caption);
WriteLn(F1);
Write(F1, x2.Caption);
Closefile(f1);
savedialog1.free;
n2.Enabled:=false;
end;
end;

procedure TForm1.N3Click(Sender: TObject);//Кнопочка загрузить
begin
OpenDialog1 := TOpenDialog.Create(self);
OpenDialog1.Filter := "Text file|*.txt";
OpenDialog1.DefaultExt := "txt";
if OpenDialog1.Execute then
begin
AssignFile(F1, OpenDialog1.FileName);
FileMode := fmOpenRead;
Reset(F1);
Read(F1, stroka);
Edit1.Text:=stroka;
readln(f1);
Read(F1, stroka);
Edit2.Text:=stroka;
readln(f1);
Read(F1, stroka);
Edit3.Text:=stroka;
readln(f1);
Read(F1, stroka);
disc.caption:=stroka;
readln(f1);
Read(F1, stroka);
x1.caption:=stroka;
readln(f1);
Read(F1, stroka);
x2.caption:=stroka;
readln(f1);
CloseFile(f1);
opendialog1.Free;
form1.n2.Enabled:=false;
end;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
If form1.n2.Enabled=false then
else
ExitForm.ShowModal;
end;

procedure TForm1.Edit1Change(Sender: TObject);//Поле а
begin
n2.Enabled:=true;
end;

procedure TForm1.Edit2Change(Sender: TObject);//Поле б
begin
n2.Enabled:=true;
end;

procedure TForm1.Edit3Change(Sender: TObject);//Поле с
begin
n2.Enabled:=true;
end;

procedure TForm1.N9Click(Sender: TObject);.//О программе, тут всё работает хорошо
begin
AboutForm.ShowModal;
end;

procedure TForm1.N8Click(Sender: TObject);//Помощь, тут всё работает хорошо

begin
HelpForm.ShowModal;
end;

end.


И код дополнительного окошка с вопросом:

type
 TExitForm = class(TForm)
   ExitQuest: TLabel;
   ExitYes: TButton;
   ExitNo: TButton;
   ExitCanc: TButton;
   procedure ExitYesClick(Sender: TObject);
   procedure ExitNoClick(Sender: TObject);
   procedure ExitCancClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var

 ExitForm: TExitForm;
 f1: textfile;

implementation

uses Kvadr_Ur, Kvadr_ur_help;

{$R *.dfm}

procedure TExitForm.ExitYesClick(Sender: TObject);
begin
form1.savedialog1 := form1.savedialog1.Create(self);
form1.savedialog1.Filter := "Text file|*.txt";
form1.saveDialog1.DefaultExt := "txt";
if form1.savedialog1.Execute then
begin
AssignFile(F1, form1.savedialog1.FileName);
ReWrite(F1);
Write(F1, form1.Edit1.text);
WriteLn(F1);
Write(F1, form1.Edit2.text);
WriteLn(F1);
Write(F1, form1.Edit3.text);
WriteLn(F1);
Write(F1, form1.disc.Caption);
WriteLn(F1);
Write(F1, form1.x1.Caption);
WriteLn(F1);
Write(F1, form1.x2.Caption);
Closefile(f1);
form1.savedialog1.free;
form1.n2.Enabled:=false;
end;
exitform.Close;
end;

procedure TExitForm.ExitNoClick(Sender: TObject);
begin
co:=0;
exitform.Close;
end;
procedure TExitForm.ExitCancClick(Sender: TObject);
begin
exitform.Close;
end;

end.
//Думаю тут все кнопки из названий понятны.


Form1-Главное окно
Exitform-окно предупреждения входа.

Вот вопрос, как выловить глюк? Я так подозреваю проще использовать стандартное windows"кое окно YESNOCANCEL? И поможет ли это?


 
homm ©   (2007-11-16 14:47) [1]

> [0] Dark ©   (16.11.07 14:42)
> Вот программа моя, весит всего ничего, 407 кб, так что думаю
> никому не будет впадлу скачать и помочь.

Нет, никого не обременит скачать полметра вирусов.


 
homm ©   (2007-11-16 14:49) [2]

> [0] Dark ©   (16.11.07 14:42)
> появляется форма выбора(делал сам)

Малодец, максимка.


 
Dark ©   (2007-11-16 14:54) [3]


> Нет, никого не обременит скачать полметра вирусов.

Чего сразу вирусы,вирусы...


 
Dark ©   (2007-11-16 14:54) [4]


> homm ©

Лучше б помог


 
homm ©   (2007-11-16 14:55) [5]

> [3] Dark ©   (16.11.07 14:54)

А что там еще может быть? Нечего было бы скрывать — выложил бы исходники.


 
homm ©   (2007-11-16 14:55) [6]

> [4] Dark ©   (16.11.07 14:54)
> Лучше б помог

А я помогаю. Никто не станет твой вирустник качать, тем более 400 килов.


 
Dark ©   (2007-11-16 15:02) [7]

Удалено модератором


 
Reindeer Moss Eater ©   (2007-11-16 15:05) [8]

form1.savedialog1 := form1.savedialog1.Create(self);

Автор, пиши ещё!
:)


 
homm ©   (2007-11-16 15:06) [9]

Удалено модератором


 
Dark ©   (2007-11-16 15:10) [10]

Удалено модератором


 
Сергей М. ©   (2007-11-16 15:14) [11]


> неуловимый глюк


Неуловимым имеет право быть только Джо Неуловимый)


> Отладка программы


Ты ей даже и не занимался, так что нефига здесь трындеть.


 
Dark ©   (2007-11-16 15:14) [12]


>
> Reindeer Moss Eater ©   (16.11.07 15:05) [8]
> form1.savedialog1 := form1.savedialog1.Create(self);
>
> Автор, пиши ещё!
> :)

А что не так? 8)


 
Dark ©   (2007-11-16 15:15) [13]

Удалено модератором


 
Dark ©   (2007-11-16 15:16) [14]

Удалено модератором


 
Alex'   (2007-11-16 15:18) [15]

Нормальных полно, помоч не могут ;) . А грязи и небыло.


 
clickmaker ©   (2007-11-16 15:20) [16]


> [14] Dark ©   (16.11.07 15:16)
> Здесь что, вообще нет НОРМАЛЬНЫХ людей

Лады. Наводящий вопрос. Что такое OpenDialog1?


 
Игорь Шевченко ©   (2007-11-16 15:21) [17]

Бан неизбежен, как кризис империализма.


 
Сергей М. ©   (2007-11-16 15:22) [18]


> ты то откуда знаешь?
>


От верблюда)

Ты сам же и изложил подробности своей "отладки" в сабже)


 
Сергей М. ©   (2007-11-16 15:25) [19]


> про недопустимую ошибку и прочую лабуду


Запишись к Кетмарю на прием)


 
Dark ©   (2007-11-16 15:25) [20]


> Лады. Наводящий вопрос. Что такое OpenDialog1?

Это с вкладочки Dialogs диалог OpenDialog типа TOpenDialog под своим порядковым номером.)

> Ты сам же и изложил подробности своей "отладки" в сабже)

Это прозрачный намёк на YESNOCANCEL?)


 
Reindeer Moss Eater ©   (2007-11-16 15:26) [21]

Это с вкладочки Dialogs диалог OpenDialog типа TOpenDialog под своим порядковым номером.)

То есть это экземпляр положенный на форму в дизайне.
А конструктор зачем?
Мало одного диалога?


 
Сергей М. ©   (2007-11-16 15:26) [22]


> Это прозрачный намёк на YESNOCANCEL?


Это, чудо, непрозрачный намек на то, что ты ни единого раза не трассировал свой код в поисках своих "неуловимых глюков".


 
Dark ©   (2007-11-16 15:26) [23]


> Запишись к Кетмарю на прием)

Разъясни для новеньких кто ето?


 
Сергей М. ©   (2007-11-16 15:27) [24]


> кто ето?


Это тот кто ничтоже сумняшеся прописывает пилюли от ламерства)


 
Dark ©   (2007-11-16 15:28) [25]


> То есть это экземпляр положенный на форму в дизайне.
> А конструктор зачем?
> Мало одного диалога?

Т.е. достаточно вызывать его через Execute?

> Это, чудо, непрозрачный намек на то, что ты ни единого раза
> не трассировал свой код в поисках своих "неуловимых глюков".
>

Ну вот...опять новое слово...трассировал...


 
clickmaker ©   (2007-11-16 15:29) [26]


> [20] Dark ©   (16.11.07 15:25)
>
> > Лады. Наводящий вопрос. Что такое OpenDialog1?
>
> Это с вкладочки Dialogs диалог OpenDialog типа TOpenDialog
> под своим порядковым номером

окей-оби.
Тогда это зачем?

OpenDialog1 := TOpenDialog.Create(self);

и, тем более, это

form1.savedialog1 := form1.savedialog1.Create(self);

второе - вообще смахивает на бред сивой кобылы в лунную ночь


 
Dark ©   (2007-11-16 15:30) [27]


> Это тот кто ничтоже сумняшеся прописывает пилюли от ламерства)

Путь избавления от ламерства-учеба...чем я сейчас и занимаюсь...а если мне кто скажет, что я ламер, я и не буду спорить, т.к. сам это прекрасно знаю.


 
Dark ©   (2007-11-16 15:31) [28]


> > [20] Dark ©   (16.11.07 15:25)
> >
> > > Лады. Наводящий вопрос. Что такое OpenDialog1?
> >
> > Это с вкладочки Dialogs диалог OpenDialog типа TOpenDialog
>
> > под своим порядковым номером
>
> окей-оби.
> Тогда это зачем?
>
> OpenDialog1 := TOpenDialog.Create(self);
>
> и, тем более, это
>
> form1.savedialog1 := form1.savedialog1.Create(self);
>
> второе - вообще смахивает на бред сивой кобылы в лунную
> ночь

Второе, это просто...диалог вызывается из другой формы...А вообще кажется я потихоньку понимаю ситуацию...


 
Alex'   (2007-11-16 15:31) [29]

Ну вот, все налаживается...


 
Сергей М. ©   (2007-11-16 15:32) [30]


> Путь избавления от ламерства-учеба


Учеба начинается с вопросов самому себе - "ЗАЧЕМ я сделал ЭТО".

ЭТО - это то что адресовано тебе ну хотя бы в [26])


 
Dark ©   (2007-11-16 15:33) [31]

А вот у меня появился незамысловатый вопрос, кто-нить скачал exe?


 
Dark ©   (2007-11-16 15:34) [32]

Сделал Build, пока без ошибок...иду проверять


 
Dark ©   (2007-11-16 15:35) [33]

Появились первые ошибки...уже понятные...даже радостно как-то..


 
Сергей М. ©   (2007-11-16 15:37) [34]


> кто-нить скачал exe?
>


ехе твой - это неуловимый Джо)


 
Alex'   (2007-11-16 15:41) [35]

Шли сюда свои труды http://www.kaspersky.com/, тут умеют проги анализировать, причем бесплатно


 
Dark ©   (2007-11-16 15:42) [36]


> Alex"   (16.11.07 15:41) [35]
> Шли сюда свои труды http://www.kaspersky.com/, тут умеют
> проги анализировать, причем бесплатно

Ых...опять английский... Кстати, уборка конструктора от ошибок не избавила. Я оставил только строку .Execute  ......


 
Игорь Шевченко ©   (2007-11-16 15:46) [37]


> Разъясни для новеньких


Все разъяснения для новеньких находятся тут:
http://www.delphimaster.ru/forums.shtml#rule


 
Сергей М. ©   (2007-11-16 15:46) [38]

Удалено модератором


 
Dark ©   (2007-11-16 15:47) [39]

Удалено модератором


 
Сергей М. ©   (2007-11-16 15:48) [40]

Удалено модератором



Страницы: 1 2 3 4 5 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.046 c
3-1186578799
zmalqop
2007-08-08 17:13
2007.12.16
Создание индекса


15-1195116215
lehich
2007-11-15 11:43
2007.12.16
резервная копия nokia 6230


15-1195120254
WFS
2007-11-15 12:50
2007.12.16
Как переименовать Unit?


2-1195900527
Вячеслав
2007-11-24 13:35
2007.12.16
Проблема с формами


15-1195017660
Fin
2007-11-14 08:21
2007.12.16
Запуск программ без цифровой подписи в Viste.





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