Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Compoübergabe in eigene Klasse (https://www.delphipraxis.net/75625-compouebergabe-eigene-klasse.html)

alienous 22. Aug 2006 14:46


Compoübergabe in eigene Klasse
 
hi, ich nochmal :)

diesmal möchte ich etwas grundsätzliches über pointerübergaben wissen.

auf meiner main-form habe ich eine TIDIRC-Compo (die Compo is hier nich so wichtig)

in dem constructor meiner klasse will ich diese compo übergeben bekommen (eigentlich ja nur die adresse) und sie in dem neu erstellten objekt "merken" lassen, also im private-teil mit "IRCConn : TIDIRC;"

da ich noch nich wirklich was mit pointern gemacht hab, wollte ich mal hier nachfragen, ob ich einfach beim constructor die compo mit compo-namen übergeben soll, und diese im objekt dann so abspeichern soll, wie oben beschrieben?! oder wird dabei die compo im speicher kopiert?

danke

chaosben 22. Aug 2006 14:50

Re: Compoübergabe in eigene Klasse
 
Hi!

Imho brauchst du für diese Sache keine Pointer.
Ich würde es so machen:
Delphi-Quellcode:
//...

private
  FIRC : TIDIRC;

//...

constructor TMyCompo.Create(AIRCCompo : TIDIRC);
begin
  FIRC:=AIRCCompo;
end;
Bei diesem Vorgehen wird nur die VCL-interne ID des Objektes übergeben, was eine "Art" Pointer ist.

Natürlich kannst du das auch mit Pointern lösen ... nur warum schwierig wenn es auch einfach geht? :)

Khabarakh 22. Aug 2006 15:18

Re: Compoübergabe in eigene Klasse
 
Zitat:

Zitat von chaosben
Bei diesem Vorgehen wird nur die VCL-interne ID des Objektes übergeben, [...]

Was soll das denn sein o.O ?
Zitat:

was eine "Art" Pointer ist.
Jede Objekt-Variable _ist_ einfach ein Pointer. Nicht mehr und nicht weniger. Richtig ist dein Code dennoch.

chaosben 22. Aug 2006 15:22

Re: Compoübergabe in eigene Klasse
 
Zitat:

Zitat von Khabarakh
Jede Objekt-Variable _ist_ einfach ein Pointer.

Ja, das ist richtig. Aber es ist nicht der Pointer auf das Objekt.

Probier einfach mal folgendes aus:
Vergleiche @Objekt(bzw. AdressOf) mit Integer(Objekt) und du wirst staunen. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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