Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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';


Наверх

Титульная страница Поиск, карта сайта Написать письмо