| |
|
|
Georg Teles | Guten demain,
fand hierzu pas wirklich quoi ausser viele gute Drag & Drop Beispiele avec Listen ici [...] - habe provisorisch en supplément un "Einträge-schiebe-Workarea" pour GridBoxen m.H. de LvSelect gebastelt
salut
EDIT: comment toujours pas entier parfait, si on entre UP & DOWN wechselt, springen qui Einträge um 2 Positionen, pfeile la fois plus daran ...
EDIT: ici funktionierende Version, entier sans LvSelect
$H Commctrl.ph
Déclarer grid&
Déclarer up&, down&
CLS
'unsortierte Grid weil sonst cet Workarea keinen Sinn ergibt ;D
grid& = Créer("GridBox", %HWnd, "Links;0;180;Mitte;2;100;Rechts;1;80", 0, 5, 5, 400, 200)
AddStrings(grid&,"1|1|1")'Testeiträge
AddStrings(grid&,"2|2|2")
AddStrings(grid&,"3|3|3")
AddStrings(grid&,"4|4|4")
AddStrings(grid&,"5|5|5")
AddStrings(grid&,"6|6|6")
AddStrings(grid&,"7|7|7")
up& = Créer("Button",%HWnd,"UP",5,220,100,20)
down& = Créer("Button",%HWnd,"DOWN",115,220,100,20)
Tandis que 1
CheckStat()'Buttons de-/ aktivieren
waitinput
Si Clicked(up&)
moveUP()
ElseIf Clicked(down&)
moveDOWN()
EndIf
Endwhile
Proc CheckStat
Si GetCount(grid&) > 0
EnableWindow up&,1
EnableWindow down&,1
D'autre'si liste vide, deaktiviere Buttons !
EnableWindow up&,0
EnableWindow down&,0
EndIf
Si GetSelCount(grid&) = 1
EnableWindow up&,1
EnableWindow down&,1
D'autre'si plusieurs Einträge markiert sommes, deakiviere Buttons !
EnableWindow up&,0
EnableWindow down&,0
EndIf
ENDPROC
Proc moveUP
Déclarer tx$, pos&
Si GetCurSel(grid&) > 0'si pas erste Position bzw. pas Pos. = 0 angeklickt wurde, ensuite ...
pos& = GetCurSel(grid&)'... position auslesen
tx$ = GetString$(grid&,pos&)'Eintrag qui Position Sauver - WICHTIG: GetString$ verwenden là
'GetText$ seulement la première Spalte ausließt - GetString$ ließt komplette la ligne aus
DeleteString(grid&,pos&)'alten Eintrag effacer ...
InsertString(grid&,(pos&-1),tx$)'... à Position MINUS 1 hiinzufügen
tx$ = $ Substr(tx$,1,"|")'chez Grid avec 1 Spalte & Listbox pas nötig
Sélectionnez String(grid&,-1,tx$)'chez Grid avec 1 Spalte & Listbox pas nötig
SetFocus(grid&)'Fokus sur Grid avec cela Button pas deaktiviert wird s. Proc CheckStat
EndIf
ENDPROC
Proc moveDOWN
Déclarer tx$, pos&
Si (GetCurSel(grid&) < (GetCount(grid&)-1)) & (GetCurSel(grid&) >= 0)'si Pos. entre 1. (pos=0) et letztem Eintrag ist, ensuite ...
pos& = GetCurSel(grid&)'... position auslesen
tx$ = GetString$(grid&,pos&)'Eintrag qui Position Sauver - WICHTIG: GetString$ verwenden là
DeleteString(grid&,pos&)'alten Eintrag effacer ...
InsertString(grid&,(pos&+1),tx$)'... à Position PLUS 1 hiinzufügen
tx$ = $ Substr(tx$,1,"|")'chez Grid avec 1 Spalte & Listbox pas nötig
Sélectionnez String(grid&,-1,tx$)'chez Grid avec 1 Spalte & Listbox pas nötig
setfocus(grid&)'Fokus sur Grid avec cela Button pas deaktiviert wird s. Proc CheckStat
EndIf
ENDPROC
|
|
|
| |
|
|
|
Georg Teles | Vorhin un kleiner faute gewesen, daher sprang il um 1-2 Zeilen ... chez Grids avec plus que 2 Spalten muss beachtet volonté, dass beim Selektieren qui la ligne seulement pour erster Spalte gesucht wird ! daher
cela était mon Denkfehler vorhin et il donnais avec chez GetCurSel -1 zurück mais maintenant ist qui Code net ! |
|
|
| |
|
|