Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
1-2990
Yakudza
2003-05-21 13:13
2003.06.02
Русские символы в проге


3-2804
BorisUK
2003-05-08 09:18
2003.06.02
ClientDataSet -> получение данных в потоке...


1-2924
_Narayan_
2003-05-17 22:25
2003.06.02
DLL


1-2999
Dr. TOP
2003-05-21 18:56
2003.06.02
TreeView


1-2974
ArtemB
2003-05-21 13:15
2003.06.02
OnMouseMove





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский