Главная страница
    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.034 c
1-1085128250
JamHole
2004-05-21 12:30
2004.06.06
FontDialog


14-1085033396
Serrrg
2004-05-20 10:09
2004.06.06
Программирование микропроцессоров


14-1084966082
ORMADA
2004-05-19 15:28
2004.06.06
Разделение прав доступа


3-1084529519
ata133
2004-05-14 14:11
2004.06.06
Выделение определенных строк в DBGrid цветом


3-1084863828
AndrewK
2004-05-18 11:03
2004.06.06
Данные хранимой процедуры обрезаются в DBGrid





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