Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2011, 19:17   #1
JasperCRT
Пользователь
 
Аватар для JasperCRT
 
Регистрация: 23.12.2010
Сообщений: 40
По умолчанию Добавление переменной в место номера lable!

Здравствуйте) Как добавить переменную вместо порядкового номера Label?
Код:
////получаю переменную например 
I:=3;
////теперь нужно чтобы значение этой переменной вставлялось вот сюда:
label i.visible:=true;
//// но не так не так:
label[i].visible:=true;
У меня ничего не получается!
Пожалуйста подскажите как это можно реализовать) Мне нужно чтобы при запуске программы в зависимости от полученного числа появлялся определённый лейбл)
Интернет как жизнь - смысла нет, а уходить не хочется!
JasperCRT вне форума Ответить с цитированием
Старый 19.01.2011, 19:35   #2
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=3;
case i of
1: label1.Visible:=true;
2: label2.Visible:=true;
3: label3.Visible:=true;
4: label4.Visible:=true;
end;
end;

Последний раз редактировалось Vervolf; 19.01.2011 в 20:02.
Vervolf вне форума Ответить с цитированием
Старый 19.01.2011, 20:07   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, можно и другой подход использовать.
искать компонент с нужным именем через FindComponent

например, так:
Код:
var
  MyComponent: TComponent;
begin
...
  ////получаю переменную например 
  I:=3;
...

   MyComponent := Form1.FindComponent('Label'+IntToStr(I));
   if MyComponent <> nil then
       TLabel(MyComponent).Visible := true;
p.s. Внимание. Метод FindComponent вызывайте у того объекта, на котором лежат (ну или, точнее, которому принадлежат ваши лейблы - в моём примере это Form1. подставьте Ваш объект-владелец лейблов.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.01.2011, 21:10   #4
JasperCRT
Пользователь
 
Аватар для JasperCRT
 
Регистрация: 23.12.2010
Сообщений: 40
По умолчанию

Serge_Bliznykov Спасибо вам огромное)) Прям спасли))
Vervolf Через case слишком много кода писать) У меня будет очень много label'ов) Приходится делать через них потому что другого известного мне метода обработки текста таким образом как мне нужно нету, а заморачиваться не охота работа разовая)
Интернет как жизнь - смысла нет, а уходить не хочется!
JasperCRT вне форума Ответить с цитированием
Старый 19.01.2011, 21:39   #5
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
По умолчанию

Цитата:
Сообщение от JasperCRT Посмотреть сообщение
Serge_Bliznykov Спасибо вам огромное)) Прям спасли))
Vervolf Через case слишком много кода писать) У меня будет очень много label'ов) Приходится делать через них потому что другого известного мне метода обработки текста таким образом как мне нужно нету, а заморачиваться не охота работа разовая)
а ты одному компоненту Label просто присваивай значения в зависимости от значения переменной I. а чтобы создать много label'ов нужно динамический массив создать вот так.
Код:
var
  Form1: TForm1;
  Lab: array[1..100]of Tlabel;
  C: integer;
implementation
Uses Math;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
for c:=1 to 100 do
 begin
 lab[c]:=Tlabel.Create(Form1); //Создаем
 Lab[c].Caption:=IntToStr(c);
 Lab[c].Font.Size:=20;
 Lab[c].Transparent:=True;
 Lab[c].Left:=RandomRange(0,ClientWidth-lab[c].Width);
 Lab[c].Top:=RandomRange(0,ClientHeight-Lab[c].Height);
 Lab[c].Parent:=Form1; //помещаем на форму
 end;
end;

end.
в данном куске кода создается 100 Label'ов. и размещается рандомно по форме.
Vervolf вне форума Ответить с цитированием
Старый 20.01.2011, 18:21   #6
JasperCRT
Пользователь
 
Аватар для JasperCRT
 
Регистрация: 23.12.2010
Сообщений: 40
По умолчанию

Да так сделать можно но мне нужно чтобы в Label были стихи)) А их Нужно по строкам расспределять чтобы как стих выглядело) Так что легче сразу несколько labtl'ов и заранее текст выравнять аккуратно)) А не придумывать всякой фигни) И главное чтобы код короткий был)
Интернет как жизнь - смысла нет, а уходить не хочется!
JasperCRT вне форума Ответить с цитированием
Старый 20.01.2011, 18:22   #7
JasperCRT
Пользователь
 
Аватар для JasperCRT
 
Регистрация: 23.12.2010
Сообщений: 40
По умолчанию

Кстати Vervolf спасибо за последний пример надо запомнитть мож пригодится где)
Интернет как жизнь - смысла нет, а уходить не хочется!
JasperCRT вне форума Ответить с цитированием
Старый 20.01.2011, 21:18   #8
Vervolf
Пользователь
 
Аватар для Vervolf
 
Регистрация: 14.01.2011
Сообщений: 97
Восклицание

Цитата:
Сообщение от JasperCRT Посмотреть сообщение
Да так сделать можно но мне нужно чтобы в Label были стихи)) А их Нужно по строкам расспределять чтобы как стих выглядело) Так что легче сразу несколько labtl'ов и заранее текст выравнять аккуратно)) А не придумывать всякой фигни) И главное чтобы код короткий был)
вот так надо:

Код:
Label1.Caption:='Это первая строчка'+#13+'Это вторая строчка!'+#13+'Это третья строчка!';
или лучше в компонент TMemo забей.
Memo1.Lines.LoadFromFile('имя файла.txt');
Vervolf вне форума Ответить с цитированием
Старый 20.01.2011, 22:35   #9
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

JasperCRT, а можно мне ваше тз?
чисто на интерес попробовать, чего вы там делаете?
xrob вне форума Ответить с цитированием
Старый 21.01.2011, 18:28   #10
JasperCRT
Пользователь
 
Аватар для JasperCRT
 
Регистрация: 23.12.2010
Сообщений: 40
По умолчанию

Vervolf Спасибо) я уже сделал через label) У него можно фон прозрачным делать, а мне это нужно) Всё будет на картинке)
xrob I am sorry!!!) Не могу) Это секретная информация!XD
Интернет как жизнь - смысла нет, а уходить не хочется!
JasperCRT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FastReport: Назначить переменной значение номера страницы LENA28 БД в Delphi 2 28.10.2010 07:56
Работа с Lable в Visiual Studio FullVenic Помощь студентам 5 12.08.2010 20:24
Изменение свойства Caption объекта Lable чтоб он был прозрачным Lorden Помощь студентам 2 25.12.2009 08:50
Как в lable задать степень (нижний и верхний регистр) Polotenchik Общие вопросы Delphi 17 17.07.2009 23:30
Как сохранить Lable Caption B00lean Microsoft Office Word 1 05.04.2009 00:10