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

Вниз

Real Time Панель   Найти похожие ветки 

 
Steep ©   (2007-04-03 14:38) [0]

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

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

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


 
Sonia ©   (2007-04-03 14:47) [1]


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

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


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

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


 
Steep ©   (2007-04-03 14:47) [2]

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

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

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


 
Steep ©   (2007-04-03 14:49) [3]


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

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

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


 
Sonia ©   (2007-04-03 14:49) [4]

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


 
Steep ©   (2007-04-03 14:50) [5]


> Sonia ©

Пасип!


 
Sonia ©   (2007-04-03 14:50) [6]


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


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

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


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

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

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

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

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


 
Sonia ©   (2007-04-03 14:53) [8]


> Procedure TForm1.OnClickButton( Sender : TObject );

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


 
SergGG ©   (2007-04-03 14:53) [9]

Button.Parent:=Panel1


 
Ega23 ©   (2007-04-03 14:54) [10]

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;


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

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

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

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

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


 
Steep ©   (2007-04-03 14:55) [12]

короче пока написал так:
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 15:00) [13]

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

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


 
Ega23 ©   (2007-04-03 15:01) [14]

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


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.


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

См. [9]


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

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

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


 
Steep ©   (2007-04-03 15:03) [17]

>[7], [9], [10] - это так просто было? Со стенкой....
Про парент я понял, еще просто сделать не успел ;)
Щас вот попытался сделать что Ega23 ©  написал, но делфяк ругается на TSpeedButton


 
Ega23 ©   (2007-04-03 15:04) [18]


> Щас вот попытался сделать что Ega23 ©  написал, но делфяк
> ругается на TSpeedButton


uses Buttons   (для Delphi7)


 
Sonia ©   (2007-04-03 15:09) [19]


> Procedure TForm1.Button1Click( Sender : TObject );
> [8] Sonia ©   (03.04.07 14:53)
>
> А это вобще не то.


Ну так сам Delphi пишет (в плане синтаксиса)


 
{RASkov}   (2007-04-03 15:09) [20]

> но делфяк ругается на TSpeedButton

Это она на тебя ругается, а не на TSpeedButton :)


 
Steep ©   (2007-04-03 15:10) [21]


> uses Buttons   (для Delphi7)

ну и делфи 2006 тоже ;) Пасип..
Вобщем код теперь следующий:

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

procedure TForm1.Button1Click(Sender: TObject);
var
 TButton: TSpeedButton;
 FileName: String;
begin
 with TButton.Create(Form1) do
 begin
   Parent := Panel1;
   SetBounds(10, 10, 50, 50);
   //Caption := "";
   Glyph.LoadFromFile(FileName);
   OnClick := MyButtonClick;
 end;
end;


При нажатии на клавишу пишет Stack OverFlow.. даже если Glyph. закометить...


 
Steep ©   (2007-04-03 15:13) [22]

А понял:
begin
With TSpeedButton.Create(Self) do

токо теперь вопрос а какое имя у этой кнопки?
И как ее закилить?


 
{RASkov}   (2007-04-03 15:14) [23]

> Ну так сам Delphi пишет (в плане синтаксиса)

При чем здесь это? Для каждой, вновь созданной в рантайм кнопки, свой обработчик по "правилам" делфи делать?


> [21] Steep ©   (03.04.07 15:10)

> var
> TButton: TSpeedButton;

Ты сам понял, что написал?


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

> > var
> > TButton: TSpeedButton;
>
> Ты сам понял, что написал?

Т.е. я имел ввиду связку:

> var
> TButton: TSpeedButton;
> FileName: String;
> begin
> with TButton.Create(Form1) do
> begin


 
Steep ©   (2007-04-03 15:19) [25]


> > var
>> TButton: TSpeedButton;
>
> Ты сам понял, что написал?

Самому смешно стало :)


 
SergGG ©   (2007-04-03 15:20) [26]

procedure TForm1.BitBtn1Click(Sender: TObject);
var
Button: TSpeedButton;
FileName: String;
begin
Button:=TButton.Create(nil);
with Button do
begin
  Parent := Panel1;
  SetBounds(10, 10, 50, 50);
  //Caption := "";
  Glyph.LoadFromFile(FileName);
  OnClick := MyButtonClick;
end;
end;


 
Sonia ©   (2007-04-03 15:20) [27]


> {RASkov}   (03.04.07 15:14) [23]
> > Ну так сам Delphi пишет (в плане синтаксиса)
>
> При чем здесь это? Для каждой, вновь созданной в рантайм
> кнопки, свой обработчик по "правилам" делфи делать?

Ты меня вообще не понял :) Я поправила тока синтаксис


 
{RASkov}   (2007-04-03 15:22) [28]

Вообще при таком подходе
> With TSpeedButton.Create(Self) do

переменную типа TSpeedButton описывать не надо, о чем тебя предупредит среда.


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

> [27] Sonia ©   (03.04.07 15:20)

А чем этот "синтаксис":
> Procedure TForm1.OnClickButton( Sender : TObject );

отличается от этого

> Procedure TForm1.Button1Click( Sender : TObject );

???? :)


 
Steep ©   (2007-04-03 15:24) [30]

Спасибо всем! за помощь!
Ответь плиз если не влом

> токо теперь вопрос а какое имя у этой кнопки?И как ее закилить?


 
{RASkov}   (2007-04-03 15:27) [31]

> [30] Steep ©   (03.04.07 15:24)

при твоем подходе ее закилит форма или кто там при create был...


 
SergGG ©   (2007-04-03 15:28) [32]

См. [26]- РАБОТАЕТ


 
Ega23 ©   (2007-04-03 15:30) [33]


> токо теперь вопрос а какое имя у этой кнопки?И как ее закилить?


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");
  Name := "MySuperButtonName";
  Anchors := [akTop, akLeft];

 end;
end;


 
{RASkov}   (2007-04-03 15:32) [34]

> [32] SergGG ©   (03.04.07 15:28)
> См. [26]- РАБОТАЕТ

Ссылка
> Button: TSpeedButton;

будет утерена поэтому в ней нет необходимости...


 
Steep ©   (2007-04-03 15:47) [35]

Большое спасибо всем!!!!!
Кланююся!!


 
{RASkov}   (2007-04-03 15:50) [36]

> Кланююся!!

Лоб не расшиби :) А то потом опять этот-же вопрос будет :)



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

Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.042 c
2-1175691056
cosinus
2007-04-04 16:50
2007.04.22
Хм...Вопрос по глобальному хуку на клавиатуру


9-1147893805
Vitec
2006-05-17 23:23
2007.04.22
Какой движок лучше?


15-1175247187
Vlad Oshin
2007-03-30 13:33
2007.04.22
HTML. Размер шрифта в таблице. Как задать сразу для всей таблицы?


4-1164626298
jiny
2006-11-27 14:18
2007.04.22
Проблема с ANI-курсорами (при извлечении из ресурса)


15-1174976654
Post_
2007-03-27 10:24
2007.04.22
Целесообразно ли...





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