Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-33298
VEG
2003-07-17 13:40
2003.08.11
Говорили, что W98 официально похоронят в конце июня...


14-33300
Soft
2003-07-22 18:54
2003.08.11
10 GHz на сундук мертвеца или записки на крыше системного блока


1-33135
Alex-21
2003-07-22 22:26
2003.08.11
SetFocus и скролл


1-33200
AndDem
2003-07-29 10:07
2003.08.11
Закрыть экземпляр Excel


4-33400
Akvilon
2003-06-10 22:44
2003.08.11
Handles стандартных окошек (вроде кнопок)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский