Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion, Prozedur und eigen Klasse (https://www.delphipraxis.net/103825-funktion-prozedur-und-eigen-klasse.html)

Bernd Nowak 22. Nov 2007 10:51


Funktion, Prozedur und eigen Klasse
 
Hallo,
ich habe folgendes Verständnis Problem.

Ich habe eine selbsterstellte Klasse (nur als Beispiel die TAuto Klasse):

Delphi-Quellcode:
type
  TAuto = class
  private
    FFarbe: string;
    FBaujahr: integer;
    procedure SetFarbe(Farbe: string);
  public
    property Farbe: string read FFarbe write FFarbe;
  end;
Nun möchte ich eine Funktion/Prozedure erstellen die diese Klasse mit Werten füllt (nur Farbe reicht selbst mit statischem Wert, da ich eigentlich nur den Ablauf verstehen will). Im Falle einer Funktion also als Rückgabewert den Typ TAuto oder aber als Prozedure wobei die ja keine Rückgaben erlauben.

Stehe vollkommen auf dem Schlauch :)

Relicted 22. Nov 2007 11:02

Re: Funktion, Prozedur und eigen Klasse
 
hiho!

das ganze was du suchst nennt sich constructor... gibt automatisch sich selbst zurück :-)

Delphi-Quellcode:
type
  TAuto = class
  private
    FFarbe: string;
    FBaujahr: integer;
    procedure SetFarbe(Farbe: string);
  public
    property Farbe: string read FFarbe write FFarbe;
    constructor Create( sFarbe : string );
  end;

implementation

constructor TAuto.Create( sFarbe : string );
begin
  FFarbe := sFarbe;
end;
aufruf dann via coAuto := TAuto.Create( 'Blau' );

gruß
reli

Bernd Nowak 22. Nov 2007 11:44

Re: Funktion, Prozedur und eigen Klasse
 
OK.

Habe mir das mal durch den Kopf gehen lassen. In meiner Klasse geht es um diverse Directx Eigenschaften. Das würde dann bedeuten,
das ich in diesem Teil (ich lasse es eben bei diesem Beispiel :) ):

Delphi-Quellcode:
constructor TAuto.Create( ); // Lasse ich leer da ich bei Dxdiag keinen Parameter übergeben muss
begin
 ...
 Rufe irgendwas auf und setze Eigenschaft
end;
einfach die dementsprechenden Aufrufe reinpacke um die Eigenschaften der Klasse beim erstellen zu füllen ?

mkinzler 22. Nov 2007 11:46

Re: Funktion, Prozedur und eigen Klasse
 
immer den Konstruktor der Superklasse aufrufen!

Delphi-Quellcode:
constructor TAuto.Create( ); // Lasse ich leer da ich bei Dxdiag keinen Parameter übergeben muss
begin
   inherited Create;
...
Rufe irgendwas auf und setze Eigenschaft
end;

Relicted 22. Nov 2007 11:54

Re: Funktion, Prozedur und eigen Klasse
 
*agree*

war nur in dem beispiel unpassend :-)

mkinzler 22. Nov 2007 12:01

Re: Funktion, Prozedur und eigen Klasse
 
Warum jede Klasse hat eine Superklasse! Wenn man nichts angibt halt TObject

Relicted 22. Nov 2007 12:06

Re: Funktion, Prozedur und eigen Klasse
 
ja das ist klar...
ich habs bisher bei nem tobject sein gelassen und nie probleme dabei gehabt...
ich bin/war der meinung dass es in dem fall überflüssig ist.

Delphi-Quellcode:
constructor TObject.Create;
begin
end;
aber lasse mich gerne da auch belehren :-)

gruß
reli

sirius 22. Nov 2007 12:17

Re: Funktion, Prozedur und eigen Klasse
 
Zitat:

Zitat von Relicted
ich habs bisher bei nem tobject sein gelassen und nie probleme dabei gehabt...
ich bin/war der meinung dass es in dem fall überflüssig ist.
aber lasse mich gerne da auch belehren :-)

Das hatten wir auch gerade hier

mkinzler 22. Nov 2007 12:36

Re: Funktion, Prozedur und eigen Klasse
 
Ich würde mich aber auf keine Compilermagic verlassen.

sirius 22. Nov 2007 12:54

Re: Funktion, Prozedur und eigen Klasse
 
Zitat:

Zitat von mkinzler
Ich würde mich aber auf keine Compilermagic verlassen.

:gruebel: Du traust deinem eigenen Compiler nicht? Ungünstig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.
Seite 1 von 2  1 2      

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