Rejestrowanie własnych klas bazowych dla nowych komponentów

0

Potrzebuję stworzyć dwie klasy bazowe dla zestawu nowych komponentów, które będą imeplementować obsługę kilku własnych komunikatów i kilka metod abstrakcyjnych; Pierwsza klasa ma dziedziczyć z TGraphicControl, a druga z TWinControl;

Nie chodzi mi o samo stworzenie takich klas, a o to, w jaki sposób zarejestrować te dwie klasy, aby były możliwe do wybrania w polu Ancestor type podczas tworzenia nowego komponentu:

new-component.png

Niestety nie znalazłem w sieci materiałów opisujących taką możliwość (nie mówię, że takie nie istnieją) - większość artykułów opisuje tworzenie własnych komponentów na podstawie bazowych klas, ale tych z VCL/LCL;

Jak więc powiadomić IDE o nowych klasach bazowych? Chodzi o Delphi7 i ewentualnie Lazarusa.

1

Ja nie rejestrowałem takich klas.
Mimo to dcu z tymi klasami samo się dodaje kiedy dodaje jakiś komponent od takiej klasy pochodzący.

0

Jeśli dobrze rozumiem co chcesz zrobić to po prostu zrób 1 klasę przez wizarda a resztę dodaj ręcznie np. tak:

unit MyGraphicControl;

interface

uses
  SysUtils, Classes, Controls;

type
  TMyGraphicControl = class(TGraphicControl)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
  end;

  TOtherWinControl = class(TWinControl)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
  end;  

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TMyGraphicControl, TOtherWinControl]);
end;

end.

//chyba źle zrozumiałem pytanie chcesz po prostu żeby te klasy były widziane na liście - tego nie wiem

0

//chyba źle zrozumiałem pytanie chcesz po prostu żeby te klasy były widziane na liście - tego nie wiem

No tak - chcę, aby moje dwie bazowe klasy były możliwe do wybrania przy tworzeniu nowych komponentów, ale nierejestrowane na palecie komponentów, bo to będą klasy abstrakcyjne, których i tak nie będzie można użyć bez ich skonkretyzowania;

Sprawdzę to co napisał @_13th_Dragon, ale dopiero jutro; W każdym razie póki co dziękuję za wskazówki;
____No i @_13th_Dragon miał rację - wystarczy zainstalować jeden komponent z własną klasą bazową i automatycznie IDE dodaje sobie taką klasę do listy; A myślałem, że taką klasę trzeba jakoś zarejestrować... :]

Dziękuję za odpowiedzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1