Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка в конце процедуры, :-0 
V
    Опции темы
MItornaDOS
  Дата 7.3.2008, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.8.2007
Где: UA

Репутация: нет
Всего: нет



Код

procedure TForm0500202.Minus(Sender: TObject);
var Delet,i: integer;
begin
  Delet:=StrToInt(copy (TButton(Sender).Name,4,pos ('Stov',TButton(Sender).Name)-4));
  For i:=Delet to (KStr-1) do
    begin
      (FindComponent('Str'+IntToStr(i)+'Stov2') as TComboBox).ItemIndex:=
       (FindComponent('Str'+IntToStr(i+1)+'Stov2') as TComboBox).ItemIndex;
      (FindComponent('Str'+IntToStr(i)+'Stov3') as TEdit).Text:=
       (FindComponent('Str'+IntToStr(i+1)+'Stov3') as TEdit).Text;
      (FindComponent('Str'+IntToStr(i)+'Stov4') as TEdit).Text:=
       (FindComponent('Str'+IntToStr(i+1)+'Stov4') as TEdit).Text;
      (FindComponent('Str'+IntToStr(i)+'Stov5') as TEdit).Text:=
       (FindComponent('Str'+IntToStr(i+1)+'Stov5') as TEdit).Text;
      (FindComponent('Str'+IntToStr(i)+'Stov6') as TEdit).Text:=
       (FindComponent('Str'+IntToStr(i+1)+'Stov6') as TEdit).Text;
      (FindComponent('Str'+IntToStr(i)+'Stov7') as TEdit).Text:=
       (FindComponent('Str'+IntToStr(i+1)+'Stov7') as TEdit).Text;
    end;

  (FindComponent('Str'+IntToStr (KStr)+'Stov0') as TBitBtn).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov1') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov2') as TComboBox).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov3') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov4') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov5') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov6') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov7') as TEdit).Free;

  Dec (KStr);
  Plus.Top:=Plus.Top-NewStrTop;
end;     //<<<<<<<<<<<<


Всё верно до строки помеченой "<<<<"
тоесть после завершения процедуры выскакивает такая ошибка:
user posted image

PS к этой процедуре обращается несколько BitBtn'ов, и ошибка выскакивает после второго нажатия.

Как бороться?

PM MAIL ICQ   Вверх
ivan219
  Дата 7.3.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Этот код удаляет контролы:
Код

  (FindComponent('Str'+IntToStr (KStr)+'Stov0') as TBitBtn).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov1') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov2') as TComboBox).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov3') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov4') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov5') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov6') as TEdit).Free;
  (FindComponent('Str'+IntToStr (KStr)+'Stov7') as TEdit).Free;

А при поторном нажатии ты к ним обращаешся а их нет!

Добавлено через 2 минуты и 47 секунд
Код

 (FindComponent('Str'+IntToStr (KStr)+'Stov2') as TComboBox).Free; // Удалил
 (FindComponent('Str'+IntToStr(i+1)+'Stov2') as TComboBox).ItemIndex; // Обратился

PM MAIL ICQ   Вверх
MItornaDOS
Дата 7.3.2008, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.8.2007
Где: UA

Репутация: нет
Всего: нет



Код

  Dec (KStr);

Вот я уменьшаю KStr, поэтом это не оно
PM MAIL ICQ   Вверх
volvo877
Дата 8.3.2008, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 14
Всего: 116



MItornaDOS, показывай больше кода, я только что проверил твою процедуру Minus на тестовом проекте, никаких ошибок, все работает. Что-то у тебя "снаружи" не в порядке...
PM MAIL   Вверх
MItornaDOS
Дата 8.3.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.8.2007
Где: UA

Репутация: нет
Всего: нет



Вот у меня кнопочка которая создаёт компоненты:
Код

procedure TForm0500202.PlusClick(Sender: TObject);
begin
  inc (KStr);
  Plus.Top:=Plus.Top+NewStrTop;

  With TBitBtn.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov0.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov0';
      Top:=Str1Stov0.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov0.Left;
      Caption:='-';
      Height:=Str1Stov0.Height;
      Width:=Str1Stov0.Width;
      Font:=Str1Stov0.Font;
      OnClick:=Minus;
      TabStop:=False;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov1.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov1';
      Top:=Str1Stov1.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov1.Left;
      Text:=IntToStr(KStr);
      Height:=Str1Stov1.Height;
      Width:=Str1Stov1.Width;
      Color:=Str1Stov1.Color;
      Font:=Str1Stov1.Font;
      ReadOnly:=Str1Stov1.ReadOnly;
      TabStop:=False;
      Visible:=True;
    end;
  With TComboBox.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov2.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov2';
      Top:=Str1Stov2.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov2.Left;
      Text:='';
      Height:=Str1Stov2.Height;
      Width:=Str1Stov2.Width;
      Color:=Str1Stov2.Color;
      Top:=Str1Stov2.Top+(KStr-1)*NewStrTop;
      Items:=Str1Stov2.Items;
      Font:=Str1Stov2.Font;
      TabOrder:=(KStr-1)*5;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov3.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov3';
      Top:=Str1Stov3.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov3.Left;
      Text:='';
      Height:=Str1Stov3.Height;
      Width:=Str1Stov3.Width;
      Color:=Str1Stov3.Color;
      Font:=Str1Stov3.Font;
      TabStop:=False;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov4.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov4';
      Top:=Str1Stov4.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov4.Left;
      Text:='';
      Height:=Str1Stov4.Height;
      Width:=Str1Stov4.Width;
      Color:=Str1Stov4.Color;
      Font:=Str1Stov4.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+1;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov5.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov5';
      Top:=Str1Stov5.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov5.Left;
      Text:='';
      Height:=Str1Stov5.Height;
      Width:=Str1Stov5.Width;
      Color:=Str1Stov5.Color;
      Font:=Str1Stov5.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+2;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov6.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov6';
      Top:=Str1Stov6.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov6.Left;
      Text:='';
      Height:=Str1Stov6.Height;
      Width:=Str1Stov6.Width;
      Color:=Str1Stov6.Color;
      Font:=Str1Stov6.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+3;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov7.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov7';
      Top:=Str1Stov7.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov7.Left;
      Text:='';
      Height:=Str1Stov7.Height;
      Width:=Str1Stov7.Width;
      Color:=Str1Stov7.Color;
      Font:=Str1Stov7.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+4;
      Visible:=True;
    end;

//  If KStr>10 then ScrollBar1.Max:=KStr-9;
end;

PM MAIL ICQ   Вверх
MItornaDOS
Дата 8.3.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.8.2007
Где: UA

Репутация: нет
Всего: нет



user posted image
можно на скролл внимания не обращать

Это сообщение отредактировал(а) MItornaDOS - 8.3.2008, 09:34
PM MAIL ICQ   Вверх
ivan219
  Дата 8.3.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Попробуй воспользоватся точками останова и пошагово определи на какой строке ошибка.
PM MAIL ICQ   Вверх
MItornaDOS
Дата 8.3.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.8.2007
Где: UA

Репутация: нет
Всего: нет



Это я и сделал, и у мну ошибка вылетила после последнего энда
PM MAIL ICQ   Вверх
aktuba
Дата 8.3.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(MItornaDOS @ 8.3.2008,  09:52)
Вот у меня кнопочка которая создаёт компоненты:
Код

procedure TForm0500202.PlusClick(Sender: TObject);
begin
  inc (KStr);
  Plus.Top:=Plus.Top+NewStrTop;

  With TBitBtn.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov0.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov0';
      Top:=Str1Stov0.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov0.Left;
      Caption:='-';
      Height:=Str1Stov0.Height;
      Width:=Str1Stov0.Width;
      Font:=Str1Stov0.Font;
      OnClick:=Minus;
      TabStop:=False;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov1.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov1';
      Top:=Str1Stov1.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov1.Left;
      Text:=IntToStr(KStr);
      Height:=Str1Stov1.Height;
      Width:=Str1Stov1.Width;
      Color:=Str1Stov1.Color;
      Font:=Str1Stov1.Font;
      ReadOnly:=Str1Stov1.ReadOnly;
      TabStop:=False;
      Visible:=True;
    end;
  With TComboBox.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov2.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov2';
      Top:=Str1Stov2.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov2.Left;
      Text:='';
      Height:=Str1Stov2.Height;
      Width:=Str1Stov2.Width;
      Color:=Str1Stov2.Color;
      Top:=Str1Stov2.Top+(KStr-1)*NewStrTop;
      Items:=Str1Stov2.Items;
      Font:=Str1Stov2.Font;
      TabOrder:=(KStr-1)*5;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov3.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov3';
      Top:=Str1Stov3.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov3.Left;
      Text:='';
      Height:=Str1Stov3.Height;
      Width:=Str1Stov3.Width;
      Color:=Str1Stov3.Color;
      Font:=Str1Stov3.Font;
      TabStop:=False;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov4.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov4';
      Top:=Str1Stov4.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov4.Left;
      Text:='';
      Height:=Str1Stov4.Height;
      Width:=Str1Stov4.Width;
      Color:=Str1Stov4.Color;
      Font:=Str1Stov4.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+1;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov5.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov5';
      Top:=Str1Stov5.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov5.Left;
      Text:='';
      Height:=Str1Stov5.Height;
      Width:=Str1Stov5.Width;
      Color:=Str1Stov5.Color;
      Font:=Str1Stov5.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+2;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov6.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov6';
      Top:=Str1Stov6.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov6.Left;
      Text:='';
      Height:=Str1Stov6.Height;
      Width:=Str1Stov6.Width;
      Color:=Str1Stov6.Color;
      Font:=Str1Stov6.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+3;
      Visible:=True;
    end;
  With TEdit.Create (Self) do
    begin
      Visible:=False;
      Parent:=Str1Stov7.Parent;
      Name:='Str'+IntToStr (KStr)+'Stov7';
      Top:=Str1Stov7.Top+(KStr-1)*NewStrTop;
      Left:=Str1Stov7.Left;
      Text:='';
      Height:=Str1Stov7.Height;
      Width:=Str1Stov7.Width;
      Color:=Str1Stov7.Color;
      Font:=Str1Stov7.Font;
      OnChange:=EditChange;
      TabOrder:=(KStr-1)*5+4;
      Visible:=True;
    end;

//  If KStr>10 then ScrollBar1.Max:=KStr-9;
end;

Вообще, это можно было сделать в цикле. Если хочешь получить полный ответ - выложи проект (тестовый)...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
MItornaDOS
Дата 8.3.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.8.2007
Где: UA

Репутация: нет
Всего: нет



ПОШЛО!
При нажатии на последний минус он удаляет сам себя smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.