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

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

Real Time Панель


Страницы:   1 2

Steep ©   (2007-04-03 14:38:00) 

Все-таки думаю решить проблему с панелью иным методом
т.е. будет форма на ней должны автоматом создаватся клавиши
(например при выборе в меню добавить)
Не подскажете как кинуть на панель кнопку, в заданное месторасположение + натянуть на нее иконку (битмап)?
..

var Button1:TButton;
begin
Button1:=TButton.crete(Form1{сдесь наверно можно просто указать панель?});
With Button do
begin
 width:=10; // длина
 height:=10; //высота
 top:=0; //если это координата сверху - то где же снизу?
end;
end;

//не совсем понял где, же координаты...
А потом еще и как-то кинуть на нее событие... (а ведь ее еще надо найти...)
ЗЫ Заранее списибо!


{RASkov}   (2007-04-03 15:02:00) [21]

> но кнопка не создается...

Кнопка-то создается, только места своего не знает.


SergGG   (2007-04-03 15:02:00) [22]

См. [9]


Ega23   (2007-04-03 15:01:00) [23]

Вот тебе готовый код:


unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   Panel1: TPanel;
   procedure Button1Click(Sender: TObject);
 private
   procedure MyButtonClick(Sender: TObject);
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 With TSpeedButton.Create(Self) do
  begin
   Parent := Panel1;
   SetBounds(10, 10, 100, 25);
   Caption := 'Кнопка';
   OnClick :=MyButtonClick;
   Glyph.LoadFromFile('E:\NEW.BMP');

  end;
end;

procedure TForm1.MyButtonClick(Sender: TObject);
begin
 ShowMessage('Клик');
end;

end.


{RASkov}   (2007-04-03 15:00:00) [24]

> но кнопка не создается...

[7], [9], [10] - это так просто было? Со стенкой....


Steep   (2007-04-03 14:55:00) [25]

короче пока написал так:
procedure TForm1.Button1Click(Sender: TObject);
var Button2: TButton;
begin
 Button2 := TButton.create(Form1);
 With Button2 do
 begin
   width := 10; // длина
   height := 10; //высота
   left := 50;
   top := 50;
 end;
end;


но кнопка не создается...


{RASkov}   (2007-04-03 14:55:00) [26]

> [6] Sonia ©   (03.04.07 14:50)

Увы... это чуть-чуть не то.

> [8] Sonia ©   (03.04.07 14:53)

А это вобще не то.


Ega23   (2007-04-03 14:54:00) [27]

type
 TForm1 = class(TForm)
   .......
  private
   procedure MyButtonClick(Sender : TObject); // обработчик клика на кнопке
 end;

procedure TForm1.MyButtonClick(Sender : TObject)
begin
 ShowMessage('Клик');
end;

ну и теперь на какой-нибудь FormCreate или что там у тебя

with TSpeedButton.Create(Form1) do // Form1 тут нужен для автоудаления.
// т.е. когда будет "убита" Form1, вместе с ней удалиться и кнопка
begin
 Parent := Panel1; // тот контрол, на котором будет лежать кнопка
 SetBounds(Top, Left, Width, Height); // TLWH - тут всё то, что относится к кнопке
 Glyph.LoadFromFile(FileName); // или LoadFromStream, это от тебя зависит
 OnClick := MyButtonClick;
end;


SergGG   (2007-04-03 14:53:00) [28]

Button.Parent:=Panel1


Sonia   (2007-04-03 14:53:00) [29]


> Procedure TForm1.OnClickButton( Sender : TObject );

Надо я думаю так:
Procedure TForm1.Button1Click( Sender : TObject );


{RASkov}   (2007-04-03 14:51:00) [30]

> Не знаю правиль ли я думаю, но может быть так?
> TButton(Button1).OnClick:=OnClickButton;

Просто
...
OnClick:=OnClickButton;
...

> Но если это все правильно помогите с тем чтобы запихнуть в панельку...

Парента ей(кнопке) дай
Parent:=


Sonia   (2007-04-03 14:50:00) [31]


> Но если это все правильно помогите с тем чтобы запихнуть
> в панельку...


> Button1:=TButton.crete(Form1{сдесь наверно можно просто
> указать панель?});

А ты кажется сам ответил на свой вопрос..


Steep   (2007-04-03 14:50:00) [32]


> Sonia ©

Пасип!


Sonia   (2007-04-03 14:49:00) [33]

Если надо еще иконку, то используй BitBtn
BitBtn1.Glyph:='полный путь к файлу иконки';


Steep   (2007-04-03 14:49:00) [34]


> Я думаю, что координата снизу вычисляется, зная длину и
> высоту

ты нужна координата слева! без хз куда делфи кноку кинет...
Вотя подумал и тупо дописал... вроде так можно...

>Ну ты же знаешь как она будет называться, тогда что стоит вызвать на нее событие?
Да фиг его знает в Real Time еще не мудил - все через интерфейс..


Sonia   (2007-04-03 14:47:00) [35]


>  top:=0; //если это координата сверху - то где же снизу?

Я думаю, что координата снизу вычисляется, зная длину и высоту


> А потом еще и как-то кинуть на нее событие... (а ведь ее
> еще надо найти...)

Ну ты же знаешь как она будет называться, тогда что стоит вызвать на нее событие?


Steep   (2007-04-03 14:47:00) [36]

Все таки наверно если дописать Button.left := 0; - то получим вторую координату ;)
А событие кинуть как...
Не знаю правиль ли я думаю, но может быть так?
TButton(Button1).OnClick:=OnClickButton;
А потом описать само событие как:
Procedure TForm1.OnClickButton( Sender : TObject );
Begin
 ShowMessage('Нажали на кнопку');
End;

... ща поробую может заработает...

Но если это все правильно помогите с тем чтобы запихнуть в панельку...


Страницы:   1 2

Наверх

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