Zitat:
den Gedanken mit dem gemeinsamen Parentformular hatt ich auch schon,
schien mir aber ein bisserl zu heftig als Lösung.
Da bieten sich doch interfaces an und können in diesem Fall die Basisklasse ersetzen
Delphi-Quellcode:
type
IBlaBla = interface
['{D277B854-3DFF-4838-B8B9-A87EF5C55B1F}']
procedure SetBla(Value: Integer);
function GetBla : Integer;
property Blabla : Integer read GetBla write SetBla;
end;
TFormA = class(Tform,IblaBla)
public
function GetBla: Integer;
procedure SetBla(Value: Integer);
end;
TFormB = class(TForm,IblaBla)
public
function GetBla: Integer;
procedure SetBla(Value: Integer);
end;
und beim Zugriff ginge das dann so:
Delphi-Quellcode:
var
aForm : TForM;
...
procedure TForm1.Button2Click(Sender: TObject);
begin
if Supports(aForm,IBlaBla)
then // vorher prüfen um Exception zu vermeiden
(aForm
as IblaBla).Blabla := 12;
end;
janz ohne if else
(BTW - geht so (ohne weiteren Code) erst ab Delphi 6 , bei D5 etc müsste noch IUnknown implementiert werden)
Bernd