Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zugriff auf Public nur wenn Bedingung erfüllt ist

  Alt 1. Mai 2010, 17:46
Delphi-Quellcode:
type
  TWin7 = class(TUpdateEngine)
    ...
  end;
  TWinVista = class(TUpdateEngine)
    ...
  end;
  TWinXP = class(TUpdateEngine)
    ...
  end;

function GetEngine(): TUpdateEngine;
begin
  if TheSystem = '7then
    Result := TWin7.Create
  else if TheSystem = 'Vistathen
    Result := TWinVista.Create
  else if TheSystem = 'XPthen
    Result := TWinXP.Create
  else
    Fehler;
end;
Tja und nun könnte man extern in den Ableger casten, welcher erstellt wurde.
Delphi-Quellcode:
var Engine: TUpdateEngine;

Engine := GetEngine;
Engine.MachWasWelchesÜberallGeht;
if Engine.isWinXP then // oder if Engine is TWinXP then
  TWinXP(Engine).MachEtwasWelchesNurInWin7Geht;
Ansonsten alles in TUpdateEngine reinmachen und nur die Zugriffe auf die Property/Funktionen intern unterdrücken (eventuell mit Exceptions), welche im aktuellen System nicht verfügbar sind.
$2B or not $2B
  Mit Zitat antworten Zitat