Einzelnen Beitrag anzeigen

sgbSoftwareEntwickler

Registriert seit: 2. Nov 2010
Ort: Bayern
14 Beiträge
 
Delphi XE Professional
 
#18

AW: Warum kann man Vererbung verhindern (csInheritable)?

  Alt 31. Mär 2011, 12:25
Kann es sein das all diese Komponenten depricated sind? Dann würde es Sinn machen. So verhindert man das neue Formulare auf veralteten Komponenten aufbauen und zwingt somit den Programmierer auf andere Komponenten auszuweichen.
Leider muss ich eine zugeben, dass ich deprecated und seine anwendung nicht kenne.

Ich habe Vorhin mal etwas ausprobiert:

Ich habe mir eine eigene Klasse TMeinRibbon von TRibbon abgeleitet und mir daraus eine komponente gebaut:

Code:
unit MeinRibbon;

interface

uses
  Ribbon, Classes, ActnMan;

type
  TMeinRibbon = class(TRibbon)
  public
    constructor Create(AOwner: TComponent); override;
  end;

implementation

procedure Register;
begin
  RegisterComponents('Test', [TMeinRibbon]);
end;


{ TMeinRibbon }

constructor TMeinRibbon.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FComponentStyle := FComponentStyle + [csInheritable];
end;
Danach habe ich ein Formular erstellt und MeinRibbon1 darauf gesetzt.

Wenn ich das Ganze per Delphi vererbe (Neu -> Vererbare Elemente ...) haut es mir meine komplette konfiguration von MeinRibbon1 zusammen.
Wenn ich es per Hand vererbe (Neu -> Formular ... TForm1 = class(TMeinGrundFormular) <- per Hand im Quellcode), funktioniert soweit alles, aber ich sehe die Ribbonbar nur zur Laufzeit und hab nur Bedingt Zugriff auf die Ribbonbar.

Ich spiele noch mit den Möglichkeiten und versuche das ganze auch für den TActionManager

Falls Ihr eine andere Idee habt, her damit!

Ich werde euch auf dem Laufenden halten.
Thomas
Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null. Diesen nennen Sie dann Ihren Standpunkt.
- Albert Einstein
  Mit Zitat antworten Zitat