Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.05.2014, 01:02
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию События динамически созданной формы

Есть форма, создается динамически на ней несколько компонентов
Код:
unit MineForms;
       .......................................
 type
   TCmbMetters = class(TComboBox)
       .......................................
   end;

   TFrmProfile = class(TForm)
    CmbMetters: TCmbMetters;
    Lbl: TLabel;
       .......................................
   end;

implementation
       .......................................
как в форме написать обработчик на OnClick комбобокса (CmbMetters), например -
Код:
Lbl.Caption:= CmbMetters.Text;
(просто пример), собственно нужно вычислить значения нескольких компонентов, результат поместить в лейбл и хотелось бы что-бы этот обработчик вызывался при событиях компонентов на форме, в дизайнтайм понятно, один обработчик написал, в инпекторе объектов назначил нужным событиям, а как если форма динамическая?
Ответить с цитированием
  #2  
Старый 02.05.2014, 09:20
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
unit Unit1;

interface

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

type
  TCmbMetters = class(TComboBox)
  end;

  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    CmbMetters: TCmbMetters;
    procedure NumLock(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.NumLock(Sender: TObject);
begin
  Label1.Caption:=CmbMetters.Text;  
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CmbMetters:=TCmbMetters.Create(Self);
  CmbMetters.Parent:=Self;
  CmbMetters.OnClick:=NumLock;
  CmbMetters.Items.Add('1');
  CmbMetters.Items.Add('2');
  CmbMetters.Items.Add('3');
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Помидоркин (02.05.2014)
  #3  
Старый 02.05.2014, 21:15
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию

Спасибо NumLock
Хотя вышло несколько иначе
Код:
procedure TFrmProfile.Calc(Sender: TObject);
begin
 LblResult.Caption:= FloatToStrF(CmbMetters.Value,ffFixed,8,2);
end;
Код:
procedure TCmbMetters.Click;
begin
 inherited Click;
 case ItemIndex of
  0: FValue:= 6.76 ;
  1: FValue:= 6.78;
  2: FValue:= 4.23;
 end;
 (Parent as TFrmProfile).Calc(Self);
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter