Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Hardlike
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 30
1

Создание Н-го кол-ва лейблов

12.08.2012, 12:35. Просмотров 1050. Ответов 11
Метки нет (Все метки)

К примеру, имеем переменную b, в которой содержится число, и это число обозночает количество создаваемых лейблов. Как осуществить, и как сделать что б они создавались на одинаковом расстоянии.

и желательно подскажите как сделать что б они не ограничевали кол-во вводимых символов, т.е. увеличевались с текстом
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2012, 12:35
Ответы с готовыми решениями:

Динамическое создание Лейблов ("Ссылка на объект не указывает на экземпляр объекта")
Доброго времени суток! Я хочу что бы при вводе переменной "i" на на TabControl(menu),а именно во...

Сделать таблицу n строк: адрес, кол-во проживающих, кол-во комнат и кол-во метров в каждой комнате
В задании нужно сделать таблицу n строк. Адрес, кол-во проживающих, кол-во комнат и кол-во метров в...

Обновления Лейблов
Как сделать так что-бы в форме показывало число подсчетов в лейблах 'кількість = ', в коде отмечено...

заполнение лейблов в цикле
Есть html таблица в каждой ячейке лежит label они называются от label1 до label38(к примеру) как...

Сравнение 2х чисел с лейблов
Вот у меня есть код Random rnd = new Random(); label1.Text = rnd.Next(0,...

11
Puporev
Модератор
57286 / 43712 / 30200
Регистрация: 18.05.2008
Сообщений: 104,232
12.08.2012, 13:07 2
Например так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
var a:array of TLabel;
    b,i,h:integer;
begin
b:=StrToInt(Edit1.Text);
setlength(a,b);
h:=20;
for i:=0 to b-1 do
 begin
  a[i]:=TLabel.Create(Form1);
  with a[i] do
   begin
    Parent:=Form1;
    Left:=20;
    Height:=h;
    Top:=h+i*2*h;
    Caption:='Label'+IntToStr(i+1);
   end;
 end;
end;
Цитата Сообщение от Hardlike Посмотреть сообщение
т.е. увеличевались с текстом
Это делается автоматом, лишь бы текст по ширине формы вошел.
1
ZAYEC77
43 / 43 / 1
Регистрация: 13.08.2012
Сообщений: 452
13.08.2012, 12:00 3
Delphi
1
AutoSize := True;
1
Hardlike
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 30
13.08.2012, 20:02  [ТС] 4
извините за ламерство, но не могли б вы это в двух словах обьяснить? а то уже и массивы перечитал, и циклы, а понять не могу... в частности, setlength
0
13.08.2012, 20:02
Puporev
Модератор
57286 / 43712 / 30200
Регистрация: 18.05.2008
Сообщений: 104,232
13.08.2012, 20:04 5
Цитата Сообщение от Hardlike Посмотреть сообщение
а то уже и массивы перечитал, и циклы, а понять не могу... в частности, setlength
Тогда это клиника и вопрос не сюда...
0
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
13.08.2012, 22:30 6
Цитата Сообщение от Hardlike Посмотреть сообщение
извините за ламерство, но не могли б вы это в двух словах обьяснить? а то уже и массивы перечитал, и циклы, а понять не могу... в частности, setlength
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var a:array of TLabel;
    b,i,h:integer;
begin
b:=StrToInt(Edit1.Text); // b 
setlength(a,b); // длина переменной a = числу в эдите, он же переменная b
// видимо, a это массив длиной переменной b
h:=20; // высота
for i:=0 to b-1 do // сколько создаём лейблов
 begin
  a[i]:=TLabel.Create(Form1); // уже, собственно, создаём
  with a[i] do // используя a[i] - это элемент массива(а их будет столько, какое число в b)
   begin // начинаем создавать
    Parent:=Form1; // родитель форма 1
    Left:=20; // отступ слева 20
    Height:=h; // высота 20
    Top:=h+i*2*h; // отступ сверху равен h*i*2*h(считаем)
// например, если символов 2, то 1 лейбл будет 20+0*2*20, 2 лейбл 20+1*2*20
    Caption:='Label'+IntToStr(i+1); // текст лейба Label i+1(индекс+1), т.е. Label номер
   end; // конец with
 end; // конец цикла
end; // конец процедуры
Если что не так, кто поопытней меня, подправьте, я ещё новичок, объяснил, как понял.
2
БогДелфей
427 / 335 / 36
Регистрация: 31.05.2011
Сообщений: 1,156
13.08.2012, 22:37 7
Труд облагораживает человека
1
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
13.08.2012, 22:43 8
синтаксис процедуры setlength таков:
procedure SetLength(var S:<String or Dynamic Array>, NewLength:Integer)
Setlength(переменная типа String, новая длина)
Длина, как правило указывается, чтобы лишнее место в процессоре не занимать.
0
Hardlike
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 30
14.08.2012, 01:00  [ТС] 9
а как создать это на другой форме? я заменил Form1 на Form2 , безтолку
0
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
14.08.2012, 10:18 10
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
var a:array of TLabel;
    b,i,h:integer;
begin
b:=StrToInt(Edit1.Text);
setlength(a,b);
h:=20;
for i:=0 to b-1 do
 begin
  a[i]:=TLabel.Create(Form2);
  with a[i] do
   begin
    Parent:=Form2;
    Left:=20;
    Height:=h;
    Top:=h+i*2*h;
    Caption:='Label'+IntToStr(i+1);
   end;
 end;
end;
0
Kudlen
0 / 0 / 0
Регистрация: 04.05.2016
Сообщений: 7
04.05.2016, 21:45 11
подскажите, пожалуйста, как сделать так, чтобы лэйблы выстраивались не один за одним а друг за другом слева на право и как установить шрифт и цвет записи в лэйблах? Заранее спасибо за ответ.
0
Puporev
Модератор
57286 / 43712 / 30200
Регистрация: 18.05.2008
Сообщений: 104,232
05.05.2016, 08:05 12
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var a:array of TLabel;
    n,i,w:integer;
begin
n:=StrToInt(Edit1.Text);
setlength(a,n);
w:=50;
for i:=0 to n-1 do
 begin
  a[i]:=TLabel.Create(Self);
  with a[i] do
   begin
    Parent:=Form1;
    Top:=20;
    Left:=w+i*2*w;
    Height:=30;
    Font.Name:='Curier New';
    Font.Color:=clBlue;
    Font.Style:=[fsBold];
    Caption:='Label'+IntToStr(i+1);
   end;
 end;
0
05.05.2016, 08:05
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2016, 08:05

Очистка лейблов в панеле
Добрый день! Есть вопрос, как очистить несколько лейблов, а точнее Lb.Text = null; на форме....

Выравнивание чекбоксов и лейблов
Товарищи, вот такая проблема, не подскажете, как выровнять боксы с лейблами? Скрины с подключенными...

JavaFX (массив лейблов)
Добрый день. В ходе программы идёт такая ситуация : На форме имеется 10 лейблов с названиями ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru