Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> повесить OnClick на конопку, созданную в RunTime 
V
    Опции темы
Teleport
Дата 9.3.2009, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: 3
Всего: 6



Создал кнопку в RunTime. 
Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Button1: TButton;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1:=TButton.Create(form1);
Button1.parent:=Panel1;
 Button1.Caption:='+';
 Button1.Left:= 100;
 Button1.Top:= 20;
 Button1.Width:=20;
 Button1.Height:=19;
end;

end.




А как сделать для нее событие OnClick? Например, чтобы увеличивалась высота панели.


--------------------
user posted image
user posted image 
PM MAIL   Вверх
Christoph
Дата 9.3.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 1
Всего: 11



Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
      procedure OnButtonClick(Sender: TObject);
  end;

var
  Form1: TForm1;
  Button:TButton;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button:=TButton.Create(form1);
  Button.parent:=Panel1;
  Button.Caption:='+';
  Button.Left:= 100;
  Button.Top:= 20;
  Button.Width:=20;
  Button.Height:=19;
  Button.OnClick:=Form1.OnButtonClick;
end;

procedure TForm1.OnButtonClick(Sender: TObject);
begin
      panel1.Height:=panel1.Height*2;
end;


end.


Это сообщение отредактировал(а) Christoph - 9.3.2009, 20:34


--------------------
user posted image
PM MAIL ICQ   Вверх
Teleport
Дата 9.3.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: 3
Всего: 6



ага, вот оно что... А если кнопочек-то будет штук так 15-20? То можно в одну процедуру загнать обработку  клика? А там в процедуре уже различать - какая кнопка нажата и чего делать с этим. smile вот пример, код для двух кнопок:
Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
   procedure OnButton1Click(Sender: TObject);
   procedure OnButton2Click(Sender: TObject);
   end;

var
  Form1: TForm1;
  Button1: TButton;
  Button2: TButton;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1:=TButton.Create(form1);
Button1.parent:=Panel1;
 Button1.Caption:='+';
 Button1.Left:= 100;
 Button1.Top:= 20;
 Button1.Width:=20;
 Button1.Height:=19;
Button1.OnClick:=Form1.OnButton1Click;

Button2:=TButton.Create(form1);
Button2.parent:=Panel1;
 Button2.Caption:='-';
 Button2.Left:= 150;
 Button2.Top:= 20;
 Button2.Width:=20;
 Button2.Height:=19;
Button2.OnClick:=Form1.OnButton2Click;
end;


procedure TForm1.OnButton1Click(Sender: TObject);
begin
  if Sender is TButton then
    with (Sender as TButton) do
     panel1.Height:=panel1.Height*2;
end;

procedure TForm1.OnButton2Click(Sender: TObject);
begin
  if Sender is TButton then
    with (Sender as TButton) do
     panel1.Height:=panel1.Height div 2;
end;

end.


Если их 20? То как в одну процедурку загнать? И стоит ли?  smile 


--------------------
user posted image
user posted image 
PM MAIL   Вверх
THandle
Дата 9.3.2009, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



Teleport, различать либо по имени, либо по свойству Tag. Как задашь так и будешь различать.
PM   Вверх
MetalFan
Дата 9.3.2009, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(Christoph @  9.3.2009,  16:13 Найти цитируемый пост)
  if Sender is TButton then
    with (Sender as TButton) do
     ...

эээ брат, что-то ты зарапортовался)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Christoph
Дата 10.3.2009, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 1
Всего: 11



создавать 20 кнопок лучше как то в цикле, если обработчик события один, то зачем их создавать 20? свойству OnClick присвоил нужную процедуру и все.
Цитата(MetalFan @  9.3.2009,  18:25 Найти цитируемый пост)
эээ брат, что-то ты зарапортовался)

Братуха, я исправился, спасиб


--------------------
user posted image
PM MAIL ICQ   Вверх
Teleport
Дата 10.3.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: 3
Всего: 6



Спасибо, разобрался smile


--------------------
user posted image
user posted image 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.