![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цикл по объектам [D7, WinXP]
ВиТ © (2004-07-18 11:35:00)Здравствуйте. У меня есть БД с таблицей, в которой 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 строчек:(
Можно ли как-то автоматизировать этот процесс, т.е. создать цикл по лейблам? Тогда бы всё в одну строчку уместилось...:)
Mim1 (2004-07-19 13:13:00) [1]
> F9... на форме пусто:(
Parent := Form1Забыл
ВиТ (2004-07-19 13:03:00) [2]
> Думкин © (19.07.04 12:28) [11]
Спасибо! Теперь всё работает. Просто немножко запутался с парент и оунер.. Будем учиться;)
ЗЫ: а на делфимастер у меня статьи не открываются:
Internal Server Error :(
Думкин (2004-07-19 12:28:00) [3]> [10] ВиТ (19.07.04 12:24)
Почитал бы чего... Есть хорошие статьи. А так по каждому чиху сюда ходить будешь. Parent.
ВиТ (2004-07-19 12:24:00) [4]Спасибо. Перенёс в приват - запустилось.
Но я не могу их увидеть:(
Вот кусочек кода, который по моим предположениям должен
показывать эти самые лабелы:
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
Доля истины есть конечно;) Но если этот Ответчик такой вумный, мог бы и сам догадаться, о чём его спрашивают..
jack128 (2004-07-19 11:24:00) [5]
> Прочитал!:)
И как? Мне Шекли очень нравиться :-)
> Итак, когда я пишу
> type
> TForm1 = class(TForm)
> Labels:array[1..10] of TLabel;
> ...
> Выскакивает ошибка "Ожидается an identifer но найдено ARRAY"
область между TForm1 = class(TForm) и private Дельфи использует для своих собственных нужд, никогда не виши туда свои объявления. Перенеси свою деклорацию с секцию private или public(но не published)
Думкин (2004-07-19 11:16:00) [6]> [7] ВиТ (19.07.04 11:10)
Убери из published
ВиТ (2004-07-19 11:10:00) [7]Прочитал!:)
Итак, когда я пишу
type
TForm1 = class(TForm)
Labels:array[1..10] of TLabel;
...
Выскакивает ошибка "Ожидается an identifer но найдено ARRAY"
Как всё-таки грамотно это прописать?
jack128 (2004-07-19 00:26:00) [8]
> Компилятор ругается:(
о боже!!! http://www.delphimaster.ru/vopros/index.html
ВиТ (2004-07-19 00:20:00) [9]Я пробовал вот так:
Labels:array[1..10] of TLabel;
Компилятор ругается:( И в хелпе не нашёл как это делать..
Palladin (2004-07-18 12:10:00) [10]Ктож мешает... Конструкция Array of описана в любом учебнике...
ВиТ (2004-07-18 12:01:00) [11]Спасибо большое!
А вообще, можно ли как-нибудь изначально создавать массив объектов и с ними уже в цикле работать? так ведь удобней..:)
Dolt (2004-07-18 11:44:00) [12]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;
Anatoly Podgoretsky (2004-07-18 11:43:00) [13]Можно