![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Button
Нуб © (2007-02-28 10:23:00)Напишите пожалуйста код как динамически создается и выводится на экран , к примеру кнопка , заранее спасибо
f2d (2007-03-02 18:57:00) [1]давайте несколько разовьём тему. в файле записаны компоненты которые необходимо закинуть на форму. например в хмл. по иерархии вычисляется owner а по полям свойства которые доступны для этого компонента, например для батона или эдита и тд - caption, для чекбокса - checked...
встала задача - для каждого батона нужно назначить свою процедуру на событие onClick, код которой можно так же задавать извне.
по моим соображениям, код будущей процедуры будет храниться в файле(название файла - имя компонента). для работы со скриптами у меня есть компонент PascalScript. как сделать привязку OnClick'a и PascalScript'a? или предложите другие варианты...
заранее спасибо
Нуб (2007-02-28 11:14:00) [2]:)
Elen (2007-02-28 11:09:00) [3]
> Нуб (28.02.07 11:06) [11]
Дарю на память ;)
Нуб (2007-02-28 11:06:00) [4]или
procedure TForm1.Button2Click(Sender: TObject);
var kol: integer;
begin
for kol:=1 to StrToInt(Trim(Edit1.Text)) do begin
Form1.RemoveControl(btn[kol]);
btn[kol].Destroy;
end;
end;
Нуб (2007-02-28 11:06:00) [5]классный код у тебя !!! супер
Elen (2007-02-28 11:04:00) [6]
> Нуб (28.02.07 10:59) [7]
Вот все в купе :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var kol: integer; btn: array of TButton;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
for kol:=1 to StrToInt(Trim(Edit1.Text)) do begin
SetLength(btn,StrToInt(Trim(Edit1.Text))+1);
btn[kol] := TButton.Create(Form1);
with btn[kol] do begin
Parent := Form1;
Caption := 'Button ' + IntToStr(kol);
Top:=kol*25;
Left:=20;
Width:=100;
Height:=25;
Visible := true;
end;
end;
end;
//=========================================//
procedure TForm1.Button2Click(Sender: TObject);
begin
for kol:=low(btn) to high(btn) do btn[kol].free
end;
end.
Elen (2007-02-28 11:00:00) [7]
> Нуб (28.02.07 10:57) [6]
Ну вот видиш. сам разобрался. Не так уж и сложно ;)
Нуб (2007-02-28 10:59:00) [8]а как их дестрой ?
Нуб (2007-02-28 10:57:00) [9]ха, красота :)
вообщем делаете новый апликатион бросаете на него 1 кнопку потом 1 Edit
и на клик конпки пишите код
//=========================================//
procedure TForm1.Button1Click(Sender: TObject);
var kol: integer;
btn: array [1..5] of TButton;
begin
for kol:=1 to StrToInt(Trim(Edit1.Text)) do begin
btn[kol] := TButton.Create(Form1);
with btn[kol] do begin
Parent := Form1;
Caption := 'Button ' + IntToStr(kol);
Top:=kol*25;
Left:=20;
Width:=100;
Height:=25;
Visible := true;
end;
end;
end;
//=========================================//
в Edit вводите количество кнопок котороые вы хотите чтобы они создались и получаете их на экране чудесно :)
Elen (2007-02-28 10:48:00) [10]Удалено модератором
Нуб (2007-02-28 10:40:00) [11]ха сенкс, так еще прикольней
Нуб (2007-02-28 10:40:00) [12]а зачем визибл тру ? :) можно же и так
Elen (2007-02-28 10:29:00) [13]
> Нуб
Пожалуйста :
var tb:TButton;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
tb:=TButton.Create(form1);
with tb do begin
Parent:=form1;
Caption:='dffsd';
Top:=10;
Left:=10;
Width:=100;
Height:=100;
Visible:=true;
end;
end;
Нуб (2007-02-28 10:27:00) [14]уже не надо , я сам нашел
var Button1: TButton;
begin
Button1 := TButton.Create(Form1);
Button1.Parent = Form1;
Button1.Caption = 'My dynamic Button';