Delphi-PRAXiS
Seite 1 von 10  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Record zu TStringlist hinzufügen (https://www.delphipraxis.net/193030-record-zu-tstringlist-hinzufuegen.html)

EWeiss 12. Jun 2017 20:22


Record zu TStringlist hinzufügen
 
Ich möchte meinen Record zu einer StringListe hinzufügen.
Delphi-Quellcode:
  TSprite = packed Record
    CtrlName: WideString;
    CtrlIndex: Integer;
    Left: Single;
    Top: Single;
    Width: Integer;
    Height: Integer;
    Scale: Single;
    Opacity: Byte;
    ShellTo: string;
    IconPath: WideString;
    WorkDir: WideString;
    UseLabel: string;
    CmdLine: WideString;
    ShowCmd: longint;
    h_Bitmap: HBitmap;
    Visible: Bool;
  end;
  PSprite = ^TSprite;
Ich muss aber in der Lage sein aus dieser Liste zum Beispiel auf das h_Bitmap zuzugreifen.
Oder würdet ihr etwas anderes verwenden ?

Ich möchte von dem Array TSprite weg und alles über eine Liste regeln.

gruss

SneakyBagels 12. Jun 2017 20:24

AW: Redord zu TStringlist hinzufügen
 
StringListen haben doch das Object-Property oder nicht? Da kann man doch Daten ablegen.

sakura 12. Jun 2017 20:26

AW: Redord zu TStringlist hinzufügen
 
Records sind keine Objekte, daher kannst Du diese nicht in einer StringList speichern. Records werden immer im Ganzen kopiert, nicht nur deren Pointer.

...:cat:...

EWeiss 12. Jun 2017 20:34

AW: Redord zu TStringlist hinzufügen
 
Was sagt mir das jetzt das es nicht funktioniert?
Wie könnte ich denn so was über eine eigene Liste verwirklichen wenn es nicht geht.

Hier ist ein ähnliches Beispiel.
https://stackoverflow.com/questions/...-in-stringlist

NUR! Wie komme ich dann an die einzelnen Objekte des Record in der Liste.

gruss

SneakyBagels 12. Jun 2017 20:36

AW: Redord zu TStringlist hinzufügen
 
Zitat:

Wie könnte ich denn so was über eine eigene Liste verwirklichen wenn es nicht geht.
Benutz statt des Records ein
Delphi-Quellcode:
= class
dann kannst du den Pointer in die StringListe hauen.
Wenn du den Zugriff über den Index nicht brauchst, dann verwende ein TObjectDictionary.
Habe vor Kurzem auch erst umgestellt.

EWeiss 12. Jun 2017 20:39

AW: Redord zu TStringlist hinzufügen
 
Zitat:

Zitat von SneakyBagels (Beitrag 1374321)
Zitat:

Wie könnte ich denn so was über eine eigene Liste verwirklichen wenn es nicht geht.
Benutz statt des Records ein
Delphi-Quellcode:
= class
dann kannst du den Pointer in die StringListe hauen.
Wenn du den Zugriff über den Index nicht brauchst, dann verwende ein TObjectDictionary.
Habe vor Kurzem auch erst umgestellt.

Ka ob das mit D2010 so ohne weiteres umsetzbar ist. ;)
Und wenn ich den Record jetzt in eine Class auslagern soll.. dann ist mir das zu viel Arbeit;)

es gibt unter C++ eine möglichkeit in der WinNT.h

Code:
#define CONTAINING_RECORD(address, type, field) ((type *)( \
                                                  (PCHAR)(address) - \
                                                  (ULONG_PTR)(&((type *)0)->field)))
gruss

jaenicke 12. Jun 2017 20:53

AW: Redord zu TStringlist hinzufügen
 
Was enthalten denn die Strings, die in die Stringliste sollen? Willst du darüber die Sprites finden?
Dann könntest du synchron zur Stringlist noch eine TList<TSprite> verwenden und immer am gleichen Index den String in der Stringliste und dein Sprite in der TList<TSprite> haben.

EWeiss 12. Jun 2017 21:01

AW: Redord zu TStringlist hinzufügen
 
Zitat:

Was enthalten denn die Strings, die in die Stringliste sollen? Willst du darüber die Sprites finden?
Welche strings?
Ich möchte den Record in die Liste packen und daraus die Variablen des Records auslesen können.
So wie ich das verstanden habe geht es wohl nicht.

gruss

SneakyBagels 12. Jun 2017 21:07

AW: Redord zu TStringlist hinzufügen
 
Zitat:

So wie ich das verstanden habe geht es wohl nicht.
Wenn du aus dem Record ein Class machst schon.

EWeiss 12. Jun 2017 21:12

AW: Redord zu TStringlist hinzufügen
 
Zitat:

Zitat von SneakyBagels (Beitrag 1374326)
Zitat:

So wie ich das verstanden habe geht es wohl nicht.
Wenn du aus dem Record ein Class machst schon.

möchte ich aber nicht ;)

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.
Seite 1 von 10  1 23     Letzte »    

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