![]() |
AW: Tagarray
Zitat:
gruss |
AW: Tagarray
Na Pointerlisten sind doch aus der Hexenküche der alten Säcke!
Gruß K-H |
AW: Tagarray
Keine Ahnung, ob ich mich jetzt blamiere ;-)
Nur mal so 'ne hingedaddelte Idee (ungetestet, nicht kompiliert, nur so mal eben hingehauen ;-))
Delphi-Quellcode:
procedure BubbleSort(var zorder: array of Integer; var faceorder: array of Integer);
var i : Integer; tempZ : Integer; tempFace : Integer; done : Boolean; begin repeat done := True; for i := Low(zorder) to High(zorder) - 1 do begin if zorder[i] > zorder[i + 1] then begin tempZ := zorder[i]; tempFace := faceorder[i]; zorder[i] := zorder[i + 1]; faceorder[i] := faceorder[i + 1]; zorder[i + 1] := tempZ; faceorder[i + 1] := tempFace; done := False; end; end; until done; end; |
AW: Tagarray
Danke :)
Daran habe ich auch schon gedacht wusste aber nicht nach welchen Kriterien ich sortieren soll. Fehler gibt es keinen nur sichtbare die ZOrder ist immer noch durcheinander. Hmmm.. vielleicht liegt es an meiner DLL muss das nochmal gegen prüfen. gruss |
AW: Tagarray
Irgendwie ist die Sortierung noch nicht in Ordnung.
Mit dem Bubblesort geht es nicht auch nicht nach meiner Änderung.
Delphi-Quellcode:
Es drehen sich alle im Kreis aber der Visuelle Effekt ist der einer Schlange.
procedure BubbleSort(var zorder: array of Integer; var faceorder: array of Integer);
var i : Integer; tempZ : Integer; tempFace : Integer; done : Boolean; begin repeat done := True; for i := 10 downto 1 do begin if zorder[i] > zorder[i + 1] then begin tempZ := zorder[i]; tempFace := faceorder[i]; zorder[i] := zorder[i + 1]; faceorder[i] := faceorder[i + 1]; zorder[i + 1] := tempZ; faceorder[i + 1] := tempFace; done := False; end; end; until done; end; Das letzte Icon ist das grüne Index 10 die anderen setzen sich jetzt alle dahinter. Bubblesort macht eigentlich nichts, wenn ich sie nicht verwende habe ich das gleiche verhalten. gruss |
AW: Tagarray
So auf den ersten Blick scheint das grundsätzlich in Ordnung zu sein. Aber
Delphi-Quellcode:
ist nicht so optimal
for i := 10 downto 1 do
Delphi-Quellcode:
wäre wohl besser (oder das high/low Gespann).
for i := length(zorder)-1 downto 0 do
Und wenn sich nichts tut, liegen die Daten vllt. schon sortiert vor? Gruß K-H P.S. Schöne Feiertage wünsch ich Dir. |
AW: Tagarray
Delphi-Quellcode:
for i := length(zorder)-1 downto 0 do
Es ist kein Dynamisches Array und die werte sind bekannt. Deshalb dürfte das von der Berechnung her erst einmal egal sein. Zitat:
Zitat:
Im Bild kannst du sehen das sich die Icons schlängeln. Wenn das 10 Icon (grün) durch ist müssen sich die anderen in der ZOrder über das davor liegende setzen.. wenn die Icons sich nach rechts drehen. Sind aber alle dahinter. sehe gerade ein Icon fehlt (kann ich später berichtigen ;) ) gruss |
AW: Tagarray
Zitat:
Delphi-Quellcode:
Hiernach hängt sich Zorder zumindest ein Dynamik-Mäntelchen über. Kontrollier das doch mal bitte im Debugger.
procedure BubbleSort(var zorder: array of Integer; var faceorder: array of Integer);
Und wenn dein kleinstes Element den Index 0 hat dann ist 1 für das kleinste Element nicht so optimal. Aber müßte dann der Index 10 nicht vor die Wand laufen?:gruebel: (Bereichsprüfung?) Gruß K-H |
AW: Tagarray
Zitat:
Trotzdem Danke. gruss |
AW: Tagarray
OK ich muss nochmal dran.
würde das vielleicht über TArray funktionieren? Also 2 Arrays sortieren? Hab mich da mal versucht aber irgendwie komme ich damit nicht so recht klar. TArray(A1, A2) ? Ich habe schon eine aber die kann ich leider nicht verwenden. Die Lösung\Vorschlag von hier funktioniert so leider nicht. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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 by Thomas Breitkreuz