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

Вниз

Как обратиться к компонентам созданным в реалтайме   Найти похожие ветки 

 
daimyo   (2006-05-05 13:50) [0]

вообщем вот )
я создал в реал тайме несколько DBedit`ОВ теперь мне необходимо обратиться к каждому из них кокретно
вот код:

for i:=0 to 10 do
begin
 dbedit:=tdbedit.Create(form2);
   with dbedit do
   begin

   Left:= 184;
   Top:= 72+21*i+15;
   Width:= 121;
   DataField:= form2.DBGrid1.Columns.Items[i].Title.Caption;
  DataSource:= Form2.DataSource1;
  end;
dbedit.name:="DB"+inttostr(i)  ;
dbedit.Parent:=form2;
  dbedit.Show;
end;

вот как мне например обратиться к dbedit`y с именем DB1 что изменить у него напримерсвойство DataField, понятно что в массиве но вот как их перебирать то ?? )


 
balepa ©   (2006-05-05 14:03) [1]

FindComponent
Или создавай массив из DBEdit"ов и обращайся к ним
for i:= 1 to n do
DB[i].XXX:= XXX
Поройся тут таких вопросов была куча.


 
Vasiliy   (2006-05-05 14:04) [2]

ссылку на контрол можно получить так:

Function GetDBEdit(Name:String):TDBEdit;
Var I:Integer;
begin
Result:=Nil;
For I:=0 to form2.ControlCount-1 do
 If (form2.Controls[I] is TDBEdit) and (form2.Controls[I].Name=Name) then
  Result:=TDBEdit(form2.Controls[I]);
end;


Предварительно в цикле нужно назначить каждому контролу своё имя

for i:=0 to 10 do
begin
dbedit:=tdbedit.Create(form2);
  with dbedit do
  begin
  Name:="DB"+IntToStr(i);
  Left:= 184;
  Top:= 72+21*i+15;
  Width:= 121;
  DataField:= form2.DBGrid1.Columns.Items[i].Title.Caption;
 DataSource:= Form2.DataSource1;
 end;
dbedit.name:="DB"+inttostr(i)  ;
dbedit.Parent:=form2;
 dbedit.Show;
end;


Обращаться так: GetDBEdit("DB1").DataSource:= ...


 
balepa ©   (2006-05-05 14:11) [3]

Если фиксированое количество DBEdit"oв Лучше массив использовать, ИМХО


 
Vasiliy   (2006-05-05 14:16) [4]

Для фиксированного количества конечно массив лучше, но я както привык писать так, чтобы не ограничивать себя на будущее ...


 
balepa ©   (2006-05-05 14:19) [5]


> Vasiliy   (05.05.06 14:16) [4]

Правильно нечего себя ограничивать :)


 
Amoeba ©   (2006-05-05 15:45) [6]

Используй не массив, а TObjectList, раз количество не фиксированное.


 
Daimyo   (2006-05-06 11:11) [7]

Спасибо :)


 
Ega23 ©   (2006-05-06 11:21) [8]


> Vasiliy   (05.05.06 14:04) [2]


> Function GetDBEdit(Name:String):TDBEdit;
> Var I:Integer;
> begin
> Result:=Nil;
> For I:=0 to form2.ControlCount-1 do
>  If (form2.Controls[I] is TDBEdit) and (form2.Controls[I].
> Name=Name) then
>   Result:=TDBEdit(form2.Controls[I]);
> end;
>


Функция написана только для частного случая. Если DBEdit лежит на панели, которая лежит на Form2, то его не найдут.


 
balepa ©   (2006-05-06 11:23) [9]


> Ega23 ©   (06.05.06 11:21) [8]

Если надо будет Найдут только др. способом :)


 
ANB ©   (2006-05-06 15:44) [10]


> Для фиксированного количества конечно массив лучше, но я
> както привык писать так, чтобы не ограничивать себя на будущее
> ...

Никто не мешает использовать динамический массив. Впрочем, у формы уже есть такой массив : Components.



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

Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
9-1130332463
Кефир87
2005-10-26 17:14
2006.05.21
TDXSound без VCL


5-1131963329
GVital
2005-11-14 13:15
2006.05.21
сохранить дерево TreeView с данными


2-1145873010
Task
2006-04-24 14:03
2006.05.21
Работа с WebBrouser


2-1146741214
KyRo
2006-05-04 15:13
2006.05.21
TServerSocket;


15-1145679526
Карелин Артем
2006-04-22 08:18
2006.05.21
Выправили мне вчера позвоночник.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский