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
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#1

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 07:32
Delphi-Quellcode:
  if Assigned(Sprite) then
  begin
    if Sprite.Count - 1 > ID_MAIN then
    begin
      for K := ID_FIRST to Sprite.Count - 1 do
      begin
        if Sprite[K].h_Bitmap <> 0 then
        begin
          DeleteObject(Sprite[K].h_Bitmap);
          Sprite[K].h_Bitmap := 0;
          ZeroMemory(@Sprite[K], SizeOf(TSprite));
        end;
      end;
    end;
  end;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 07:39
Sprite hat kein Count.
Das habe ich alles schon durch.

Dann noch ein anderes nichts machen nur schauen.

Wie gesagt das ist nicht mal so eben gemacht.
Ich glaube lasse es lieber sein.

gruss

Geändert von EWeiss (13. Jun 2017 um 08:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#3

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 07:45
Delphi-Quellcode:
type
  TSprite = class
    CtrlName: WideString;
    CtrlIndex: Integer;
    ...
  end;

var
  Sprite: TObjectList<TSprite>;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 07:48
Delphi-Quellcode:
type
  TSprite = class
    CtrlName: WideString;
    CtrlIndex: Integer;
    ...
  end;

var
  Sprite: TObjectList<TSprite>;
Danke habe es vorhin versucht aber das lässt sich so einfach nicht vereinbaren mit den ganzen Kram.
Siehe Beitrag über den deinen.

gruss

Geändert von EWeiss (13. Jun 2017 um 08:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#5

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 07:56
Wieso nicht? Ich sehe da auf Anhieb nichts in Deinem Code, das unbedingt Records und Arrays brauchen würde.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 08:04
Wieso nicht? Ich sehe da auf Anhieb nichts in Deinem Code, das unbedingt Records und Arrays brauchen würde.
Du siehst aber schon wie viele Indexe ich benötige um die Sprites zu zuweisen?
Found, Count, FlagFound, Prop.RecycleBin ?

Sprite[Count].Top := Bottom;
Das ist ein Array oder?
Und das wollte ich nicht! (Dann kann ich es auch so belassen wie es ist)
Somit hat sich das erledigt.

Danke für eure Teilnahme!

gruss

Geändert von EWeiss (13. Jun 2017 um 08:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#7

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 08:17
Nochmal ganz langsam: wie spricht man ein Array-Element an?
Array[Index] Und ein Listenelement?
List[Index] Mal abgesehen von Low() und High() müsste am Zugriff auf die Elemente doch nichts ändern. Sry, ich verstehe Deine Einwände nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 08:21
Wieso nicht? Ich sehe da auf Anhieb nichts in Deinem Code, das unbedingt Records und Arrays brauchen würde.
Du siehst aber schon wie viele Indexe ich benötige um die Sprites zu zuweisen?
Found, Count, FlagFound, Prop.RecycleBin ?

Sprite[Count].Top := Bottom;
Das ist ein Array oder?
Und das wollte ich nicht!
Somit hat sich das erledigt.
Geh schlafen Emil, du bist doch wahrscheinlich schon die ganze Nacht wach.
Und höre auf deine Beiträge ständig nach zu editieren, man weiß gar nicht auf was man antworten soll.
Erstelle einfach einen neuen Beitrag.

Das von jaenicke gezeigte Sprite[Count].Top := Bottom; ist ein ganz normaler Zugriff auf eine Liste.
Ja, auch Listen können mit Integer-Indizes angesprochen werden.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#9

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 08:23
Ich wollte keine Arrays und das ist eins!
Sprite[Count].Top := Bottom;
Es ist ein indexbasierter Zugriff. Ob auf ein Array oder eine Liste kann man an der Zeile nicht unterscheiden.
Im Falle einer Liste läuft das ganze auf eine Index-Property mit einer Getter-Methode, die das Element zurückliefert.

Sinnvoll ist aus Performancegründen natürlich eher ohne die vielen Indexzugriffe zu arbeiten und das aktuelle Element in eine Variable zu packen:
Delphi-Quellcode:
var
  Sprites: TObjectList<TSprite>;
  Sprite: TSprite;
begin
  ...
  Sprite := Sprites[Count];
  Sprite.Top := ...;
  Sprite.Def := ...;
Meinst du das?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#10

AW: Record zu TStringlist hinzufügen

  Alt 13. Jun 2017, 08:02
Danke habe es vorhin versucht aber das lässt sich so einfach nicht vereinbaren mit den ganzen Kram.
Ich sehe da nur, dass da ein High(Sprite) ersetzt werden muss durch Sprite.Count - 1 wie im Beispiel und es muss noch das einzelne Sprite (Für die Liste wäre nebenbei Sprites im Plural sinnvoller, dann müsste ich das nicht betonen) erzeugt werden:
Delphi-Quellcode:
// statt Setlength(Sprite, Count + 1);
                Sprite.Add(TSprite.Create);

                Sprite[Count].Top := Bottom;
...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:46 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