Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическое создание Label 
:(
    Опции темы
vicq
Дата 14.11.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 21.12.2006
Где: Белгород

Репутация: нет
Всего: нет



задается количество Label'ов , нужно их создать на форме. не работает. подскажите что добавить?

Код
procedure TForm1.Button1Click(Sender: TObject);
var i,count: byte;
    mass: array [1..50] of TLabel;
begin
   count:=spinedit1.Value;
   For i:=1 to count do
     Begin
        mass[i]:=TLabel.Create(Form1);
        mass[i].Left:=50;
        mass[i].Top:= 100 + i*(mass[i].Height+5);
        mass[i].Caption:= 'label'+inttostr(i);
     End;
   Form1.Refresh;
end;

PM MAIL ICQ   Вверх
dumb
Дата 14.11.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 3
Всего: 158



Код
mass[i].Parent := Form1;

PM MAIL   Вверх
vicq
  Дата 14.11.2007, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 21.12.2006
Где: Белгород

Репутация: нет
Всего: нет



Большое спасибо! 
а где можно почитать про основы динамического создания компонентов?
PM MAIL ICQ   Вверх
ivan219
  Дата 15.11.2007, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



vicq
Код

procedure TForm1.Button1Click(Sender: TObject);
var i,count: byte;
    mass: array [1..50] of TLabel;
begin
   count:=spinedit1.Value;
   For i:=1 to count do
     Begin
        mass[i]:=TLabel.Create(Form1);
        mass[i].Left:=50;
        mass[i].Top:= 100 + i*(mass[i].Height+5);
        mass[i].Caption:= 'label'+inttostr(i);
     End;
   Form1.Refresh;
end;  

А как ты ими будешь управлять если  mass у тебя локальная smile 
Код

var
    mass: array [1..50] of TLabel;
.
.
procedure TForm1.Button1Click(Sender: TObject);
var i,count: byte;
begin
   count:=spinedit1.Value;
   For i:=1 to count do
     Begin
        mass[i]:=TLabel.Create(Form1);
        mass[i].Left:=50;
        mass[i].Top:= 100 + i*(mass[i].Height+5);
        mass[i].Caption:= 'label'+inttostr(i);
     End;
   Form1.Refresh;
end;

PM MAIL ICQ   Вверх
MetalFan
Дата 15.11.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



и ошибку словишь, если count>high(mass)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
vicq
Дата 15.11.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 21.12.2006
Где: Белгород

Репутация: нет
Всего: нет



это вроде примера... для понятия динамики.
то что нужно было - это вывести заданое кол-во лейблов, не больше 15...
Спасибо всем! только хотелось бы по поводу всего этого литературку почитать, если кто знает, напишите пожалуйста.
PM MAIL ICQ   Вверх
lukas
Дата 16.11.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



ну во-первых посоветовал бы не использовать статистических масивов для динамически созданных объектов, на мой взгляд самый лучший вариант (для неизвестного количества объектов) это TLabel + TList


Код

Var
 LabelList:TList;
..
..
procedure TForm1.Button1Click(Sender: TObject);
var i,count: byte;
 OBJ:TLabel;
begin
IF LabelList=nil then LabelList:=TList.Create else LabelList.Clear;
   count:=spinedit1.Value;
   For i:=1 to count do
     Begin
        OBJ:=TLabel.Create(SELF);
        OBJ.Parent:=SELF;
        LabelList.Add(OBJ);
     End;
end;

// обращение происходит так...

TLabel(LabelList.Items[i])


Объекты это все равно указатели... 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Lianamir
Дата 17.11.2007, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Код

count:=spinedit1.Value;

Подскажите пжлста, spinedit1.Value -это что?

PM MAIL ICQ   Вверх
THandle
Дата 17.11.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



TO Lianamir.
Компонент TSpinEdit. Вкладка Samples. Value это та циферка которая в нём написана.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.