Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Динамическое создание нескольких TSpeedButton. Срочно!   Найти похожие ветки 

 
X9 ©   (2004-05-21 09:18) [0]

Мастера, пожалуйста, помогите! Времени на выполнение очень и очень мало. Например, есть форма, поле ввода и кнопка. При каждом нажатии на кнопку создаётся компонент TSpeedButton, содержимое поля ввода заносится в StringList под индексом созданной кнопки(Индекс заносится в имя созданного компонента(B000, B001 ...). Затем, при нажатии на созданый SpeedButton через ShellExecute запускается программа, указанная в StringList для индеса нажатой кнопки. Как запустить программу я знаю, помогите с динамическим созданием SpeedButton и определением обработчиков нажатия для них, plz!!!


 
TUser ©   (2004-05-21 09:26) [1]

Создать = Create
назначить объект  = :=

PS. Не суетись. Скачай ТП с сайта Подгорецкого - там все есть.


 
Виталя   (2004-05-21 09:31) [2]

На этом сайте была статья "Создание компонентов в rin-time"
это выдержка - как создать много Edit
var a:array[1..20] of TEdit
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;
Думаю SpeedButton - анологично создаются


 
Anatoly Podgoretsky ©   (2004-05-21 09:35) [3]

Все они создаются одинаково, вызовом конструктора, типичное имя Create


 
X9 ©   (2004-05-21 09:37) [4]

2Виталя
А как насчёт безлимитного создания кнопок? Я так понимая, нужен динамический массив. Можно ли примерчик с динамическим массивом?


 
X9 ©   (2004-05-21 09:39) [5]

2Anatoly Podgoretsky
Это я прекрасно знаю, пожалуйста, не считайте меня за полного ламера.


 
Rouse_ ©   (2004-05-21 09:52) [6]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Buttons, ShellAPI;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Edit1: TEdit;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   { Private declarations }
 public
   StringList: TStringList;
   Count: Cardinal;
   procedure SpeedButtonClick(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 BtnName: String;
 sbtnNew: TSpeedButton;
begin
 Inc(Count);
 BtnName := "SpeedButton" + IntToStr(Count);
 sbtnNew := TSpeedButton.Create(Self);
 sbtnNew.Name := BtnName;
 StringList.Values[BtnName] := Edit1.Text;
 sbtnNew.Parent := Self;
 sbtnNew.Caption := BtnName;
 sbtnNew.OnClick := SpeedButtonClick;
 sbtnNew.Width := 100;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 StringList := TStringList.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 StringList.Free;
end;

procedure TForm1.SpeedButtonClick(Sender: TObject);
begin
 ShellExecute(Handle, "open", PChar(StringList.Values[TSpeedButton(Sender).Name]), nil, nil, SW_SHOW);
end;

end.


Желаю успехов


 
NAlexey ©   (2004-05-21 09:53) [7]

>X9 ©   (21.05.04 09:37) [4]
Массив тебе нужен если будешь обращаться к элементам массива. А если нет, то зачем тебе массив?

procedure TForm1.Button1Click(Sender: TObject);
var
 Btn: TSpeedButton;
 I: Integer;
begin
 for I := 0 to 100 do
 begin
   Btn := TSpeedButton.Create(Self);
   Btn.Left := Btn.Width*I;
   Btn.Top :=  Btn.Height*I;
   Btn.Parent := Self;
 end;
end;


 
ega23 ©   (2004-05-21 10:02) [8]

А как насчёт безлимитного создания кнопок? Я так понимая, нужен динамический массив. Можно ли примерчик с динамическим массивом?

А чем тебя TForm.Components[i] или TForm.Components[i] не устраивает?


 
X9 ©   (2004-05-21 11:11) [9]

Всем огромное спасибо!!!



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
1-1085248628
Vetalich
2004-05-22 21:57
2004.06.06
Убирание кнопки на главном окне.


6-1081938722
Andreas
2004-04-14 14:32
2004.06.06
Убрать меню в браузере


1-1085675140
C111
2004-05-27 20:25
2004.06.06
Вопрос


4-1082652337
37
2004-04-22 20:45
2004.06.06
ctrl+A


14-1085085506
тихий вовочка
2004-05-21 00:38
2004.06.06
глупые вопросы по проектированию