Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужно в RUN-Time создавать экземпляры некоторых объектов (для при [D5, Win2k]


NS ©   (2002-04-17 11:57:00) 

{ Нужно в RUN-Time создавать экземпляры некоторых объектов (для примера
TLabel) и хранить их (указатели на них) в TList.
}
PMyLabel = ^TMyLabel; // указатель на мой тип
TMyLabel = class(TLabel) // мой тип
public
S: string;
end;
var
MyLabel: TMyLabel;
ListLabel: TList;
Form1: TForm1;

implementation
{$R *.DFM}
// --------- Создание формы -----------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
ListLabel:= TList.Create; //созд. список указателей
ListLabel.Clear; // очищаем его

MyLabel:= TMyLabel.Create(Owner); //создаем экземп. объекта
ListLabel.Add(MyLabel); //добавляем указатель нанего в список

// А ЭТО НЕ РАБОТАЕТ хотя компилятор пропускает
PMyLabel(ListLabel.Items[0])^.Caption:= "qqqqqqq";
end;
// А может как-то всё по другому нужно делать.


yaJohn   (2002-04-17 12:37:00) [1]

MyLabel: TMyLabel это уже указатель. Нет нужды использовать ^


SergeiV   (2002-04-17 12:23:00) [2]

В Ваш код закралась ошибка
PMyLabel(ListLabel.Items[0])^.Caption:= "qqqqqqq";
замените на
TMyLabel(ListLabel.Items[0]).Caption:= "qqqqqqq";
и все получиться.


Наверх

Титульная страница Поиск, карта сайта Написать письмо