Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Verzeichniss abbilden... (https://www.delphipraxis.net/139370-verzeichniss-abbilden.html)

Luckie 29. Aug 2009 22:49

Re: Verzeichniss abbilden...
 
Zitat:

Zitat von himitsu
wie legst du denn mehrere Werte pro Eintrag in TList ab? :zwinker:
(in einem Record)

In einem Objekt. :wink:

Teekeks 30. Aug 2009 06:59

Re: Verzeichniss abbilden...
 
Aber verbraucht ein record nicht weniger Speicher als eine Klasse?

himitsu 30. Aug 2009 08:22

Re: Verzeichniss abbilden...
 
jupp

wenn du (Luckie) auf Setter/Getter hinaus willst, das geht auch mit Records :angel:

und außerdem nimmt man dann doch keine TList, sondern eine TObjectList :zwinker:
TList > Records ... TObjectList > Objekte

PS: ein Objekt besteht ja im Prinzip auch nur aus ein paar etwas größeren Records :tongue:

der harte Kern von diesem
Delphi-Quellcode:
Type TMyObject = Class
  Private
    FField1: Integer;
    FField2: String;
    FField3: Pointer;
    Procedure SetField2(Const Value: String);
  Public
    Property Field1: Integer Read FField1 Write FField1;
    Property Field2: String Read FField2 Write SetField2;
    Property Field3: Pointer Read FField3;
  End;
ist ja wohl sowas
Delphi-Quellcode:
Type PMyVirtualObject = ^VMyVirtualObject;
  VMyVirtualObject = Record
    FField1: Integer;
    FField2: String;
    FField3: Pointer;
  End;

  TMyVirtualObject = Record
  Private
    FData: PMyVirtualObject;
    Procedure SetField2(Const Value: String);
  Public
    Function Create: TMyVirtualObject;
    Procedure Free;

    Property Field1: Integer Read FData.FField1 Write FData.FField1;
    Property Field2: String Read FData.FField2 Write SetField2;
    Property Field3: Pointer Read FData.FField3;
  End;

Procedure TMyVirtualObject.SetField2(Const Value: String);
  Begin
    If Value <> '' Then FData.FField2 := Value;
  End;

Function TMyVirtualObject.Create: TMyVirtualObject;
  Begin
    New(Result.FData);
  End;

Procedure TMyVirtualObject.Free;
  Begin
    If Assigned(FData) Then Dispose(FData);
  End;
Delphi-Quellcode:
Var O: TMy_Object;

O := TMy_Object.Create;
O.Field2 := 'abc';
O.Free;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr.
Seite 2 von 2     12   

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