powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как правильно написать код.
9 сообщений из 9, страница 1 из 1
Как правильно написать код.
    #39804330
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрых суток,


Хочу динамически создавать компоненты на двух разных формах.

И этим компонентам хочу добавлять методы типа нажатие мыши.

Хочу для создании динамических компонент и их свойств использовать одну и ту же функцию/процедуру.

Как правильно это написать. покажите пример пожалуйста.

Т.к. у меня затык.. поскольку методы объекта должны (вроде) принадлежать (вроде) форме, а у меня две разные формы.
...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804331
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23,

беда беда...
у тебя два экземпляра формы? значит и обработчика будет два разных. разные адреса у них.
...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804375
Фотография sasha27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23,

а что в нажатиях мыши будет?
обращение к компонентам формы, выполнение каких-то процедур, функций, коннект к БД...?
поширее осветите вопрос...
...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804397
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23Хочу динамически создавать компоненты на двух разных формах.

И этим компонентам хочу добавлять методы типа нажатие мыши.

Хочу для создании динамических компонент и их свойств использовать одну и ту же функцию/процедуру.

Как правильно это написать. покажите пример пожалуйста.

Т.к. у меня затык.. поскольку методы объекта должны (вроде) принадлежать (вроде) форме, а у меня две разные формы.

Не очень понятно, что Вам нужно: если два разных экземляра одного класса формы, досаточно у вновь созданного компонента прописать xxx.OnClick:=MyClick (скорее всего, в это месте будет case по классу компонента), если у форм разные классы - формы наследовать от общего предка и проблема сводится к предыдущей.
...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804443
Фотография sasha27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23Добрых суток,


Хочу динамически создавать компоненты на двух разных формах.

И этим компонентам хочу добавлять методы типа нажатие мыши.

Хочу для создании динамических компонент и их свойств использовать одну и ту же функцию/процедуру.

Как правильно это написать. покажите пример пожалуйста.

Т.к. у меня затык.. поскольку методы объекта должны (вроде) принадлежать (вроде) форме, а у меня две разные формы.

Насколько разношерстные действия будут для нажатия мыши на разных формах для одного типа компонента?
...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804494
shonli95
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, EventHook, Vcl.StdCtrls, Rtti;

type
  TForm2 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  NForm1, NForm2: TForm;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  NForm1 := TForm.Create(nil);
  NForm1.Name := 'MyForm1';
  NForm1.Show;
  NForm2 := TForm.Create(nil);
  NForm2.Name := 'MyForm2';
  NForm2.Show;

  HEventObj.ESet(NForm1, 'OnMouseDown'{, ['DopArgs TValue = ListDopArgs']});
  HEventObj.ESet(NForm2, 'OnMouseDown'{, ['DopArgs TValue = ListDopArgs']});

  HEventObj.OnBefore :=
      procedure(Base: TEventObject; Params: TArray<TValue>; ListDopArgs: TArrTypeAddInHook)
    var
      Str: string;
      V: TValue;
    begin
      Str := TComponent(Base.Sender).Name + ' =';

      for V in Params do
        Str := Str + ', ' + V.ToString;

      Memo1.Lines.Add(Str);
    end;
end;

end.

...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804495
shonli95
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804775
Beltar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает сделать процедурку, в которую передавать ссылку на форму? Либо не заморачиваться с унификацией для всего 2 форм?

У меня для прог с БД используется одна стандартная формочка для работы со справочниками, ЕМНИП я компонентам на ней динамически подкидывал процедурки-события, определенные в главной форме.
...
Рейтинг: 0 / 0
Как правильно написать код.
    #39804808
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23,
а у меня две разные формы

1.

procedure myClickOnButton(Sender: TObject);

//****
//anyform
//
myButton1:=TButton.Create(myForm);
myButton1.Parent:=myForm;
myButton1.OnClick:=myClickOnButton;


2.

TMyBytton = class(TButton)
***
end;

//****
//anyform
//
myButton1:=TMyBytton.Create;
...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как правильно написать код.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]