AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was bedeutet "class of"

Ein Thema von mytar · begonnen am 29. Aug 2004 · letzter Beitrag vom 29. Aug 2004
Antwort Antwort
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#1

Was bedeutet "class of"

  Alt 29. Aug 2004, 15:47
Ich hab jetzt kürzlich mal in den Units herumgestöbert die Delphi beiliegen.

Ich hab dann soetwas gefunden:

ListItemsClass = class of TListItems; //ein Beispiel Kann mir das einer erklären?

[edit=sakura] Titel jetzt mal beispielhaft gestaltet. Mfg, sakura[/edit]
Francis Obikwelu
greetz
mytar
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: class of

  Alt 29. Aug 2004, 16:03
Das wird genutzt, wenn eine Klasse (A) später Objekte (Y, Z) erstellen muss, die von einem bestimmten Typ (X) abgeleitet wurden. Ein kurzes Beispiel:
Delphi-Quellcode:
type
  // das ist Typ X
  TGeometry = class
  public
    function MyName: String; virtual; abstract;
  end;
  TGeometryClass = class of TGeometry;

  // das ist Klasse A
  TGeometryMaker = class
  private
    FCurrentGeometryClass: TGeometryClass;
  public
    function GetNextGeometry: TGeometry;
    property CurrentGeometryClass: TGeometryClass read FCurrentGeometryClass write FCurrentGeometryClass;
  end;

function TGeometryMaker.GetNextGeometry: TGeometry;
begin
  Result := CurrentGeometryClass.Create;
end;

type
  // Typ Y (von X abgeleitet)
  TRectangle = class(TGeometry)
  public
    function MyName: String; override;
  end;

function TRectangle.MyName: String;
begin
  Result := 'na Rechteck!';
end;

type
  // Typ Z (von X abgeleitet)
  TCircle = class(TGeometry)
  public
    function MyName: String; override;
  end;

function TCircle.MyName: String;
begin
  Result := 'Ich bin ein Kreis.';
end;
Jetzt erstellen wir mal ein Form mit einem Button und einem Memo und fügen diesen Code ins Button-OnClick ein:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  Geo: TGeometry;
begin
  // jetzt erstellen wir unsere Klasse, welche uns später objekte vom typ
  // TGeometry zurück liefert
  with TGeometryMaker.Create do
  try
    // als erstes erstellen wir ein rechteck
    CurrentGeometryClass := TRectangle;
    Geo := GetNextGeometry;
    try
      Memo1.Lines.Add(Geo.MyName);
    finally
      Geo.Free;
    end;

    // jetzt noch einen kreis
    CurrentGeometryClass := TCircle;
    Geo := GetNextGeometry;
    try
      Memo1.Lines.Add(Geo.MyName);
    finally
      Geo.Free;
    end;
  finally
    Free;
  end;
end;
Meistens wird diese Methode genutzt, wenn man ein Framework für eine Logik liefern will, aber nicht den Gesamtumfang beschränken will.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: class of

  Alt 29. Aug 2004, 16:16
Ich verstehes jetzt langsam,
muss es noch ein wenig vertiefen!

Danke jedenfalls, Sakura!

Für mich ist die ganze Sache [Erledigt]!
Francis Obikwelu
greetz
mytar
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz