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

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

создание динамических объектов для работы с БД [D7, MSSQL]


проходивший мимо.... ©   (2006-02-27 23:19:00) 

Вот такая тема: пользватель создаёт таблицу на SQL сервере с помощью проги...указывается количество полей, после чего надо создать динамически компоненты label, combobox, edit, где количество каждого создаваемого  компонента равно количеству заданных полей. вот часть кода, который я написал:
type tl = array [1..100] of TLabel;
type te = array [1..100] of TEdit;
type tc = array [1..100] of TComboBox;
 pl = ^tl;
 pe = ^te;
 pc = ^tc;
var  l : pl;
    e : pe;
    c : pc;
память выделяю с помощью getmem...когда обращаюсь к элементам массива, то возникает ошибка EAccessViolation...Подскажите, как грамотно сделать или где косяк


tesseract   (2006-02-28 17:38:00) [1]


> для твоих целей гораздо удобнее TObjectList


или Tlist. в Delph 7 они несильно различаются.
Например

var
tl:TList;
// При начале работы программы

tl:=Tlist.create;
procedure NewLabel;
templabel:=Tlable.create(Panel1);
tl.add(templabel);
end;
   
// Освобождение ресурсов

for i:=0 to tl.count-1 do
 Tlabel(tl[i]).free;

tl.clear;
tl.free;


Desdechado   (2006-02-28 17:26:00) [2]

для твоих целей гораздо удобнее TObjectList


проходивший мимо....   (2006-02-28 15:19:00) [3]

косяк убрал....), тольок вот не задача: как программно создать метку на форме...обращаюсь к элементу массива l^[i]...дальше многое перепробовал (не получается)...help...и где можно найти более полную информацию про работу с динам. массивами...заранее, спасибо


Плохиш   (2006-02-28 00:41:00) [4]


> где косяк

"Косяк" в 17й строке.

> как грамотно сделать


type
 tl = array of TLabel;
 te = array of TEdit;
 tc = array of TComboBox;

и читать про работу с динамическими массивами.


Наверх

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