|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
Сейчас попробую. Но, AV возникает во время работы программы, когда я ее еще и не пытался даже закрывать...
Как я и думал, после добавления Код:
Form1.FormDestroy(Sender: TObject); И ко всему прочему теперь AV возникает двахжы первый раз как и раньше. а второй раз после выхода из программы... Последний раз редактировалось lostbananan, 26.03.2013 в 14:59. |
#17
|
||||
|
||||
Если ошибки появляются, значит это кому нибудь нужно. Народная мудрость.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 26.03.2013 в 17:16. |
#18
|
|||
|
|||
Похоже на то, что мне нужно... Но разници в коде (моем и твоем) я не вижу...
Товой код AV не выдает, а мой - выдает. ПОЧЕМУ?? Разница, ты массивы как константы задал( Код:
LabCap: array [0..16] of string= ('0','1','2', Последний раз редактировалось lostbananan, 26.03.2013 в 16:55. |
#19
|
||||
|
||||
Цитата:
Насчёт констант, нет, слова ключевого нет, значит не костанта, просто начальное заполнение-присвоение выполняется. Оффтоп: З.Ы. Наверное с месяц, может и больше, сомн УКов славного форума грузится непонятно чем, ситуация напоминает анекдот про двух слепых и слона - один дерево с ногой перепутал, другой хобот за змею принял тоже самое - инфы вылито тонны, уверен, ответ на вопрос уже дан и он раскрыт полностью во всех топках наверное много раз. Давно бы уже увж. ТС в "Код на шару" наработки свои с ТЗ выложил бы, и глядишь ктонить их до ума бы их довёл. Что там такого секретного в сборке, что выдавливаются фрагменты как паста из тюбика, капляюшками, не пойму, сало та горілка все одно краще . Без обид. Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 26.03.2013 в 17:22. |
#20
|
|||
|
|||
А где? И как определить где она вылазит??
|
#21
|
|||
|
|||
да ничего секретного нет...
код сейчас здесь покажу: Код:
unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, StdCtrls, IniFiles, Math, Printers, Grids; type TForm1 = class(TForm) Timer1: TTimer; Button1: TButton; Button2: TButton; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } procedure LabelIn(i:integer); procedure GridIn(i:integer); { procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);} end; var Form1: TForm1; pBar : Integer = 1; lab : TLabel; sPath: String[60]; sIniFile: TIniFile; result: array [1..88] of boolean; agres, alcohol, boss : integer; depression, debts, salary : integer; information, leader, status : integer; drugs, dismissal : integer; bars : array[0..10] of TProgressBar; labels : array[0..10] of TLabel; ib : integer; TextLabel : array[0..10] of TLabel; Grid : array[0..10] of TDrawGrid; LabCap : array[0..10] of string= ('Агресія', 'Алкоголь', 'Шеф', 'Депресія', 'Борги', 'Зарплата', 'Інформація', 'Лідер', 'Статус', 'Наркотики', 'Звільнення'); LabLeft : array[0..10] of integer= (30, 130, 230, 345, 450, 540, 630, 758, 860, 950, 1060); GridH : array[0..10] of integer; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); var pb : TProgressBar; begin pb := bars[RandomRange(0, 11)]; if Assigned(pb) then pb.Position := pb.Position + 1; if pb.Position >= 100 then begin Inc(ib); if ib>=150 then begin Timer1.Enabled := false; Button1.Enabled := true; end; end; end; |
#22
|
|||
|
|||
вторая часть кода:
Код:
procedure TForm1.FormCreate(Sender: TObject); var rez : integer; captions : array[0..10] of string; i : integer; begin ib := 0; captions[0] := 'Аналізується "Агресія"'; captions[1] := 'Аналізується "Алкоголь"'; captions[2] := 'Аналізується "Шеф"'; captions[3] := 'Аналізується "Депресія"'; captions[4] := 'Аналізується "Борги"'; captions[5] := 'Аналізується "Зарплата"'; captions[6] := 'Аналізується "Інформація"'; captions[7] := 'Аналізується "Лідер"'; captions[8] := 'Аналізується "Статус"'; captions[9] := 'Аналізується "Наркотики"'; captions[10] := 'Аналізується "Звільнення"'; Timer1.Enabled := true; GetDir(0, sPath); sIniFile := TIniFile.Create(sPath +'\loin.ini'); // Ініціалізація масиву результатів... rez := sIniFile.ReadInteger('Результати', 'Агресія', 0); // Агресія входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Агресія 15', 0); if rez = 1 then agres := 15; rez := sIniFile.ReadInteger('Результати', 'Агресія 30', 0); if rez = 1 then agres := 30; rez := sIniFile.ReadInteger('Результати', 'Агресія 45', 0); if rez = 1 then agres := 45; rez := sIniFile.ReadInteger('Результати', 'Агресія 60', 0); if rez = 1 then agres := 60; rez := sIniFile.ReadInteger('Результати', 'Агресія 75', 0); if rez = 1 then agres := 75; rez := sIniFile.ReadInteger('Результати', 'Агресія 85', 0); if rez = 1 then agres := 85; rez := sIniFile.ReadInteger('Результати', 'Агресія 100', 0); if rez = 1 then agres := 100; end; rez := sIniFile.ReadInteger('Результати', 'Алкоголь', 0); // Алкоголь входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Алкоголь 15', 0); if rez = 1 then alcohol := 15; rez := sIniFile.ReadInteger('Результати', 'Алкоголь 30', 0); if rez = 1 then alcohol := 30; rez := sIniFile.ReadInteger('Результати', 'Алкоголь 45', 0); if rez = 1 then alcohol := 45; rez := sIniFile.ReadInteger('Результати', 'Алкоголь 60', 0); if rez = 1 then alcohol := 60; rez := sIniFile.ReadInteger('Результати', 'Алкоголь 75', 0); if rez = 1 then alcohol := 75; rez := sIniFile.ReadInteger('Результати', 'Алкоголь 85', 0); if rez = 1 then alcohol := 85; rez := sIniFile.ReadInteger('Результати', 'Алкоголь 100', 0); if rez = 1 then alcohol := 100; end; rez := sIniFile.ReadInteger('Результати', 'Бос', 0); // Бос входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Бос 15', 0); if rez = 1 then boss := 15; rez := sIniFile.ReadInteger('Результати', 'Бос 30', 0); if rez = 1 then boss := 30; rez := sIniFile.ReadInteger('Результати', 'Бос 45', 0); if rez = 1 then boss := 45; rez := sIniFile.ReadInteger('Результати', 'Бос 60', 0); if rez = 1 then boss := 60; rez := sIniFile.ReadInteger('Результати', 'Бос 75', 0); if rez = 1 then boss := 75; rez := sIniFile.ReadInteger('Результати', 'Бос 85', 0); if rez = 1 then boss := 85; rez := sIniFile.ReadInteger('Результати', 'Бос 100', 0); if rez = 1 then boss := 100; end; // depression rez := sIniFile.ReadInteger('Результати', 'Депресія', 0); // Депресія входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Депресія 15', 0); if rez = 1 then depression := 15; rez := sIniFile.ReadInteger('Результати', 'Депресія 30', 0); if rez = 1 then depression := 30; rez := sIniFile.ReadInteger('Результати', 'Депресія 45', 0); if rez = 1 then depression := 45; rez := sIniFile.ReadInteger('Результати', 'Депресія 60', 0); if rez = 1 then depression := 60; rez := sIniFile.ReadInteger('Результати', 'Депресія 75', 0); if rez = 1 then depression := 75; rez := sIniFile.ReadInteger('Результати', 'Депресія 85', 0); if rez = 1 then depression := 85; rez := sIniFile.ReadInteger('Результати', 'Депресія 100', 0); if rez = 1 then depression := 100; end; rez := sIniFile.ReadInteger('Результати', 'Борги', 0); // Борги входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Борги 15', 0); if rez = 1 then debts := 15; rez := sIniFile.ReadInteger('Результати', 'Борги 30', 0); if rez = 1 then debts := 30; rez := sIniFile.ReadInteger('Результати', 'Борги 45', 0); if rez = 1 then debts := 45; rez := sIniFile.ReadInteger('Результати', 'Борги 60', 0); if rez = 1 then debts := 60; rez := sIniFile.ReadInteger('Результати', 'Борги 75', 0); if rez = 1 then debts := 75; rez := sIniFile.ReadInteger('Результати', 'Борги 85', 0); if rez = 1 then debts := 85; rez := sIniFile.ReadInteger('Результати', 'Борги 100', 0); if rez = 1 then debts := 100; end; rez := sIniFile.ReadInteger('Результати', 'Зарплата', 0); // Зарплата входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Зарплата 15', 0); if rez = 1 then salary := 15; rez := sIniFile.ReadInteger('Результати', 'Зарплата 30', 0); if rez = 1 then salary := 30; rez := sIniFile.ReadInteger('Результати', 'Зарплата 45', 0); if rez = 1 then salary := 45; rez := sIniFile.ReadInteger('Результати', 'Зарплата 60', 0); if rez = 1 then salary := 60; rez := sIniFile.ReadInteger('Результати', 'Зарплата 75', 0); if rez = 1 then salary := 75; rez := sIniFile.ReadInteger('Результати', 'Зарплата 85', 0); if rez = 1 then salary := 85; rez := sIniFile.ReadInteger('Результати', 'Зарплата 100', 0); if rez = 1 then salary := 100; end; rez := sIniFile.ReadInteger('Результати', 'Інформація', 0); // Інформація входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Інформація 15', 0); if rez = 1 then information := 15; rez := sIniFile.ReadInteger('Результати', 'Інформація 30', 0); if rez = 1 then information := 30; rez := sIniFile.ReadInteger('Результати', 'Інформація 45', 0); if rez = 1 then information := 45; rez := sIniFile.ReadInteger('Результати', 'Інформація 60', 0); if rez = 1 then information := 60; rez := sIniFile.ReadInteger('Результати', 'Інформація 75', 0); if rez = 1 then information := 75; rez := sIniFile.ReadInteger('Результати', 'Інформація 85', 0); if rez = 1 then information := 85; rez := sIniFile.ReadInteger('Результати', 'Інформація 100', 0); if rez = 1 then information := 100; end; rez := sIniFile.ReadInteger('Результати', 'Лідер', 0); // Лідер входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Лідер 15', 0); if rez = 1 then leader := 15; rez := sIniFile.ReadInteger('Результати', 'Лідер 30', 0); if rez = 1 then leader := 30; rez := sIniFile.ReadInteger('Результати', 'Лідер 45', 0); if rez = 1 then leader := 45; rez := sIniFile.ReadInteger('Результати', 'Лідер 60', 0); if rez = 1 then leader := 60; rez := sIniFile.ReadInteger('Результати', 'Лідер 75', 0); if rez = 1 then leader := 75; rez := sIniFile.ReadInteger('Результати', 'Лідер 85', 0); if rez = 1 then leader := 85; rez := sIniFile.ReadInteger('Результати', 'Лідер 100', 0); if rez = 1 then leader := 100; end; rez := sIniFile.ReadInteger('Результати', 'Статус', 0); // Статус входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Статус 15', 0); if rez = 1 then status := 15; rez := sIniFile.ReadInteger('Результати', 'Статус 30', 0); if rez = 1 then status := 30; rez := sIniFile.ReadInteger('Результати', 'Статус 45', 0); if rez = 1 then status := 45; rez := sIniFile.ReadInteger('Результати', 'Статус 60', 0); if rez = 1 then status := 60; rez := sIniFile.ReadInteger('Результати', 'Статус 75', 0); if rez = 1 then status := 75; rez := sIniFile.ReadInteger('Результати', 'Статус 85', 0); if rez = 1 then status := 85; rez := sIniFile.ReadInteger('Результати', 'Статус 100', 0); if rez = 1 then status := 100; end; |
#23
|
|||
|
|||
третья часть кода:
Код:
rez := sIniFile.ReadInteger('Результати', 'Наркотики', 0); // Статус входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Наркотики 15', 0); if rez = 1 then drugs := 15; rez := sIniFile.ReadInteger('Результати', 'Наркотики 30', 0); if rez = 1 then drugs := 30; rez := sIniFile.ReadInteger('Результати', 'Наркотики 45', 0); if rez = 1 then drugs := 45; rez := sIniFile.ReadInteger('Результати', 'Наркотики 60', 0); if rez = 1 then drugs := 60; rez := sIniFile.ReadInteger('Результати', 'Наркотики 75', 0); if rez = 1 then drugs := 75; rez := sIniFile.ReadInteger('Результати', 'Наркотики 85', 0); if rez = 1 then drugs := 85; rez := sIniFile.ReadInteger('Результати', 'Наркотики 100', 0); if rez = 1 then drugs := 100; end; rez := sIniFile.ReadInteger('Результати', 'Звільнення', 0); // Статус входить до тесту if rez = 1 then begin rez := sIniFile.ReadInteger('Результати', 'Звільнення 15', 0); if rez = 1 then dismissal := 15; rez := sIniFile.ReadInteger('Результати', 'Звільнення 30', 0); if rez = 1 then dismissal := 30; rez := sIniFile.ReadInteger('Результати', 'Звільнення 45', 0); if rez = 1 then dismissal := 45; rez := sIniFile.ReadInteger('Результати', 'Звільнення 60', 0); if rez = 1 then dismissal := 60; rez := sIniFile.ReadInteger('Результати', 'Звільнення 75', 0); if rez = 1 then dismissal := 75; rez := sIniFile.ReadInteger('Результати', 'Звільнення 85', 0); if rez = 1 then dismissal := 85; rez := sIniFile.ReadInteger('Результати', 'Звільнення 100', 0); if rez = 1 then dismissal := 100; end; for i:=0 to 10 do begin // прогресбари і мітки до них labels[i] := TLabel.Create(Form1); labels[i].Parent := Form1; labels[i].Caption := Captions[i]; labels[i].Left := 55; labels[i].Width := 135; labels[i].Top := 8+40*i; bars[i] := TProgressBar.Create(Form1); bars[i].Parent := Form1; bars[i].Left := 22; bars[i].Width := 521; bars[i].Top := 22+40*i; end; end; |
#24
|
||||
|
||||
Я имел ввиду архив прикрутить, а не портянки - ты думаешь есть большое желание это всё в новый проект вкладывать, отнюдь. Вот исправят ребята "на бумаге баги", ты положишь их в делфийскую обёртку свою, а оно бац, не работает - какаянить мелочь всю малину испортит. Архивчик в студию! (чуть пониже редактора сообщений есть пунктик управление вложениями, это оно)
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#25
|
|||
|
|||
Прикрепил архив (AnalizData.zip) /зархивировал всю папку с проектом)...
|
#26
|
||||
|
||||
Будешь смеяться, но оба твоих проекта у меня под ХР работают без ошибок, ползунки прогрессбаров добегают до конца и останавливаются, даже агрессия вылазит Глюков нет.Буду поглядеть дальше.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#27
|
|||
|
|||
мне, честно говоря не смешно, я по Севен и иногда ошибки нет, но в основном она есть, под ХР даную программу я не тестировал
|
#28
|
||||
|
||||
Цитата:
З.Ы.Так и не въехал в начальную загрузку, зачем такие сложности, всё равно переменные заполняются сразу на 100% (или остаются пустыми, так кстати и было вызывая AV), проще сделать нижеприведёнкой, намного код сократится (очень намного) Код:
... // Ініціалізація масиву результатів... depression := sIniFile.ReadInteger('Results', 'Depression', 0); debts := sIniFile.ReadInteger('Results', 'Borgs', 0); salary := sIniFile.ReadInteger('Results', 'Salary', 0); information := sIniFile.ReadInteger('Results', 'Information', 0); leader := sIniFile.ReadInteger('Results', 'Leader', 0); status := sIniFile.ReadInteger('Results', 'Status', 0); drugs := sIniFile.ReadInteger('Results', 'Drugs', 0); dismissal := sIniFile.ReadInteger('Results', 'Release', 0); ... З.ЫЗ.Ы. На всякий пожарный, перезалил. Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 30.03.2013 в 13:28. |
#29
|
|||
|
|||
Спасибо за совет, посмотрю обязательно, но уже завтра (устал я сегодня на работе 1С мучила меня а я ее ...
|
#30
|
|||
|
|||
Скачал твой архив, в нем много киртинок, файол рнр и никаких иходников делфи. Или я чего-то неправильноделаю?
|