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

Вниз

Цикл по объектам   Найти похожие ветки 

 
ВиТ   (2004-07-18 11:35) [0]

Здравствуйте. У меня есть БД с таблицей, в которой 10 полей.
Для вывода инфы на форме я хочу использовать соответственно 10 лейблов и 10 текстбоксов. Для этого мне приходится в каждый лейбл ручками прописывать название столбца таблицы, а в каждый текстбох содержание поля. Получается что-то вроде:

Label1.Caption:=DBGrid1.Columns[0].Title.Caption;
Label2.Caption:=DBGrid1.Columns[1].Title.Caption;
Label3.Caption:=DBGrid1.Columns[3].Title.Caption;  
...

и так 10 строчек:(
Можно ли как-то автоматизировать этот процесс, т.е. создать цикл по лейблам? Тогда бы всё в одну строчку уместилось...:)


 
Anatoly Podgoretsky ©   (2004-07-18 11:43) [1]

Можно


 
Dolt ©   (2004-07-18 11:44) [2]

Var
 T:tcomponent;
begin
for i:=1 to 10 do begin
 t:=FindComponent("Label"+inttostr(i));
 if (t<>nil)and(t is TLabel) Then begin
   TLabel(t).Caption:=DBGrid1.Columns[i-1].Title.caption;
   end;
 end;
end;


 
ВиТ   (2004-07-18 12:01) [3]

Спасибо большое!
А вообще, можно ли как-нибудь изначально создавать массив объектов и с ними уже в цикле работать? так ведь удобней..:)


 
Palladin ©   (2004-07-18 12:10) [4]

Ктож мешает... Конструкция Array of описана в любом учебнике...


 
ВиТ   (2004-07-19 00:20) [5]

Я пробовал вот так:
Labels:array[1..10] of TLabel;
Компилятор ругается:( И в хелпе не нашёл как это делать..


 
jack128 ©   (2004-07-19 00:26) [6]


> Компилятор ругается:(
о боже!!! http://www.delphimaster.ru/vopros/index.html


 
ВиТ   (2004-07-19 11:10) [7]

Прочитал!:)
Итак, когда я пишу
type
 TForm1 = class(TForm)
   Labels:array[1..10] of TLabel;
   ...

Выскакивает ошибка "Ожидается an identifer но найдено ARRAY"
Как всё-таки грамотно это прописать?


 
Думкин ©   (2004-07-19 11:16) [8]

> [7] ВиТ   (19.07.04 11:10)

Убери из published


 
jack128 ©   (2004-07-19 11:24) [9]


> Прочитал!:)
И как? Мне Шекли очень нравиться :-)


> Итак, когда я пишу
> type
>  TForm1 = class(TForm)
>    Labels:array[1..10] of TLabel;
>    ...
> Выскакивает ошибка "Ожидается an identifer но найдено ARRAY"
область между TForm1 = class(TForm) и private Дельфи использует для своих собственных нужд, никогда не виши туда свои объявления. Перенеси свою деклорацию с секцию private или public(но не published)


 
ВиТ   (2004-07-19 12:24) [10]

Спасибо. Перенёс в приват - запустилось.
Но я не могу их увидеть:(
Вот кусочек кода, который по моим предположениям должен
показывать эти самые лабелы:

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=1 to 10 do
 begin
   Labels[i]:=TLabel.Create(Form1);
   Labels[i].Left:=50;
   Labels[i].Top:=300+20*i;
   Labels[i].Caption:="Lab"+IntToStr(i);
   Labels[i].Visible:=true;
 end;
end;


F9... на форме пусто:(

ОФФТОП: ту jack128
Доля истины есть конечно;) Но если этот Ответчик такой вумный, мог бы и сам догадаться, о чём его спрашивают..


 
Думкин ©   (2004-07-19 12:28) [11]

> [10] ВиТ   (19.07.04 12:24)

Почитал бы чего... Есть хорошие статьи. А так по каждому чиху сюда ходить будешь. Parent.


 
ВиТ   (2004-07-19 13:03) [12]


> Думкин ©   (19.07.04 12:28) [11]

Спасибо! Теперь всё работает. Просто немножко запутался с парент и оунер.. Будем учиться;)
ЗЫ: а на делфимастер у меня статьи не открываются:
Internal Server Error :(


 
Mim1 ©   (2004-07-19 13:13) [13]


> F9... на форме пусто:(

Parent := Form1  Забыл



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

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

Наверх




Память: 0.47 MB
Время: 0.04 c
3-1089186142
stas
2004-07-07 11:42
2004.08.01
DBControl и Открытие DataSet a


4-1081058150
test1
2004-04-04 09:55
2004.08.01
Как программно обновить список установленного оборудования ?


1-1090083860
diablo_m
2004-07-17 21:04
2004.08.01
Динамическое создание формы


3-1089192594
Fast
2004-07-07 13:29
2004.08.01
Explorer like ComboBox


8-1084254456
race1
2004-05-11 09:47
2004.08.01
wma to wav





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