Страница 1 из 1

Создание компонента во время работы

Добавлено: 26 июн 2006, 14:07
Dr_Grizzly
Всем привет, ни разу не делал такую вещь, хотя думаю это не сложно, подскажите, у меня есть на форме компонент Комбобокс1 и кнопка, хочу чтоб по кнопке рядом с первым появился еще один бокс, и со списком данных из первого.

Добавлено: 26 июн 2006, 14:30
Blood_Magic
ну это и правда легко

Код: Выделить всё

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.

Добавлено: 27 июн 2006, 10:53
Dr_Grizzly
Большое СПАСИБО! Только еще один вопрос, теперь как обращатся к новым компонентам??? Мне теперь нада в Едит1 запихнуть данные выбранные в боксах через запятую. ;)

Добавлено: 27 июн 2006, 12:14
Duncon
Вариантов много самый удобный и простой создать списочек и в нем хранить имена созданных элементов и уже напрямую по имени обращяться...

Добавлено: 27 июн 2006, 14:50
Blood_Magic
[quote="Dr_Grizzly"]Большое СПАСИБО! Только еще один вопрос, теперь как обращатся к новым компонентам??? Мне теперь нада в Едит1 запихнуть данные выбранные в боксах через запятую. ]

смотри последние 5 строчек кода =)

Добавлено: 27 июн 2006, 14:57
Blood_Magic
Duncon писал(а):Вариантов много самый удобный и простой создать списочек и в нем хранить имена созданных элементов и уже напрямую по имени обращяться...
Проще уж создать TList и хранить компоненты а не имена =)

Добавлено: 27 июн 2006, 15:42
Duncon
Вариантов много...