Delphi-PRAXiS
Seite 4 von 10   « Erste     234 56     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)

TiGü 13. Jun 2017 07:11

AW: Redord zu TStringlist hinzufügen
 
Zitat:

Zitat von EWeiss (Beitrag 1374354)
Zitat:

Was willst Du denn immer mit dem Array?
Das ist die frage ;)
Ich will es nicht.

Schlaf mal drüber und dann danach mit frischen Kräften ans Werk.

Vielleicht nochmal kurz die Grundlagen nachlesen: https://downloads.delphi-treff.de/DelphiStarter.pdf ab Seite 132.

Alle wesentlichen und richtigen Lösungen wurden dir hier schon genannt.
Du musst dich nur von alten Denkmustern lösen und einfach übernehmen was DeddyH und jaenicke in den letzten paar Beiträgen gezeigt haben.

EWeiss 13. Jun 2017 07:16

AW: Record zu TStringlist hinzufügen
 
Zitat:

Du musst dich nur von alten Denkmustern lösen und einfach übernehmen was DeddyH und jaenicke in den letzten paar Beiträgen gezeigt haben.
Ja, ja..
Wenn man nicht davor sitzt ist alles einfach.

ganz kleines Beispiel. (Das ist noch eins der einfachsten Dinge)
Dann setz mir das mal um auf der Basis wie hier angegeben.
Ohne Array wohlbemerkt.
Delphi-Quellcode:
  if Assigned(Sprite) then
  begin
    if High(Sprite) > ID_MAIN then
    begin
      for K := ID_FIRST to High(Sprite) 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;
Wenn man keinen Index mehr hat um die Sprites zu identifizieren ist das nicht mal gerade so dahin geworfen.

gruss

jaenicke 13. Jun 2017 07:32

AW: Record zu TStringlist hinzufügen
 
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;

EWeiss 13. Jun 2017 07:39

AW: Record zu TStringlist hinzufügen
 
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

jaenicke 13. Jun 2017 07:45

AW: Record zu TStringlist hinzufügen
 
Delphi-Quellcode:
type
  TSprite = class
    CtrlName: WideString;
    CtrlIndex: Integer;
    ...
  end;

var
  Sprite: TObjectList<TSprite>;

EWeiss 13. Jun 2017 07:48

AW: Record zu TStringlist hinzufügen
 
Zitat:

Zitat von jaenicke (Beitrag 1374361)
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

DeddyH 13. Jun 2017 07:56

AW: Record zu TStringlist hinzufügen
 
Wieso nicht? Ich sehe da auf Anhieb nichts in Deinem Code, das unbedingt Records und Arrays brauchen würde.

jaenicke 13. Jun 2017 08:02

AW: Record zu TStringlist hinzufügen
 
Zitat:

Zitat von EWeiss (Beitrag 1374362)
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
Delphi-Quellcode:
High(Sprite)
ersetzt werden muss durch
Delphi-Quellcode:
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;
...

EWeiss 13. Jun 2017 08:04

AW: Record zu TStringlist hinzufügen
 
Zitat:

Zitat von DeddyH (Beitrag 1374363)
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 ?

Delphi-Quellcode:
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

DeddyH 13. Jun 2017 08:17

AW: Record zu TStringlist hinzufügen
 
Nochmal ganz langsam: wie spricht man ein Array-Element an?
Delphi-Quellcode:
Array[Index]
Und ein Listenelement?
Delphi-Quellcode:
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 Uhr.
Seite 4 von 10   « Erste     234 56     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