Форум: "Основная";
Текущий архив: 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