Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.06;
Скачать: CL | DM;

Вниз

как можно быстрее сделать?   Найти похожие ветки 

 
Николай Быков ©   (2003-02-24 12:02) [0]

hint: Это не такой OI как в Delphi


для каждого св-ва у компонента создаетcя Label (название св-ва) и ComboBox (значения)

var
oiLabels: array of TLabel;
oiComboBoxes: array of TComboBox;
iTop: Integer;


...........
//Label"ы и ComboBox"ы у меня это динамические массивы
SetLength(oiLabels, Length(oiLabels) + 1);
SetLength(oiComboBoxes, Length(oiComboBoxes) + 1);
//Label"ы у меня лежат на панельки pnPropNames а ComboBox"ы на панели pnPropValues
oiLabels[High(oiLabels)] := TLabel.Create(frmMain.pnPropNames);
oiComboBoxes[High(oiComboBoxes)] := TComboBox.Create(frmMain.pnPropValues);
oiComboBoxes[High(oiComboBoxes)].Parent := frmMain.pnPropValues;
oiLabels[High(oiLabels)].Parent := frmMain.pnPropNames;
//прячу их, т.к. тода плюс ко всему еще и моргать все начинает %-(
oiComboBoxes[High(oiComboBoxes)].Hide;
oiLabels[High(oiLabels)].Hide;
//здесь дан пример для св-ва Caption
oiLabels[High(oiLabels)].Caption := "Caption";
oiLabels[High(oiLabels)].Top := iTop;
oiComboBoxes[High(oiComboBoxes)].Top := iTop;
//изменяю размер, чтобы нормально всё смотрелось :)
oiComboBoxes[High(oiComboBoxes)].Width := frmMain.pnPropValues.ClientWidth;
oiComboBoxes[High(oiComboBoxes)].Anchors := [akLeft, akTop, akRight];
oiLabels[High(oiLabels)].Left := 8;
oiLabels[High(oiLabels)].Width := frmMain.pnPropNames.ClientWidth;
oiComboBoxes[High(oiComboBoxes)].Style := csSimple;
oiComboBoxes[High(oiComboBoxes)].Text := "Label1";
//показываем
oiComboBoxes[High(oiComboBoxes)].Show;
oiLabels[High(oiLabels)].Show;

вот и все.
я здесь убрал лишние константы и проч.(словами обычными написал


 
Николай Быков ©   (2003-02-24 12:16) [1]

может быть лучше использовать другие компоненты или еще как-нибудь выйти из этого положения можно?


 
Романов Р.В. ©   (2003-02-24 12:51) [2]

High(oiComboBoxes), High(oiLabels) вместо этого всавь переменную Integer
Parent назначай в последнюю очередь.
Для повышения читаимости используй конструкцию with oiComboBoxes[High(oiComboBoxes)] do

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



Страницы: 1 вся ветка

Текущий архив: 2003.03.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
3-16975
V_Pavel
2003-02-14 06:30
2003.03.06
MSSQL + Delphi


1-17029
Маришка
2003-02-25 09:40
2003.03.06
вопросик


1-17117
Alessio2003
2003-02-22 00:13
2003.03.06
Доступ к RichEdit


3-16869
чайниконутый
2003-02-15 17:17
2003.03.06
DBF таблица


1-17073
Vitus
2003-02-25 17:22
2003.03.06
Как всем элементам TActionList свойство Enabled := False?