Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

Динамическое создание нескольких 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
14-1084476090
Mihey
2004-05-13 23:21
2004.06.06
Выделение кода


4-1083758886
Ragazor
2004-05-05 16:08
2004.06.06
Инфа по COM и LPT


1-1085375644
ПсихЪ_клон
2004-05-24 09:14
2004.06.06
Шаблоны классов


1-1085068037
volkodav
2004-05-20 19:47
2004.06.06
замена цвета


3-1084474305
Dmitry Vyacheslavovich
2004-05-13 22:51
2004.06.06
проблема с редактированием связанной таблицы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский