Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.119 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: instanz nach fehlerprüfung rückgängig machen

  Alt 26. Okt 2003, 14:49
Moin Raik,

da ich jetzt das nicht ganz verstanden habe (), versuche ich das noch einmal mit einem Beispiel zu zeigen, was ich in diesem Zusammenhang unter Wrapper verstehe:

Delphi-Quellcode:
type
  // Die Klasse von der es nur eine bestimmte Anzahl Instanzen geben darf
  TMyControl = class(TObject)
  // was so alles dazugehört
  end;

  // Die Verwaltungsklasse für TMyControl Objekte
  TMyControlWrapper = class(TObject)
  private
    FList : array of TMyControl;
    FiCount : integer;
  public
    // Bedingtes hinzufügen eines TMyControl Objektes
    function Add(...) : boolean;
    // Prüfen, ob erlaubt
    function IsNewControlAllowed(...) : boolean;
    property MyControl[<Irgendein Index>] : TMyControl ...
  end;

  TForm1 = class(TForm)
  //...
  private
    FControlWrapper : TMyControlWrapper;
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Einmaliges erzeugen des Wrappers
  FControlWrapper := TMyControlWrapper.Create;
end;
  
function TMyControlWrapper.Add(...);
begin
  Result := IsNewControlAllowed(...);
  if not Result then exit;
  // ... hinzufügen eines neuen TMyControl Objektes
end;
Man könnte bei Add auch den Index zurückgeben, dabei dann, z.B., -1 für einen Fehler.
Es wird also kein Create aufgerufen wenn nicht wirklich etwas hinzugefügt werden darf.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat