AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Record zu TStringlist hinzufügen

Record zu TStringlist hinzufügen

Ein Thema von EWeiss · begonnen am 12. Jun 2017 · letzter Beitrag vom 14. Jun 2017
Antwort Antwort
Seite 1 von 10  1 23     Letzte » 
Benutzerbild von EWeiss
EWeiss

Registriert seit: 16. Okt 2010
6.125 Beiträge
 
Delphi 2010 Architect
 
#1

Record zu TStringlist hinzufügen

  Alt 12. Jun 2017, 21:22
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

Geändert von TBx (13. Jun 2017 um 08:06 Uhr) Grund: Titel korrigiert
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#2

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 21:24
StringListen haben doch das Object-Property oder nicht? Da kann man doch Daten ablegen.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.480 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 21:26
Records sind keine Objekte, daher kannst Du diese nicht in einer StringList speichern. Records werden immer im Ganzen kopiert, nicht nur deren Pointer.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von EWeiss
EWeiss

Registriert seit: 16. Okt 2010
6.125 Beiträge
 
Delphi 2010 Architect
 
#4

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 21:34
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

Geändert von EWeiss (12. Jun 2017 um 21:38 Uhr)
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#5

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 21:36
Zitat:
Wie könnte ich denn so was über eine eigene Liste verwirklichen wenn es nicht geht.
Benutz statt des Records ein = 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.
  Mit Zitat antworten Zitat
Benutzerbild von EWeiss
EWeiss

Registriert seit: 16. Okt 2010
6.125 Beiträge
 
Delphi 2010 Architect
 
#6

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 21:39
Zitat:
Wie könnte ich denn so was über eine eigene Liste verwirklichen wenn es nicht geht.
Benutz statt des Records ein = 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

Geändert von EWeiss (12. Jun 2017 um 21:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
7.125 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 21:53
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von EWeiss
EWeiss

Registriert seit: 16. Okt 2010
6.125 Beiträge
 
Delphi 2010 Architect
 
#8

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:01
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
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#9

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:07
Zitat:
So wie ich das verstanden habe geht es wohl nicht.
Wenn du aus dem Record ein Class machst schon.
  Mit Zitat antworten Zitat
Benutzerbild von EWeiss
EWeiss

Registriert seit: 16. Okt 2010
6.125 Beiträge
 
Delphi 2010 Architect
 
#10

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:12
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 10  1 23     Letzte » 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf