Foro | | | | Julian Schmidt | ¡Hola, Yo stehe gerade antes una Problema. Und zwar erstelle Yo en Listview.dll una Listview en una Tabcontrol. Diesem Listview sería Yo nun gerne por RaiseLine & RaiseColum otro Farben zuordnen. Diese Befehle scheinen allerdings en una Tabcontrol no a trabajo, como mein Listview no con meiner gewollte Farbdarstellung dargestellt se. Sobald Yo el Listview en el Ventana principal erstelle se el Listview con meiner gewollten Farbdarstellungen dargestellt! Wenn Yo el Listview en el Ventana principal erstelle kommt lo desafortunadamente a Komplikationen con otro Controls, weswegen lo así wichtig es en el Tabcontrol que se.
¿Cómo se puede Yo el Farbdarstellung uno Listview, welches en una Tabcontrol erstellt wurde, ändern?
LG
Julian57 |
| | | | |
| | Thomas Freier | Dieses Problema saber Yo eigentlich no. Fehler en deinem Code?
Declarar lvdll&,listview&,texto$,x&,z&,ilist&
$I Listview_Funktionen.inc
lvdll&=usedll("Listview.dll")
cls
var T&=CREATE("TABCTRL",%HWND,"Reiter1",10,10,400,360)
Var TAB2&=@InsertTab(T&,2,"Reiter2")
var ELEMENT1&=Control("DIÁLOGO","",$54001100,0,25,400,380,t&,0,%hInstance,$0)
InitMessages(%hwnd)
InitMessages(ELEMENT1&)
var LVIEW&=CREATELISTVIEW(ELEMENT1&,%HINSTANCE,0,$FFFFFF,-1,$21)
InsertColumn LVIEW&,"SPALTE 1",60,0
InsertColumn LVIEW&,"SPALTE 2",60,0
InsertColumn LVIEW&,"SPALTE 3",60,0
whileLoop 10
SetItem LVIEW&,"123","345","678"
wend
SHOWLISTVIEW(LVIEW&,20,40,325,200)
text$="101"
RaiseColumns(LVIEW&,addr(texto$),0,Rgb(185,209,249))
Var ELEMENT2&=Control("DIÁLOGO","",$54001100,0,25,400,380,t&,0,%hInstance,$0)
InitMessages(ELEMENT2&)
var LVIEW2&=CREATELISTVIEW(ELEMENT2&,%HINSTANCE,0,$FFFFFF,-1,$21)
InsertColumn LVIEW2&,"Test 1",60,0
InsertColumn LVIEW2&,"Test 2",60,0
InsertColumn LVIEW2&,"Test 3",60,0
whileLoop 10
SetItem LVIEW2&,"abc","def","ghu"
wend
SHOWLISTVIEW(LVIEW2&,20,40,325,200)
text$="101"
RaiseColumns(LVIEW2&,addr(texto$),0,Rgb(185,209,249))
Whileloop 0,10,2
RaiseLine(LVIEW2&,(&bucle+1000000),0,Rgb(0,128,128))
Endwhile
RaiseLine(LVIEW2&,600,0,Rgb(128,128,128))
usermessages 16'--Beenden abfangen
WHILE 1
WAITINPUT
caso %umessage=16:romper'---Ende
Case @TabChanged(T&): TAB_WECHSEL GetActiveTab(T&)
ENDWHILE
CloseMessages(%hwnd)
CloseMessages(ELEMENT1&)
CloseMessages(ELEMENT2&)
FREEDLL lvdll&
DestroyWindow(%hwnd)
End
Proc TAB_WECHSEL
Parámetros T_nr%
IF T_nr% = 0
Showwindow(Element1&,1)
Showwindow(Element2&,0)
ElseIF T_nr% = 1
Showwindow(Element1&,0)
Showwindow(Element2&,1)
EndIf
ENDPROC
|
| | | | |
| | Julian Schmidt | Sí, Yo InitMessages, CloseMessages no spezifisch en el TabControl angewand. Nun funktioniert el einfärben. Gracias Thomas!
Aunque Yo festgestellt, dass el Farben de y a sólo después de una klick, o. scrollen innerhalb des Listview erscheinen,obwohl Yo eigentlich con UpdateListview el Listview aktualisiere!? Weiß alguien Rat? |
| | | | |
| | Thomas Freier | Sí, es manchmal una Problema. Intento veces beim TAB-Wechsel "nach a färben"
ElseIF T_nr% = 1
Showwindow(Element1&,0)
Showwindow(Element2&,1)
Whileloop 0,10,2
RaiseLine(LVIEW2&,(&bucle+1000000),0,Rgb(0,128,128))
Endwhile
RaiseLine(LVIEW2&,600,0,Rgb(128,128,128))
oder porque meist es el 1.TAB OK. |
| | | | |
| | Julian Schmidt | Yo tue eig. después de färben, todavía kommt lo de y a a Problema.
Noch una Cuestión: Kann uno ermitteln, si el Sortierung el Zeilen geändert wurde?. Sobald uno todos Zeilen después de uno Spalte aufwärts, abwärts sortiert, stimmt el Farbgebung por desgracia, no mehr. Deswegen sería Me gusta abfragen y si nötig, el Listview neu einfärben. Alguien una Concepto? |
| | | | |
| | | Färben sólo si la TAB aktiv es? Usted puede sí abfragen, si el Spaltenbutton gedrückt wurde. Un Spalte con Farbwert en 0 Breite. Erst todos Zeilen entfärben y luego el Farbwert auslesen y Línea para Línea färben.Wenn el Spaltenbreiten no verändert voluntad dürfen es kein Problema. Sonst abfragen si el Spaltenbreite des Farbwertes verändert wurde y otra vez en 0 conjunto. Saludo Thomas |
| | | | |
| | Julian Schmidt | Unbenannt (27.01.12)
Usted puede sí abfragen, si el Spaltenbutton gedrückt wurde. Un Spalte con Farbwert en 0 Breite. Erst todos Zeilen entfärben y luego el Farbwert auslesen y Línea para Línea färben.Wenn el Spaltenbreiten no verändert voluntad dürfen es kein Problema. Sonst abfragen si el Spaltenbreite des Farbwertes verändert wurde y otra vez en 0 conjunto.
Sry. Yo verstehe no como Si es usted el media? ¿Cómo se puede Yo ermitteln si el Sortierung des Zeilen geändert wurde? |
| | | | |
| | | Usted bestimmst doch wo sortiert voluntad darf encima {{FROMQUOT2}}
Erklärung No se ha encontrado: ASORTLISTVIEW(H,B,A)
AUTOSORTLISTVIEW H,S1,S2,S3,...,S12
BESTIMMT, EN WELCHER ART Y WEISE JEDE EINZELNE SPALTE UNO LISTVIEWS SORTIERT VOLUNTAD SE, SOBALD EL ANWENDER EL ENTSPRECHENDEN SPALTENBUTTON GEDRÜCKT HA.
, entonces kannst du - siehe Ejemplo Alle_Maustasten_abfangen.prf una Linksklick en el Listview prüfen, en welcher Spalte el Linksklick en lugar de fand. War lo una Spalte en el una Sortierung zulässig war, así wurde neu sortiert y el Zeilen necesario, si la Farbgebung a una Línea gebunden war, neu gefärbt voluntad. |
| | | | |
| | Julian Schmidt | Ok así funktioniert zumindest el Abfragen. Lo treten allerdings immernoch diverse Problemas con el aktualisieren en!
Hier el wesentliche Ver código fuente.
'...
mientras que 1
waitinput 30
'...
if (getfocus(neu&) or menuitem(101)) and (Getactivetab(hTab1&)<>4)'Wenn Button Hinzufügen gedrückt wurde....
'...
ColorListview(LV&[Getactivetab(hTab1&)])'no es korrekt aktualisiert
Endif
'...
x&=GetVar(4)
If x&<>-1'Wenn una beliebiger Spaltbutton gedrückt wurde...
ColorListview(LV&[Getactivetab(hTab1&)])'no es korrekt aktualisiert
EndIf
'...
Endwhile
'...
Proc ColorListview
Parámetros hdl&
declarar spalte&
caso hdl&=LV&[0] : spalte&=4
caso hdl&=LV&[1] : spalte&=5
caso hdl&=LV&[2] : spalte&=2
caso hdl&=LV&[3] : spalte&=2
var erledigt&=RGB(0,190,0)
var unerledigt&=RGB(255,30,30)
whileloop 0,GetLines(hdl&)-1,1
GetItemText(hdl&,bereich#,spalte&,&bucle)
caso String$(bereich#,0)="Erledigt" : RaiseLine(hdl&,&bucle+1000000,RGB(255,255,255),erledigt&)
caso String$(bereich#,0)="Unerledigt" : RaiseLine(hdl&,&bucle+1000000,RGB(255,255,255),unerledigt&)
Endwhile
UpdateListview(hdl&)
Volver 1
ENDPROC
|
| | | | |
| | Detlef Jagolski | Intento veces el!
mientras que 1
waitinput 30
'...
if (getfocus(neu&) or menuitem(101)) and (Getactivetab(hTab1&)<>4)'Wenn Button Hinzufügen gedrückt wurde....
'...
ColorListview(LV&[Getactivetab(hTab1&)])'no es korrekt aktualisiert
~RedrawWindow(LV&[Getactivetab(hTab1&)],0,0, ~RDW_FRAME | ~RDW_INVALIDATE | ~RDW_ALLCHILDREN | ~RDW_UPDATENOW | ~RDW_INTERNALPAINT)
Endif
'...
x&=GetVar(4)
If x&<>-1'Wenn una beliebiger Spaltbutton gedrückt wurde...
ColorListview(LV&[Getactivetab(hTab1&)])'no es korrekt aktualisiert
~RedrawWindow(LV&[Getactivetab(hTab1&)],0,0, ~RDW_FRAME | ~RDW_INVALIDATE | ~RDW_ALLCHILDREN | ~RDW_UPDATENOW | ~RDW_INTERNALPAINT)
EndIf
'...
Endwhile
'...
Proc ColorListview
Parámetros hdl&
declarar spalte&
caso hdl&=LV&[0] : spalte&=4
caso hdl&=LV&[1] : spalte&=5
caso hdl&=LV&[2] : spalte&=2
caso hdl&=LV&[3] : spalte&=2
var erledigt&=RGB(0,190,0)
var unerledigt&=RGB(255,30,30)
whileloop 0,GetLines(hdl&)-1,1
GetItemText(hdl&,bereich#,spalte&,&bucle)
caso String$(bereich#,0)="Erledigt" : RaiseLine(hdl&,&bucle+1000000,RGB(255,255,255),erledigt&)
caso String$(bereich#,0)="Unerledigt" : RaiseLine(hdl&,&bucle+1000000,RGB(255,255,255),unerledigt&)
Endwhile
UpdateListview(hdl&)
Volver 1
ENDPROC
|
| | | | |
| | Julian Schmidt | | | | | |
| | | ~Redraw... löst viele Problemchen, aber hast du lo después de Franks, el sí sparsam programmiert, Ejemplo veces intenta. d.h., n-1 con &loop+100000 y letzte Línea con n?
var Spalte&=1
var texto$=""
Whileloop 0,(GetCount(LVIEW2&)-2),1
texto$=trim$(GetText $(LVIEW2&,&bucle,Spalte&))
SELECT texto$
CASEOF "erledigt"
RaiseLine(LVIEW2&,(&bucle+1000000),0,Rgb(109,248,103))'todos unerledigten färben
CASEOF "unerledigt"
RaiseLine(LVIEW2&,(&bucle+1000000),0,Rgb(210,222,222))'todos unerledigten färben
OTHERWISE
RaiseLine(LVIEW2&,(&bucle+1000000),0,Rgb(255,255,255))'färben
ENDSELECT
Endwhile
text$=trim$(GetText $(LVIEW2&,(GetCount(LVIEW2&)-1),Spalte&))
SELECT texto$
CASEOF "erledigt"
RaiseLine(LVIEW2&,(GetCount(LVIEW2&)-1),0,Rgb(109,248,103))'todos unerledigten färben
CASEOF "unerledigt"
RaiseLine(LVIEW2&,(GetCount(LVIEW2&)-1),0,Rgb(210,222,222))'todos unerledigten färben
OTHERWISE
RaiseLine(LVIEW2&,(GetCount(LVIEW2&)-1),0,Rgb(255,255,255))'färben
ENDSELECT
|
| | | | |
|
RespuestaTema opciones | 10.770 Views |
ThemeninformationenDieses Thema ha 4 subscriber: |