| |
|
|
- Seite 1 - |
|
ByteAttack | Hallo! Sowas ist wohl nicht irgendwie mit einem Super-Trick möglich? |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
Frank Abbing | Irgendwie will mir dazu keine passende Verwaltung und Syntax einfallen... |
|
|
| |
|
|
|
ByteAttack | Frank? Mein großer Held? Ihm will nichts einfallen? *Heul* *Schnief* Falle ja fast vom Glauben ab....
... aber nur fast! |
|
|
| |
|
|
|
Jörg Sellmeyer | Syntax wäre vielleicht MarkText(LV&,B#,Sp%,Z%,Text$). Fundstellen in Bereich B# als Long: Adresse0 = Spalte,Adresse1 = Zeile1,Adresse2 = Zeile2,Adresse4,ZeileXX Rückgabewert der Funktion ist die Anzahl der Fundstellen in der Spalte. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.10.2007 ▲ |
|
|
|
|
Frank Abbing | Nein, so wird das nicht klappen. Das Umfärben muss ja live im Subclassing passieren, also immer wenn das Listview neu gezeichnet wird. Dazu muss bei jedem Itemtext geprüft werden, ob Teile davon ein zweites mal in anderer Farbe gezeichnet werden müssen. Und die Prüfung muss anhand einer Datenbank erfolgen. Folglich wird eher sowas nötig sein:
SetItemMark(listview,spalte,marktext$,farbe)
Ich werd mal prüfen, ob das Einfärben in der Form überhaupt geht. |
|
|
| |
|
|
|
Thomas Freier | @ Frank: ist es denn jetzt schon möglich ein einzelndes Item andersfarbig darzustellen? Dieses war ja auch schon einmal ein Thema in der Vergangenheit. |
|
|
| |
|
|
|
Frank Abbing | Bislang ist es möglich, ganze Spalten oder Zeilen einzufärben. Ich mache mir aber mal Gedanken zu der Sache. |
|
|
| |
|
|
|
Thomas Freier | Nur so als Gedankenspielerei: oder es gibt die Möglichkeit ein Item zu selektieren. Damit könnten alle Fundstellen hervorgehoben werden. |
|
|
| |
|
|
|
Thomas Freier | @Frank: ziehe meinen Gedanken zurück. Ist jetzt schon möglich mit: GetOwnControlParas(B,H,S,Z) und @Create(Text,N,S,X1,Y1,X2,Y2) hier im ListView Beispiel : Text_suchen.prf KompilierenMarkierenSeparierenSelectLine(listview&,y&,0) darauf verzichten wir
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Clear bereich#
GetOwnControlParas(bereich#,listview&,x&,y&)
n_x&=Long(bereich#,12) X Offset
n_y&=Long(bereich#,16) Y Offset
b&=Long(bereich#,20)-4 Breite etwas kleiner sieht besser aus
h&=Long(bereich#,24)-5 Höhe etwas kleiner sieht besser aus
font&=Long(bereich#,28) Font Handle
n_text$=String$(bereich#,64) Itemtext
edit&=@Create(Text,listview&,n_text$,n_x&,n_y&,b&,h&) Text nach den Parametern erstellen
SetFont edit&,font&
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
An der Stelle müssten sich auch farbige Textteile anzeigen lassen. Irgendwo war mir die Berechnung der Textlängen zum Font schon einmal unter gekommen. Hintergrundfarbe, Listviewfont sind bekannt und eine andere Schriftfarbe läßt sich einstellen. |
|
|
| |
|
|
|
Frank Abbing | Bei statischen Listviews eine Notlösung. Aber probier doch mal bei scrollbaren Listviews... |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Thomas Freier | Ja, aber das Problem (Darstellung der Zeilen) nach dem Scrollen hatten wir ja auch schon. Ich habe es nicht herausgefunden, wie ein refresh nach dem Scrollen ausgelöst wird. Stoße ich in diesem Fall einen refresch manuell an (z.B. : Umsortieren, nur eine Zeile markieren) , so ist die Anzeige wieder wie gewollt. |
|
|
| |
|
|
|
Frank Abbing | Das Darstellungsproblem ist ein generelles Problem von Listviews unter Windows XP. Das hat nichts zu tun mit der Dll. Ich halte nichts von der Technik, Statics an passender Stelle in ein Listview einzufügen. Die andersfarbigen Texte (keine Controls!) müssen direkt während der Darstellung gesetzt werden, und das geht wohl nur im Subclassing. |
|
|
| |
|
|
|
Thomas Freier | Bin voll deiner Meinung. Mir reicht es, wenn das Gesuchte als Zeile wiedergegeben wird. Besonders, wenn nicht alle Spalten angezeigt werden können, hilft eine Itemmarkierung nicht viel. Marc suchte halt nur einen Trick. In einer Textverarbeitung ist es sicher angebrachter. |
|
|
| |
|
|