![]() |
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:
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.
type
TAuto = class private FFarbe: string; FBaujahr: integer; procedure SetFarbe(Farbe: string); public property Farbe: string read FFarbe write FFarbe; end; Stehe vollkommen auf dem Schlauch :) |
Re: Funktion, Prozedur und eigen Klasse
hiho!
das ganze was du suchst nennt sich constructor... gibt automatisch sich selbst zurück :-)
Delphi-Quellcode:
aufruf dann via coAuto := TAuto.Create( 'Blau' );
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; gruß reli |
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:
einfach die dementsprechenden Aufrufe reinpacke um die Eigenschaften der Klasse beim erstellen zu füllen ?
constructor TAuto.Create( ); // Lasse ich leer da ich bei Dxdiag keinen Parameter übergeben muss
begin ... Rufe irgendwas auf und setze Eigenschaft end; |
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; |
Re: Funktion, Prozedur und eigen Klasse
*agree*
war nur in dem beispiel unpassend :-) |
Re: Funktion, Prozedur und eigen Klasse
Warum jede Klasse hat eine Superklasse! Wenn man nichts angibt halt TObject
|
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:
aber lasse mich gerne da auch belehren :-)
constructor TObject.Create;
begin end; gruß reli |
Re: Funktion, Prozedur und eigen Klasse
Zitat:
![]() |
Re: Funktion, Prozedur und eigen Klasse
Ich würde mich aber auf keine Compilermagic verlassen.
|
Re: Funktion, Prozedur und eigen Klasse
Zitat:
|
Re: Funktion, Prozedur und eigen Klasse
Meinem schon, aber wer sagt mir das neuere Compiler wg RTL/VCL/..-Änderungen dann nicht doch Code direkt in der basisklasse haben und dann, wegen dem fehlendem inherited irgendwas nicht mehr funktioniert? Nach solchen Fehlern sucht man u.U. ewig.
|
Re: Funktion, Prozedur und eigen Klasse
Vielen Dank !
Klappt super muss nun nur rausfinden wie ich unter Win95 und directx 8 verhindere das meine Klasse aufgerufen wird da es sonst kracht. Warum MS auch immer soviel ändert bzw. keine Abwärtskompabilität in seinem DXDiag Zeugs hat :-D |
Re: Funktion, Prozedur und eigen Klasse
auch wenn neue frage neues thema... aber *hust*
HKEY_LOCAL_MASCHINE\Software\Microsoft\DirectX, da steht dann in einer Zeichenfolge ( Version ). Beispiel: "4.08.00.0400" musst also nur die ( 8.00 ) auslesen. Hoffe das klappt auch in windows < XP... das gilt es zu testen gruß reli |
Re: Funktion, Prozedur und eigen Klasse
Danke für den Tip ! Werde ich mir mal ansehen muss mich aber jetzt um meine Steuern kümmern :-D
PS: Ja ich weiss das ein Thread nur ein Thema behandeln soll aber da das so gut gefunzt hatte mit euren Antworten und ich ein wenig gelernt hatte wollte ich nur von dem Erfolg und Misserfolg auf der anderen Seite schreiben. OT: Interessant das der DX Teil auch unter Vista mit der Klasse läuft. |
Re: Funktion, Prozedur und eigen Klasse
wieso sollte es nicht laufen? weißt du wie unglücklich ich wäre wenn ich zuhause mit DX10 nicht meine lieblingsgames zocken könnte? :-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz