Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2008, 06:25   #1
Protsv
Пользователь
 
Аватар для Protsv
 
Регистрация: 15.02.2008
Сообщений: 17
Печаль Программа падает при добавлении кода, который не используется.

Не пойму что происходит.
Написал прогу, нормально работает. Всё уже проверено.
Мне понадобилось сделать ещё пару вещей. Сохранение, и чтение с файлов. Но это не важно...
Главное в том, что я пишу новую процедуру, которая даже не где не запускается, т.е. код её вообще не выполняется. И моя програмуська вдруг начинает страшно шалить, перестаёт адекватно работать, в итоге критикал еррор и падение.
Тут же отправляю процедуру в комментарии. Всё начинает опять работать, исправно.

Я не пойму в чём дело. Повторяю, код процедуры не выполняется, она не прописана нигде.

Может вирусы. Или ошибка компилятора. Кто знает в чём дело ?
У кого-нибудь было так же?
Всё приходит с опытом ...

Последний раз редактировалось Protsv; 02.04.2008 в 06:30.
Protsv вне форума Ответить с цитированием
Старый 02.04.2008, 07:13   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

F5, F7, F8 тебе в помощь
Баламут вне форума Ответить с цитированием
Старый 02.04.2008, 07:44   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты код то выложи, может быть и компилятор глючный.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2008, 07:48   #4
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Кстате, я заметил, что если много юнитов в разделе uses, то при перестановки компилятор не видит например tBitmap, и на переменную этого типа говорит, что такого типа не существует!

Цитата:
Не пойму что происходит.
Написал прогу, нормально работает. Всё уже проверено.
Мне понадобилось сделать ещё пару вещей. Сохранение, и чтение с файлов. Но это не важно...
Главное в том, что я пишу новую процедуру, которая даже не где не запускается, т.е. код её вообще не выполняется. И моя програмуська вдруг начинает страшно шалить, перестаёт адекватно работать, в итоге критикал еррор и падение.
Тут же отправляю процедуру в комментарии. Всё начинает опять работать, исправно.

Я не пойму в чём дело. Повторяю, код процедуры не выполняется, она не прописана нигде.

Может вирусы. Или ошибка компилятора. Кто знает в чём дело ?
У кого-нибудь было так же?
А процедура как называется? Попробуй сначала поменять имя на " hteyffdgetop " ))) Таково точно нигде не будит и юниты лишние из юзес убери...

Последний раз редактировалось Altera; 02.04.2008 в 07:52.
Altera вне форума Ответить с цитированием
Старый 02.04.2008, 09:56   #5
Protsv
Пользователь
 
Аватар для Protsv
 
Регистрация: 15.02.2008
Сообщений: 17
По умолчанию

Поменял название, кое-что убрал из uses.
но нихрена.
Если убираю запуск процедуры с кнопки. Прога работает.
Если процедура осталась в событии OnClick, прога глючит.
Но повторяю на Button я даже не нажимаю.


Вот код.


Код:
var numb_of_people : Integer; // общая переменная


PROCEDURE SFxxxProc;
var i : Integer;
    s : AnsiString;
