Foro | | | | Abigail | ¡Hola Personas, Yo veces una algo geändertes Ejemplo para una Sortierung después de Substrings verwendet. Im Principio klappt el en efecto bastante wunderbar, aber de uno gewissen Größe, en me Satzgröße 248 Byte * ca. 400 Sätze, funktioniert el Sortierung el GRIDBOX bastante simplemente no mehr. So zwischen 400 y 500 Datensätzen es simplemente una Sortierung sólo después de oftmaligem Betätigen (si überhaupt) des 'Sortierbuttons' posible. Ist el una Bug oder Yo como irgendwo una Beschränkung überlesen??
Unten el Original Programa de el Ayuda
Declarar Handle Grid, btn1, btn2, btn3, btn4, btn5
Título de la ventana "Sortiertes Grid"
Ventana 600, 400
Grid = Crear("Gridbox", %HWnd, "Nummer;0;60;Name;0;100;Ort;0;120;Gehalt;0;60", 0, 10, 50, 340, 200)
btn1 = Crear("Button", %HWnd, "Sort", 10, 10, 60, 25)
btn2 = Crear("Button", %HWnd, "Sort", 75, 10, 60, 25)
btn3 = Crear("Button", %HWnd, "Sort", 170, 10, 60, 25)
btn4 = Crear("Button", %HWnd, "Sort", 290, 10, 60, 25)
btn5 = Crear("Button", %HWnd, "Ende", 500, 10,60, 25)
AddStrings(Grid, "500|Maier|Köln|4000")
AddStrings(Grid, "400|Schmidt|Hamburg|3000")
AddStrings(Grid, "300|Bauer|Mannheim|3500")
AddStrings(Grid, "200|Klein|Düsseldorf|3000")
AddStrings(Grid, "100|Fuchs|Stuttgart|7500")
Sinestar encargado Clicked(btn5)
WaitInput
ClearList 0
Move("HandleToList", Grid)
If Clicked(btn1)
SortList 5
ElseIf Clicked(btn2)
SortList "|", 2, 1
ElseIf Clicked(btn3)
SortList "|", 3, 1
ElseIf Clicked(btn4)
SortList "|", 4, 5
EndIf
ClearList Grid
Move("ListToHandle", Grid)
Case %Key = 2 : Romper
EndWhile
Gracias para Eure Antwort,
Abigail |
| | | | |
| | Jörg Sellmeyer | Yo glaube, como bist du simplemente a ungeduldig. Wenn viele Datensätze disponible son, dauert el Sortiervorgang simplemente algo länger. Besonders en el Interpretermodus macht se el entonces bemerkbar.
Yo dein Programa veces todavía algo geändert, así lo "ruhiger" se ejecuta. So se el Sortierroutine sólo aufgerufen, si uno el Buttons geklickt se.
Declarar Handle Grid, btn1, btn2, btn3, btn4, btn5
Título de la ventana "Sortiertes Grid"
Ventana 600, 400
Grid = Crear("Gridbox", %HWnd, "Nummer;0;60;Name;0;100;Ort;0;120;Gehalt;0;60", 0, 10, 50, 340, 200)
btn1 = Crear("Button", %HWnd, "Sort", 10, 10, 60, 25)
btn2 = Crear("Button", %HWnd, "Sort", 75, 10, 60, 25)
btn3 = Crear("Button", %HWnd, "Sort", 170, 10, 60, 25)
btn4 = Crear("Button", %HWnd, "Sort", 290, 10, 60, 25)
btn5 = Crear("Button", %HWnd, "Ende", 500, 10,60, 25)
var handle btn6 = Crear("Button", %HWnd, "Test", 400, 10,60, 25)
Proc SortMyList
Parámetros Int SortString
ClearList 0
Move("HandleToList", Grid)
SortList "|",SortString,1
ClearList Grid
Move("ListToHandle", Grid)
ENDPROC
Selección aleatoria
WhileLoop 1,1500,5
AddStrings(Grid, Formato$("000",&Loop) + "|Maier|Köln|" + Str$(Rnd(8000)))
AddStrings(Grid, Formato$("000",&Loop + 1) + "|Schmidt|Hamburg|" + Str$(Rnd(8000)))
AddStrings(Grid, Formato$("000",&Loop + 2) + "|Bauer|Mannheim|" + Str$(Rnd(8000)))
AddStrings(Grid, Formato$("000",&Loop + 3) + "|Klein|Düsseldorf|" + Str$(Rnd(8000)))
AddStrings(Grid, Formato$("000",&Loop + 4) + "|Fuchs|Stuttgart|" + Str$(Rnd(8000)))
Wend
Mientras que 1
WaitInput
Case Clicked(btn5):Romper
If Clicked(btn1)
SortMyList 1
ElseIf Clicked(btn2)
SortMyList 2
ElseIf Clicked(btn3)
SortMyList 3
ElseIf Clicked(btn4)
SortMyList 4
ElseIf Clicked(btn6)
imprimir "a"
EndIf
Case %Key = 2 : Romper
EndWhile
Jetzt wäre lo natürlich todavía interessant a wissen, ¿qué es exactamente du geändert hast, en ausschließen a puede, si a esta Los cambios liegt. |
| | | | |
| | Abigail | ¡Hola Jörg, danke para el Info, o Verbesserung. Mi Los cambios waren eigentlich sólo marginal. 1. Insgesamt 7 spalten en el Tabla, 2. natürlich Benennung y Größe el individual Spalten. Dazu natürlich para jede Spalte Auf y Ab Sortier-Button, also total 14 Stück. Nun, Yo mittlerweile una solución gefunden, el Aunque un wenig umständlich erscheint, aber funktioniert. Trotz el Menge el Sätze, Yo lo a 5000 probiert, en uno Zehntelsekunde sortiert. Sieht entonces ungefähr así de:
If Clicked(SORT[1]) ClearList 0 Move("HandleToList", GRID) SortList "|", 1 ,5 ClearList Grid Move("ListToHandle", Grid) ElseIf Clicked(SORT[2])
y así más a SORT[14] Das funktioniert wirklich sin jede Verzögerung incluso en el Interpreter Modus.
¿Por qué el Beispielroutine como
Mientras que ... ClearList 0 Move("HandleToList", GRID)
If Clicked(SORT[1]) SortList "|", 1 ,5 ElseIf Clicked(SORT[2]) SortList "|", 2 ,5 "" "" ElseIf Clicked(SORT14]) SortList "|", 7 ,-3 ENDIF
ClearList Grid Move("ListToHandle", Grid)
ENDWHILE
así unendlich träge de uno gewissen Größe, o. nada funktioniert, erschließt se No bastante.
Trotzdem Gracias para Su Tips, voluntad Yo veces morgen einsetzen en a sehen, si así auch funktioniert.
Saludo, Abigail |
| | | | |
| | maroro | ¡Hola en el Runde ...Gridboxen sortieren es auch gerade mein Thema. Dabei klappt el sortieren wunderbar einzig el Solución cada Spalte una Knopf a spendieren gefällt me garnicht. Como es posible una Clic en el Spaltenüberschrift a erkennen auch entonces korrekt si la Größe el Spalte verändert wurde?
Bin gespannt en euere Propuestas
maroro |
| | | | |
| | Thomas Freier | Ist hier enthalten: [...] |
| | | | |
| | maroro | Posesiones lo gefunden ...Gracias Thomas y si yo darf sería Yo, el entsprechenden Ver código fuente auch puesto. |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 4 subscriber: |