Создание компонента во время работы
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Всем привет, ни разу не делал такую вещь, хотя думаю это не сложно, подскажите, у меня есть на форме компонент Комбобокс1 и кнопка, хочу чтоб по кнопке рядом с первым появился еще один бокс, и со списком данных из первого.
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
ну это и правда легко
Код: Выделить всё
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure ComboBoxChange(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
fl:boolean;
begin
With TComboBox.Create(Self) do
begin
OnChange:=ComboBoxChange;
fl:=True;
Parent:=Self;
for i:=0 to Self.ComponentCount-2 do
If Self.Components[i] is TComboBox then
begin
If fl then
begin
fl:=False;
Items.Assign(TComboBox(Self.Components[i]).Items);
end;
Top:=TComboBox(Self.Components[i]).Top;
If Left<TComboBox(Self.Components[i]).Left+TComboBox(Self.Components[i]).Width+10 then Left:=TComboBox(Self.Components[i]).Left+TComboBox(Self.Components[i]).Width+10;
end;
end;
end;
procedure TForm1.ComboBoxChange(Sender: TObject);
begin
Caption:=Caption+TComboBox(Sender).Text+', ';
end;
end.
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Большое СПАСИБО! Только еще один вопрос, теперь как обращатся к новым компонентам??? Мне теперь нада в Едит1 запихнуть данные выбранные в боксах через запятую. 

Вариантов много самый удобный и простой создать списочек и в нем хранить имена созданных элементов и уже напрямую по имени обращяться...
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
[quote="Dr_Grizzly"]Большое СПАСИБО! Только еще один вопрос, теперь как обращатся к новым компонентам??? Мне теперь нада в Едит1 запихнуть данные выбранные в боксах через запятую. ]
смотри последние 5 строчек кода =)
смотри последние 5 строчек кода =)
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
Проще уж создать TList и хранить компоненты а не имена =)Duncon писал(а):Вариантов много самый удобный и простой создать списочек и в нем хранить имена созданных элементов и уже напрямую по имени обращяться...
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
Вариантов много...