| |
|
|
- page 1 - |
|
Julian Schmidt | Woran scheitert ici cela markieren et abwählen aller Einträge dans qui Mehrfachauswahl-Listbox? KompilierenMarqueSéparationdeclare choosedialog&,listbox&,aktiontuen&,markall&,delmark&,text$[]
var StringCount%=3
text$[1]=0
text$[2]=1
text$[3]=2
windowstyle 24
choosedialog&=Create("Window",%hwnd,"Auswahl-Dialog",%MaxX\2,%MaxY\3,500,400)
listbox&=Create("ListBox", choosedialog&, 2, 20, 20, 250, Height(choosedialog&)-40)
Create("Text",choosedialog&,"Bitte wählen Sie Einträge, auf dennen eine Aktion ausführt werden soll aus.",290,30,190,60)
whileloop StringCount%
AddString(listbox&,text$[&loop])
Endwhile
MoveListToHandle(listbox&)
aktiontuen&=@Create("Button",choosedialog&,"Aktion ausführen",290,Height(choosedialog&)-80,185,60)
markall&=@Create("Button",choosedialog&,"Alle Markieren",290,110,185,40)
delmark&=@Create("Button",choosedialog&,"Markierungen aufheben",290,160,185,40)
while 1
waitinput
if getfocus(markall&)
whileloop GetCurSel(listbox&)+1
Sendmessage(listbox&,$0186,&loop-1,0)
Setfocus(listbox&)
Endwhile
elseif getfocus(delmark&)
whileloop GetCurSel(listbox&)+1
Sendmessage(listbox&,$0186,&loop-1,1)
Setfocus(listbox&)
Endwhile
elseif getfocus(aktiontuen&)
whileloop GetCurSel(listbox&)+1
case GetState(listbox&, &loop-1)>0 : Messagebox(text$[&loop],"Info",0)
Endwhile
end
elseif %key=2
end
Endif
Endwhile
|
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 28.04.2011 ▲ |
|
|
|
|
« cette Beitrag wurde comme Solution gekennzeichnet. » |
|
Jörg Sellmeyer | tu as qui falsche Message verwendet et tu peux es einfacher faire: KompilierenMarqueSéparation
if getfocus(markall&)
Sendmessage(listbox&,$0185,1,-1)'lb_SetSel statt lb_SetCurSel
'außerdem hast Du die letzten Parameter vertauscht. Der vorletzte bestimmt, ob markiert wird. Der letzte bestimmt den Eintrag. -1 steht für alle Einträge
elseif getfocus(delmark&)
Sendmessage(listbox&,$0185,0,-1)
elseif getfocus(aktiontuen&pan>
Unklar c'est moi, pourquoi Du ici KompilierenMarqueSéparation GetCursel verwendest. tu veux doch alle (ent-)markieren. alors müßtest Du ensuite déjà GetCount prendre. mais -1 ist besser. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 28.04.2011 ▲ |
|
|
|
|
|
| avec den Variablen peux du aussi wohl toujours pas tourner autour de, quoique du dans deinem letzten Fil déjà wiederholt puis hingewiesen wurdest. KompilierenMarqueSéparationtext$[1]=0
text$[2]=1
text$[3]=2
ist falsch
text$[1]="0"
text$[2]="1"
text$[3]="2"
ist rich >
ici greift wohl qui automatische Typenwandlung, mais cela peux aussi la fois schiefgehen. 0 = une numéro, "0" est un String et tu veux oui text$[] |
|
|
| |
|
|
|
Julian Schmidt | Hab mon Minibeispiel la fois quelque chose erweitert. KompilierenMarqueSéparationdeclare choosedialog&,listbox&,aktiontuen&,markall&,delmark&,text$[]
var StringCount%=5
text$[1]="eins"
text$[2]="zwei"
text$[3]="drei"
text$[4]="vier"
text$[5]="fünf"
windowstyle 24
choosedialog&=Create("Window",%hwnd,"Auswahl-Dialog",%MaxX\2,%MaxY\3,500,400)
listbox&=Create("ListBox", choosedialog&, 2, 20, 20, 250, Height(choosedialog&)-40)
Create("Text",choosedialog&,"Bitte wählen Sie Einträge, auf dennen eine Aktion ausführt werden soll aus.",290,30,190,60)
whileloop StringCount%
AddString(listbox&,text$[&loop])
Endwhile
MoveListToHandle(listbox&)
aktiontuen&=@Create("Button",choosedialog&,"Aktion ausführen",290,Height(choosedialog&)-80,185,60)
markall&=@Create("Button",choosedialog&,"Alle Markieren",290,110,185,40)
delmark&=@Create("Button",choosedialog&,"Markierungen aufheben",290,160,185,40)
var ukmark&=@Create("Button",choosedialog&,"Markierungen umkehren",290,210,185,40)
while 1
waitinput
if getfocus(markall&)
Sendmessage(listbox&,$0185,1,-1)
elseif getfocus(delmark&)
Sendmessage(listbox&,$0185,0,-1)
elseif getfocus(ukmark&)
whileloop GetCount(listbox&)
if GetState(listbox&, &loop-1)>0
Sendmessage(listbox&,$0185,0,&loop-1)
else
Sendmessage(listbox&,$0185,1,&loop-1)
Endif
Endwhile
setfocus(choosedialog&)
elseif getfocus(aktiontuen&)
whileloop GetCount(listbox&)
case GetState(listbox&, &loop-1)>0 : Messagebox(text$[&loop],"Info",0)
Endwhile
end
elseif %key=2
end
Endif
ref='./../../funktionsreferenzen/XProfan/endwhile/'>Endwhile
|
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 29.04.2011 ▲ |
|
|
|