Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
ВнизКак клонировать компоненты на форме Найти похожие ветки
← →
Nucl (2003-07-29 17:24) [0]Как в рантайме правильно "РАЗМНОЖАТЬ" компоненты.
← →
Kaylang (2003-07-29 17:27) [1]Самое главное правильно спаривать родительские классы... ;)
Извини, просто не понял вопроса.
← →
Nucl (2003-07-29 17:29) [2]на форме есть ранель, на ней еще куча всего, как в рантайме сделать такуюже и не одну скажем немного в стороне
← →
NickBat (2003-07-29 17:31) [3]Frame
← →
Nucl (2003-07-29 23:34) [4]при чем тут Frame ?
← →
td (2003-07-29 23:59) [5]если к примеру есть Panel1, то объявляешь переменную Panel2: TPanel;
Panel2:=TPanel1.Create(nil);
И указываешь ей нужные параметры дальше.. координаты, размеры etc.
← →
Wudu (2003-07-30 03:57) [6]procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..20] of TEdit; // массив элементов Edit
b:array[1..10] of TLabel; //массив меток
i,j:integer;
begin
for i:=1 to 20 do begin
a[i]:=TEdit.create(self);
a[i].parent:=form1;
a[i].left:=10;
a[i].text:="элемент # "+inttostr(i);
a[i].top:=i*20;
end;
for j:=1 to 10 do begin b[j]:=TLabel.create(self);
b[j].parent:=form1;
b[j].left:=200;
b[j].Caption:="элемент # "+inttostr(j);
b[j].top:=j*30;
end;
end;
Обезательно вводить свойство Parent при создании
← →
___Nikolay (2003-07-30 05:31) [7]
{
Здесь пpоцедypа CreateClone, котоpая кpеатит компонентy ОЧЕHЬ ПОХОЖУЮ на
входнyю. С такими же значениями свойств. Пpисваивается все, кpоме методов.
}
function CreateClone(Src: TComponent): TComponent;
var
F: TStream;
begin
F := nil;
try
F := TMemoryStream.Create;
F.WriteComponent(Src);
RegisterClass(TComponentClass(Src.ClassType));
F.Position := 0;
Result := F.ReadComponent(nil);
finally
F.Free;
end;
end;
← →
___Nikolay (2003-07-30 05:31) [8]Ещё вот:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
ScrollBox1: TScrollBox;
Label1: TLabel;
CheckBox1: TCheckBox;
Label2: TLabel;
Button2: TButton;
Edit1: TEdit;
BitBtn1: TBitBtn;
SpeedButton1: TSpeedButton;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure Button1Click(Sender: TObject);
procedure ClickComp(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
AForm: TForm;
begin
// clone the "self" object
Application.CreateForm (
TFormClass(Self.ClassType), AForm);
// move the form and show it
AForm.Left := Left + 50;
AForm.Top := Top + 50;
AForm.Show;
end;
procedure TForm1.ClickComp(Sender: TObject);
var
ControlText: string;
begin
with TControlClass (Sender.ClassType).Create (self) do
begin
Parent := (Sender as TControl).Parent;
Left := (Sender as TControl).Left + 10;
Top := (Sender as TControl).Top + 10;
SetLength (ControlText, 50);
(Sender as TControl).GetTextBuf(
PChar(ControlText), 50);
ControlText := PChar(ControlText) + " *";
SetTextBuf (PChar (ControlText));
end;
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c