begin
Form1.SaveDialog1.InitialDir:=CurD+'\Forms\';
IF Form1.SaveDialog1.Execute THEN
    BEGIN
     IF FileExists(Form1.SaveDialog1.FileName)=False THEN
       BEGIN
         //CreateFile(/////)
       END;
     Savefile:=TIniFile.Create(Form1.SaveDialog1.FileName);
     SaveFile.WriteString('FormContent','Pro',Form1.Label2.Caption);
     IF Form1.LabelCh1.Caption <> 'Нет' THEN
        BEGIN
         For i := 0 TO numb_of_people DO
          BEGIN
           IF Form1.LabelCh1.Caption=peoples[i] THEN
            BEGIN
              SaveFile.WriteInteger('FormContent','ch1',i);
              Break;
            END;
          END;
        END;
 
     IF Trim(Form1.EditPor.Text)<>'' THEN
       BEGIN
        IF Length(Form1.EditPor.Text)>255 THEN
         BEGIN
          S:=Form1.EditPor.Text;
          Delete(s,255,Length(Form1.EditPor.Text));
          SaveFile.WriteString('FormContent','Por1',s);
          S:=Form1.EditPor.Text;
          Delete(s,0,255);
          SaveFile.WriteString('FormContent','Por2',s);
         END
        ELSE SaveFile.WriteString('FormContent','Por1',Form1.EditPor.Text);
       END;

      IF Trim(Form1.EditMer.Text)<>'' THEN
       BEGIN
        IF Length(Form1.EditMer.Text)>510 THEN
         BEGIN
          S:=Form1.EditMer.Text;
          Delete(s,255,Length(Form1.EditMer.Text));
          SaveFile.WriteString('FormContent','Mer1',s);
          S:=Form1.EditMer.Text;
          Delete(s,0,255);
          Delete(s,510,Length(Form1.EditMer.Text));
          SaveFile.WriteString('FormContent','Mer2',s);
          S:=Form1.EditMer.Text;
          Delete(s,0,510);
          SaveFile.WriteString('FormContent','Mer3',s);
         END
        ELSE
          IF (Length(Form1.EditMer.Text))>255 THEN
            BEGIN
             S:=Form1.EditMer.Text;
             Delete(s,255,Length(Form1.EditMer.Text));
             SaveFile.WriteString('FormContent','Mer1',s);
             S:=Form1.EditMer.Text;
             Delete(s,0,255);
             SaveFile.WriteString('FormContent','Mer2',s);
            END
          ELSE
          SaveFile.WriteString('FormContent','Mer1',Form1.EditMer.Text);
       END;
     //////////////
      FOR i:=0 TO 2 DO
      IF Form1.Label14.Caption=Form1.Popupmenu3.Items[i].Caption THEN
        BEGIN
         SaveFile.WriteInteger('FormContent','Master',i);
        END;
     //////////////
     IF Form1.Radiobutton2.Checked=True THEN
        BEGIN
          SaveFile.WriteString('FormDate','Date',Form1.Edit2.Text);
        END;
     IF Form1.Radiobutton4.Checked=True THEN
        BEGIN
          SaveFile.WriteString('FormTime','Time',Form1.Edit3.Text);
        END;
   
  SaveFile.Free;
    END;

end;
Всё приходит с опытом ...
Protsv вне форума Ответить с цитированием
Старый 02.04.2008, 12:46   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуй в процедуре сразу после begin
написать EXIT;

ещё точку останова в процедуре поставить и запустить программу. OnClick кнопки может вызывать КТО УГОДНО!
Ну, например, при FormShow он может вызываться..
в теле программы поищите OnClick...
кроме того, одна и та же процедура может быть назначена на разные события (поищите имя вашей процедуры внутри DFM файла.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.04.2008, 13:00   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
OnClick кнопки может вызывать КТО УГОДНО!
Ой-ли? Автор же сказал "код процедуры не выполняется, она не прописана нигде." - всмысле нигде не вызывается

Автор, прикрепи сюда архив всего проекта.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2008, 14:46   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Ой-ли? Автор же сказал "код процедуры не выполняется, она не прописана нигде."
угу. точно так. он именно так сказал.
Но я привык на слово никому не верить ;-))
И почему то у него же программа падает?..

Цитата:
Автор, прикрепи сюда архив всего проекта.
Вот с этим полностью согласен.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.04.2008, 16:11   #9
Protsv
Пользователь
 
Аватар для Protsv
 
Регистрация: 15.02.2008
Сообщений: 17
По умолчанию

Поставил точку останова на первой строчке...
Программа умерла как обычно... точка не сработала.
прикрепляю прогу.
Она сохранена в работающем режиме.
Советую посмотреть чё и как.
Потом можно убрать комментарии в 1330 строке Unit1 и посмотреть
хотя бы на выпадающие списки.
Я ещё думаю на вирусы.
И ещё. Не судите строго за реализацию. Я знаю что некоторые вещи можно сделать более простыми.
Мы лёгких путей не ищём.
Вложения
Тип файла: rar Расп.rar (38.1 Кб, 16 просмотров)
Всё приходит с опытом ...
Protsv вне форума Ответить с цитированием
Старый 02.04.2008, 16:40   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Такое впечатление что делфи просто давится такими огромнейшими файлами за 1000 строк.
Советую все же переписать более аккуратно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа позволяющая проанализировать сколько времени ушло на работу операторов кода. Stilet Софт 6 16.07.2008 16:32
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах PereCCC Помощь студентам 8 15.05.2008 16:24
Какой тип с/c++ больше всего напоминает компилятор gcc и g++ Который используется в UNIX-подобных система Иллидан Свободное общение 4 28.03.2008 02:29
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51
Как заставить Itemindex в ListBox перемещаться при добавлении новой строки на онную ? DartMrakkk Общие вопросы Delphi 10 05.07.2007 11:54