AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Record zu TStringlist hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Record zu TStringlist hinzufügen

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

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:16
Wenn kein ARC in Sicht ist,

dann Pointere doch einfach bissl rum.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:18
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
Warum nimmst Du dann nicht eine TList oder eine Tobjectlist?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#13

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:23
Dann gehts nicht.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:30
Was geht nicht?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#15

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:45
Record in Stringliste ablegen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 22:57
Nee, aber Zeiger auf Records ginge
oder Records in Dataobjekten.

Oder seit D2009 eine generische TList<Record> bzw. vermutlich eher ein TDictionary<String,Record>
$2B or not $2B

Geändert von himitsu (12. Jun 2017 um 23:00 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 23:11
Nee, aber Zeiger auf Records ginge
oder Records in Dataobjekten.

Oder seit D2009 eine generische TList<Record> bzw. vermutlich eher ein TDictionary<String,Record>
funktioniert nicht wirklich.
geht jetzt.
SpriteList: TList<TSprite>;   SpriteList := TList<TSprite>.Create();

Allerdings meldet er nun das der linken Seite nichts zugewiesen werden kann.
SpriteList.Items[K].Left := ..
Wieder so ein Sonderfall

gruss

Geändert von EWeiss (12. Jun 2017 um 23:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#18

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 23:44
Wieder so ein Sonderfall
Nee, das ist schon immer so, wenn man einen Record als Property-Typ nutzt.

Es kann immer nur ein kompletter Record geändert werden, was auch klar, da es entweder der Getter oder der Setter benutzt wird und leider niemals Beides (außer man macht es selber) und da Records auch keine Referenzen sind, wie z.B. ein Objekt.
$2B or not $2B
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

AW: Redord zu TStringlist hinzufügen

  Alt 12. Jun 2017, 23:49
Wieder so ein Sonderfall
Nee, das ist schon immer so, wenn man einen Record als Property-Typ nutzt.

Es kann immer nur ein kompletter Record geändert werden, was auch klar, da es entweder der Getter oder der Setter benutzt wird und leider niemals Beides (außer man macht es selber) und da Records auch keine Referenzen sind, wie z.B. ein Objekt.
Aber genau das möchte ich ansonsten macht es keinen sinn.
Ich muss die einzelnen Variablen im Record verändern können.

selbst das funktioniert nicht einmal

Sprite := @SpriteList.Items[Prop.RecycleBin];

Variable erforderlich.
OK Danke denke das kann man dann getrost vergessen.

gruss

Geändert von EWeiss (13. Jun 2017 um 00:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#20

AW: Redord zu TStringlist hinzufügen

  Alt 13. Jun 2017, 01:07
Selbst wenn es funktionieren würde, würde es dich nicht helfen, denn das "Result" ist eine Kopie des Inhalts.

Man kann der TList<> ein neues Items-Property verpassen, welches einen Pointer raus gibt, der auf das Items im internen Record zeigt.
Ist natürlich nicht standardmäßig eingebaut, da es ein Sonderfall und außerdem "unsicher" ist.

Dann doch eher die TList abbauen und veränderbare Felder als eigene Property einbauen
und intern dann jeweils

Delphi-Quellcode:
procedure SetFeldAbc(Index: Integer; Value: TAbc);
var
  Temp: T;
begin
  //InternesArray[Index].Abc := Value;
  Temp := Items[Index];
  Temp.Abc := Value;
  Items[Index] := Temp;
end;
Du willst einen Record, also mußt du auch mit den Nachteilen leben.


Alternativ kann man auch ein TArray<TDeinRecord> verwenden.
Aber die Arraymanipulation (mit Ausnahme des Copy und einer binären Suche für sortierte Arrays) sind im "älteren" Delphi noch spärlich integriert, vorallem Delete und Insert.
$2B or not $2B

Geändert von himitsu (13. Jun 2017 um 01:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 10     12 34     Letzte »    


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 22:31 Uhr.
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