Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.02;
Скачать: CL | DM;

Вниз

Динамическое создание компонентов   Найти похожие ветки 

 
Jaxtor ©   (2003-05-21 14:55) [0]

Как избавиться от ошибки в

var Cb: TComboBox;

Cb:=TCombobox.Create(Self);
Cb.Parent:=Self;
Cb.Left:=150;
Cb.Top:=50;
Cb.Name:="CategoryComboBox";

Cb:=TCombobox.Create(Self);
Cb.Parent:=Self;
Cb.Left:=150;
Cb.Top:=80;
Cb.Name:="VendorComboBox";

//Вот здесь возникает ошибка!

[Error] Parameters.pas(64): Undeclaredidentifier: "CategoryComboBox"

CategoryComboBox.Items.Clear;


 
Юрий Федоров ©   (2003-05-21 15:00) [1]

Либо так :
var CategoryComboBox: TComboBox;
VendorComboBox : TComboBox;

CategoryComboBox:=TCombobox.Create(Self);
CategoryComboBox.Parent:=Self;
CategoryComboBox.Left:=150;
CategoryComboBox.Top:=50;
CategoryComboBox.Name:="CategoryComboBox";

VendorComboBox:=TCombobox.Create(Self);
VendorComboBox.Parent:=Self;
VendorComboBox.Left:=150;
VendorComboBox.Top:=80;
VendorComboBox.Name:="VendorComboBox";

Либо :
(FindComponent("CategoryComboBox") as TComboBox).Items.Clear;






 
Jaxtor ©   (2003-05-21 15:01) [2]

Thanks


 
VMcL ©   (2003-05-21 15:01) [3]

А если подумать?


 
Ihor Osov'yak ©   (2003-05-21 15:03) [4]

CategoryComboBox не есть идентификатором. Это имя компонента.

Возможно делать вызов CB.Items.Clear; сразу после создания - но это лишнее - список и так пуст тогда.

Если нужно делать очистку позже - то нужно какую-то переменную для хранения указателя на соотв. екземпляр. Или сделать поиск в списке компонентов формі по имени.. Да много каких способов есть..


 
CABBA ©   (2003-05-22 12:20) [5]

А мне кажется, что идентификаторы в Паскале - это все те имена, которые указываются в программе. Когда мы создаем компонент в DesignTime, а потом переименовываем, то просто меняется имя в описании формы, на которой он "лежит". Я не пробовал (сейчас негде), но разве можно написать следующее:

fmMyForm.Name:= "fmNew_Name_Of_MyForm";

??? По-моему, все такие попытки тщетны.


 
Palladin ©   (2003-05-22 12:37) [6]


> CABBA © (22.05.03 12:20)

Name это свойство, не вижу никаких факторов препятствующих установлению ему значения


 
namor ©   (2003-05-22 14:15) [7]

Ничего удивительного...
Сначала
Cb.Name:="CategoryComboBox";
затем
Cb.Name:="VendorComboBox";

CategoryComboBox уже нет, ты переименовал его в Vendor

см. решение Юрия Фёдорова...


 
Palladin ©   (2003-05-22 14:20) [8]

маразм крепчал :)

> namor © (22.05.03 14:15)

ты мудр до нельзя, его не то что бы нет, его никогда и не было...

как избавится от ошибки? :) очень просто


> Jaxtor © (21.05.03 14:55)

var Cb: TComboBox;

Cb:=TCombobox.Create(Self);
Cb.Parent:=Self;
Cb.Left:=150;
Cb.Top:=50;
Cb.Name:="CategoryComboBox";

Cb:=TCombobox.Create(Self);
Cb.Parent:=Self;
Cb.Left:=150;
Cb.Top:=80;
Cb.Name:="VendorComboBox";

TComboBox(Self.FindComponent("CategoryComboBox")).Items.Clear;

это первое, а второе накой черт его clear если он создан 6 строчек назад только?


 
KSergey ©   (2003-05-22 16:13) [9]

> CABBA © (22.05.03 12:20)
> А мне кажется, что идентификаторы в Паскале - это все те
> имена, которые указываются в программе. Когда мы создаем

Боже упаси сказать вам такое в обществе. Не поймут. Могут и набить.

PS: это просто IDE так делает, реально же имя переменной, которой присвоена ссылка на объект (в данном случае это Cb), никак не связана со сначением свойства Name этого объекта.

PPS: а может IDE зря так делает? Стандартное же заблуждение начинающих... Да и нафиг это Name вообще нужно? Мне как-то сомнительна его надобность, кроме как для нужд IDE...


 
KSergey ©   (2003-05-22 16:16) [10]

http://www.delphikingdom.com/helloworld/runtime_comp.htm



Страницы: 1 вся ветка

Текущий архив: 2003.06.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
1-2973
Disa
2003-05-21 13:10
2003.06.02
Циклы в потоке...


1-2861
firefox
2003-05-22 11:55
2003.06.02
TThread - возможно ли по окончании передать результат


4-3221
Psibug
2003-04-01 10:07
2003.06.02
Почему не работает (работает по разному) Sleep


14-3123
FFF
2003-05-14 17:09
2003.06.02
Привет всем!, народ не подскжете где найти подробную инфу


7-3184
SiJack
2003-04-01 15:03
2003.06.02
Проблема - не дать отключится монитору!!!