| |
|
|
GDL | Hallo und wieder ich,
In manchen Anwendungen, wo wenig Platz ist, sieht man des öfteren mehrere Checkboxen auf ner scrollbaren Unterlage, die wie ne Listbox aussieht.
Nun die Frage,
Wenn die Unterlage wirklich ne Listbox ist, wie bekommt man dann die Checkboxen auf die Listbox, oder wird ein Listboxähnliches Control verwendet?
Danke.
Servus Georg |
|
|
| |
|
|
|
| Das nennt sich Scroll-Area. Dafür wird meist ein Static mit HSCROLL und VSCROLL Style genommen. Mit SetParent kann man dann die Checkboxes zu Childs der Scroll-Area machen. Hab leider noch keine entsprechenden Codes in Profan gesehen, sollte aber funzen
//Edit Ich glaube, Du meinst doch ein Listview, dann vergiß das vorher geschriebene erstmal. Ich hab an was anderes gedacht |
|
|
| |
|
|
|
Frank Abbing | Hi.
bei meine Listview.dll Demos ist ein Beispiel dabei, was ähnliches macht. Musst mal durchsehen, komm jetzt nicht auf den genauen Namen. |
|
|
| |
|
|
|
| Die Listview.Dll ist hierfür natürlich hervorragend geeignet.
Auch inframes (bei CodeSnippets) können Dir helfen wenn du etwas Komplexeres scrollen möchtest.
Salve, iF. |
|
|
| |
|
|
|
GDL | Danke euch allen für die Tipps, werde mich mal durchwursteln.
Servus Georg |
|
|
| |
|
|
|
GDL | Habe es mit inframe hinbekommen.Die Proc inframe hat nen Syntaxfehler
soll: in_yr& KompilierenMarkierenSeparierenIn_hd&=Control(STATIC,,1409286400,0,0,If(In_xr&<In_xs&,In_xs&,In_xr&),In_yr&+10,In_hd&,0,%Hinstance,$0)Handle inneres Fenster
ist: in _yr& KompilierenMarkierenSeparierenIn_hd&=Control(STATIC,,1409286400,0,0,If(In_xr&<In_xs&,In_xs&,In_xr&),In _yr&+10,In_hd&,0,%Hinstance,$0)Handle inneres Fenster
Servus Georg |
|
|
| |
|
|
|
GDL | Hallo iF,
Doch noch nen Problem gefunden.Bei deinem Snippet verschieben sich die Checkkästchen beim Anklicken, sobald man einmal zuvor irgendeinen Scrollbalken betätigt hat. Wenn man danach dann wieder den Scrollbalken betätigt, stimmen die Anordnungen wieder.Sieht echt lustig aus die hüpfenden Checkboxen.
Servus Georg |
|
|
| |
|
|
|
Michael Dell | Hallo,
könnte das hier helfen? (List&CheckBox Fake) KompilierenMarkierenSeparierenOrginal: Richard Maurukas
bearbeitet: Michael Dell
ListView Funktionen
Def GSC(1) !User32.Dll,GetSysColor
Def gSelAnz(1) sendmessage (&(1),$1032,0,0)
Def dItemAnz(1) sendmessage (&(1),$1004,0,0)
Def gItemTxt(3) Sendmessage (&(1),$102D,&(2),&(3))
Def DelCol(2) sendmessage (&(1),$101C,%(2),0)
Def DelItem(2) sendmessage (&(1),$1008,%(2),0)
Def DelAllItems(1) sendmessage (&(1),$1009,0,0)
Def gItemState(3) sendmessage (&(1),$102C,%(2),%(3))
Def sColWidth(3) sendmessage (&(1),$101E,%(2),%(3))
Def gLVTxtcol(1) sendmessage (&(1),$1023,0,0) hole Text-Farbe
Def gLVTxtbkcol(1) sendmessage (&(1),$1025,0,0) hole TextHintergrund-Farbe
Def gLVbkcol(1) sendmessage (&(1),$1000,0,0) hole Hintergrund-Farbe
Def sLVTxtcol(2) sendmessage (&(1),$1024,0,&(2)) setze Text-Farbe
Def sLVTxtbkcol(2) sendmessage (&(1),$1026,0,&(2)) setze TextHintergrund-Farbe ($FFFFFFFF = -1 [Transparent?])
Def sLVbkcol(2) sendmessage (&(1),$1001,0,&(2)) setze Hintergrund-Farbe
Def sLVStyle(2) sendmessage (&(1),$1036,0,&(2)) setze Style - $01 GRIDLINE | $02 SUBITEMIMG | $04 CHECKBOX
$08 TRACKSEL | $20 Fullrowsel (Report)
Declare Lview&,Zeile#
Struct zInhalt = Mask&,Ind&,d01&,d02&,d03&,ptrText&,LenTxt&,d08&
PROC Lview_INIT
LView& = control(SysListView32,Hallolo!!,$50814803,10,10,sub(%winright,26),sub(%Winbottom,46),%Hwnd,$0100,%Hinstance)
sLVStyle(LView&,$0C)
ENDPROC
PROC AddZeile
Parameters LVHndl&,Index&,Text$
Dim Zeile#,zInhalt
Clear Zeile#
Zeile#.Mask& = $0001
Zeile#.Ind& = Index&
Zeile#.ptrText& = Addr(Text$)
Zeile#.LenTxt& = Len(Text$)
sendmessage(LVHndl&,$1007,0,Zeile#)
sendmessage(LVHndl&,$102E,Index&,Zeile#)
dispose Zeile#
ENDPROC
WindowStyle 26
Window Add(%maxX,10),0-400,300
Windowtitle ListCheckbox
ShowWindow(%HWnd,0)
Window 0,0-400,300
Cls GSC(15)
Lview_INIT
AddZeile(LView&,0,1. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test.)
AddZeile(LView&,1,2. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test.)
AddZeile(LView&,2,3. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test.)
AddZeile(LView&,3,4. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test.)
AddZeile(LView&,4,5. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test. Dies ist ein Test.)
ShowWindow(%HWnd,1)
Sleep 4000
DelItem(LView&,2) Löscht die 3. Zeile
whilenot Equ(%Key,2)
waitinput
EndWhile
End
|
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 21.09.2005 ▲ |
|
|
|
|
| Besten Dank Michael,
der Code nimmt mir sehr viel Arbeit ab!!!
Eine Checklistbox läßt sich auch direkt mit Profan aus einer normalen Listbox erzeugen (Checkboxen mehrzeilig nebeneinander, rechtsbündig etc.). Ich hatte das Control schon mal hier auf meinem Rechner - habe dann leider gedacht, daß das Notieren des Codes nicht nötig ist (war stinkeinfach zu erzeugen), und jetzt komme ich nicht mehr drauf (son Scheiß ).
Gruß
AH |
|
|
| |
|
|
|
Michael Dell | Hallo Andreas,
darum gings schon mal. Meinst du den Code: [...]
Stell den ihn mal hier dazu: KompilierenMarkierenSeparierenAutor: Jörg Sellmeyer
window 80,30-650,500
declare Liste%,Check%[20],Zähler%,Text$,Position%
Liste%=createlistbox(%hwnd,,50,50,200,200)
sendmessage(Liste%,416,0,20)---Zeilenhöhe 20 = Höhe einer Checkbox
while Zähler%<21
addstring(Liste%, )-------Dummy-Eintrag
Text$=Feld +str$(Zähler%)
Position%=Zähler%*20--------20 > Höhe einer Checkbox
Check%[Zähler%]=createcheckbox(Liste%,Text$,0,Position%,185,20)
inc Zähler%
endwhile
waitkey
|
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 21.09.2005 ▲ |
|
|
|
|
| Nein, meine ich nicht. Das geht auch ohne Checkboxen zu erzeugen. Ich hatte damals mit Messages und Stiles herumgespiel und bin durch Zufall auf eine Listbox mit diesen Eigenschaften gekommen... |
|
|
| |
|
|
|
GDL | Hallo Michael,
so ähnlich wie dein letztes Posting(also ne Checkbox auf nen leeren Listboxeintrag erstellen), hatte ich auch schon getestet. Aber überall dasselbe, bei meinen vorherigen Versuchen,bei Ifs Inframe und bei deinem letzten Code.
Die Checkboxen lassen sich aktivieren und deaktivieren, solange der Scrollbalken nicht bewegt wird, sobald der Scrollbalken bewegt wird und danach eine Checkbox angeklickt wird, verscjiebt sich diese auf dem Listboxcontrol. Vielleicht wieder mal nen ME Problem? Glaub ich aber net, in anderen Programmen gehen Scrollbare Checkboxfelder ja auch.
Servus Georg |
|
|
| |
|
|