| |
|
|
- Seite 1 - |
|
Julian Schmidt | Woran scheitert hier das markieren und abwählen aller Einträge in der Mehrfachauswahl-Listbox? KompilierenMarkierenSeparierendeclare 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 ▲ |
|
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
Jörg Sellmeyer | Du hast die falsche Message verwendet und Du kannst es einfacher machen: KompilierenMarkierenSeparieren
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&)
Unklar ist mir, warum Du hier KompilierenMarkierenSeparieren GetCursel verwendest. Du willst doch alle (ent-)markieren. Also müßtest Du dann schon GetCount nehmen. Aber -1 ist besser. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 28.04.2011 ▲ |
|
|
|
|
|
| Mit den Variablen kannst du auch wohl immer noch nicht umgehen, obwohl du in deinem letzten Thread schon wiederholt darauf hingewiesen wurdest. KompilierenMarkierenSeparieren hier greift wohl die automatische Typenwandlung, aber das kann auch mal schiefgehen. 0 = eine Nummer, "0" ist ein String und du willst ja text$[] |
|
|
| |
|
|
|
Julian Schmidt | Hab mein Minibeispiel mal etwas erweitert. KompilierenMarkierenSeparierendeclare 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
Endwhile
|
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 29.04.2011 ▲ |
|
|
|