![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
Скачал твой архив, в нем много киртинок, файол рнр и никаких иходников делфи. Или я чего-то неправильноделаю?
|