Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Вниз
SpeedButton Найти похожие ветки
← →
ArtemESC © (2006-08-06 23:01) [0]Работаю с динамическим массивом из SpeedButton"ov:
1) Почему ни удается откомпилировать следующее
SaveArray[i].OnClick := OnClick_;
OnClick_ описан так: procedure OnClick_(Sender: TObject);
2) Как определить в обработчике какая из кнопок массива нажата:
пробовал так:
SaveArray[i].Tag := i;
затем в обработчике:
Index := TSpeedButton(Sender).Tag
но это не работает...
← →
easy © (2006-08-06 23:47) [1]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure OnClick_(Sender: TObject);
procedure CreateButtons;
procedure DestroyButtons;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CreateButtons;
var
i, j, k: integer;
const
ButtonWidth = 25;
ButtonHeight = 25;
begin
i := 0;
j := 0;
k := 1;
while j * ButtonHeight < Height - ButtonHeight * 2 do begin
while i * ButtonWidth < Width - ButtonWidth * 2 do begin
with TSpeedButton.Create(self) do begin
Top := j * ButtonHeight;
left := i * ButtonWidth;
width := ButtonWidth;
height := ButtonHeight;
Name := "SpeedButton" + inttostr(k);
Caption := inttostr(k);
Parent := Self;
OnClick := OnClick_;
end;
inc(i);
inc(k);
end;
inc(j);
i := 0;
end;
end;
procedure TForm1.DestroyButtons;
var
i: integer;
begin
for i := ControlCount - 1 downto 0 do begin
if Controls[i] is TSpeedButton then
TSpeedButton(Controls[i]).Free;
end;
end;
procedure TForm1.OnClick_(Sender: TObject);
begin
showmessage("Вы нажали " + TSpeedButton(Sender).Name);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CreateButtons;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DestroyButtons;
end;
end.
← →
ArtemESC © (2006-08-07 00:05) [2]easy © (06.08.06 23:47) [1]
Огромнейшее спасибо...
← →
Desdechado © (2006-08-07 11:43) [3]> procedure OnClick_(Sender: TObject);
Это должно быть методом класса, а не простой процедурой.
Об этом в справке написано.
> но это не работает
Что именно не так?
← →
ArtemESC © (2006-08-07 12:30) [4]>>Что именно не так?
Это должно быть методом класса, а не простой процедурой.
C учетом этого все так...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c