Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / одинаковые имена класса TButton / 8 сообщений из 8, страница 1 из 1
01.09.2021, 18:08
    #40094525
bzums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
Есть стандартный компонент, TButton.
Есть eго потомок, у корого единственное отличие - наличие метода MakeHappy (Но имя то же - TButton).

В проекте при добавлении на форму кнопки в uses добавляется атвоматом ссылка на pas - StdCrtls.
Несмотря на то, что я указал (и выше по коду) в uses мой модуль - HappyButton, метод мне этот недоступен (Delphi сообщает - для TButton не доступен метод MakeHappy).
Как мне получить результат - вызвать у своей кнопки HappyButton?
В одном проекте при нажатии на методе вываливаюсь в родной компонент StdCrtls, в другом - в HappyButton.
Как?
Срасибо.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
unit HappyButton;

interface

uses classes,
  stdctrls;

type
  TButton = class( stdctrls.TButton )
  public
    function MakeHappy: string;
...
Рейтинг: 0 / 0
01.09.2021, 18:15
    #40094531
bzums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
второй вопрос, который в принципе с первым не связан.
Код: 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.
unit Unit0;

interface

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

type
  TForm0 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form0: TForm0;

implementation


{$R *.dfm}

procedure TForm0.Button1Click(Sender: TObject);
begin
  x;
end;

end.


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
unit Unit1;

interface

uses Dialogs;

procedure x;

implementation

procedure x;
begin
  ShowMessage('1');
end;

end.


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
unit Unit2;

interface

uses Dialogs;

procedure x;

implementation

procedure x;
begin
  ShowMessage('2');
end;

end.


В форме пытаюсь вызвать метод x.
Этот метод есть в двух модулях.
Изменение порядка в uses:
Unit1, Unit2; на Unit2, Unit1; не приносит результата. Вызыввется всегда из первого модуля.
В dpr тоже менял, не помогает
program Project;

uses
Vcl.Forms,
Unit0 in 'Unit0.pas' {Form12},
Unit2 in 'Unit2.pas',
Unit1 in 'Unit1.pas';

Можно както этим управлять, не используя Namespaces ?

Спасибо
...
Рейтинг: 0 / 0
01.09.2021, 18:15
    #40094532
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
bzumsКак мне получить результат - вызвать у своей кнопки HappyButton?

Перестань баловаться ерундой и назови её THappyButton.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.09.2021, 18:30
    #40094540
bzums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
Не могу
...
Рейтинг: 0 / 0
01.09.2021, 18:31
    #40094542
bzums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
Не моя она
И используется во многих местах.
...
Рейтинг: 0 / 0
01.09.2021, 18:39
    #40094546
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
bzums
Изменение порядка в uses:
Unit1, Unit2; на Unit2, Unit1; не приносит результата. Вызыввется всегда из первого модуля.
Не верю. Сделайте ребилд приложения
bzums
Несмотря на то, что я указал (и выше по коду) в uses мой модуль - HappyButton
Модуль HappyButton должен идти в uses после StdCtrls
...
Рейтинг: 0 / 0
01.09.2021, 18:48
    #40094556
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
bzums
Есть eго потомок, у корого единственное отличие - наличие метода MakeHappy (Но имя то же - TButton)

Людям, которым остро хочется выстрелить себе в ногу, стоит брать для этого более подходящие инструменты.

bzums
Как мне получить результат - вызвать у своей кнопки HappyButton?

Тебе нужно править архитектуру и учиться решать задачи адекватными инструментами.
...
Рейтинг: 0 / 0
01.09.2021, 19:42
    #40094583
bzums
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
одинаковые имена класса TButton
Что должен идти последним - не догадался.
И очередность, естественно, играет роль.
Вопрос закрыт.
Спасибо большое!
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / одинаковые имена класса TButton / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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