Deutsch
Forum

Tooltip für eine Zeile eines Listviews setzen

 
- Seite 1 -



Julian
Schmidt
Hallo,
kann man irgendwie einer Zeile eines Listviews einen bestimmten Tooltip zuweisen?
Gruß
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
18.02.2012  
 



 
- Seite 2 -


Probiere einfach aus:
KompilierenMarkierenSeparieren
sowas:
KompilierenMarkierenSeparieren
declare m#
dim m#,20
long m#,0=20,0,"Test",0,0
sendmessage(lv&,LVM_SETINFOTIP,0,m#)
dispose m#

ungetestet
 
19.02.2012  
 




Julian
Schmidt
Da kommt..

Fehler in Struktur- oder Klassendefinition CBSIZE

KompilierenMarkierenSeparieren
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
19.02.2012  
 



Der Quelltext benötigt doch diese (fehlerhafte) Struct-Zeile nicht.
KompilierenMarkierenSeparieren
 
19.02.2012  
 




Julian
Schmidt
Scheint dennoch nicht zu funktionieren...
KompilierenMarkierenSeparieren
Def GetSysColor(1) !"USER32","GetSysColor"
 $I Listview_Funktionen.inc
var lvdll&=usedll("Listview.dll")
cls GetSysColor(15)
var listview&=CreateListView(%hwnd,%hinstance,0,GetSysColor(15),-1,$431)

whileloop 10

    InsertColumn listview&,"Spalte"+STr$(&loop)-1,50,0

Endwhile

whileloop 30

    SetItem listview&,"Text1","Text2","Text3","Text4","Text5","Text6","Text7","Text8","Text9"

Endwhile

ShowListView(listview&,0,0,width(%hwnd),height(%hwnd))
Declare m#
Dim m#,20
Long m#,0=20,0,"Test",0,0
Sendmessage(listview&,4096+173,0,m#)
Dispose m#
InitMessages(%hwnd)

While 1

    waitinput

Endwhile

CloseMessages(%hwnd)
freedll lvdll&
 $I Listview_Dispose.inc
end
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
19.02.2012  
 



Lade mal ein komplettes Projekt hoch (wenn Du die listview.dll nutzt) oder einen Quelltext der ohne DLL auskommt.
 
19.02.2012  
 




Julian
Schmidt
Ok...
Download

28 kB
Hochgeladen:19.02.2012
Ladeanzahl220
Herunterladen
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
19.02.2012  
 




Thomas
Freier
Mit der Listview.dll und TTIP.pcu lassen sich doch recht einfach tolle Tooltips erstellen.



Oder ohne TTIP.pcu
KompilierenMarkierenSeparieren
 $I Listview_Funktionen.inc
var lvdll&=usedll("Listview.dll")
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' (W) 2003 Frank Abbing
'
Declare bereich#,be#,erg&,erg2&,x&,y&,text$
Dim be#,8
Dim bereich#,1024
DEF GetCursorPos(1) !"USER32","GetCursorPos"
DEF WindowFromPoint(2) !"USER32","WindowFromPoint"
DEF ChildWindowFromPoint(3) !"USER32","ChildWindowFromPoint"
Def GetSysColor(1) !"USER32","GetSysColor"
Def ScreenToClient(2) !"USER32","ScreenToClient"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SetTrueColor 1
cls GetSysColor(15)
var listview&=CreateListView(%hwnd,%hinstance,-1,9356944,-1,$20)
InsertColumn listview&,"1.Spalte",120,0
InsertColumn listview&,"2.Spalte",120,0

Whileloop 50

    AddString(listview&,"mit|HERZ  "+str$(&loop))

wend

'Liste Tooltips
vaR LB%=CreateListBox(%hwnd,0,0,0,0,0)

Whileloop GetCount(listview&)

    AddString(LB%,"Tooltip "+str$(&loop))

wend

var ToolTip&=create("Tooltip",%hwnd,listview&,"")
' Zeilenhöhe im Listview festlegen oder ermitteln und in einer Variablen speichern
' für die spätere Berechnung: Curserposition ist in Zeile
var freelist&=SetLineHeight(listview&,20)
ShowListView(listview&,10,160,400,200)
Declare ZeileO&,ZeileU&,x%,y%,xold%
Usermessages 16
SubClass listview&, 1

while 1

    waitinput
    case %umessage=16 :BREAK

wend

SubClass listview&, 0
DestroyWindow(%hwnd)
DestroyImageList(freelist&)
dispose be#
dispose bereich#
freedll lvdll&
end

SubClassProc

    Clear bereich#
    GetVisibleLines(listview&,bereich#)
    ZeileO&=Long(bereich#,0)'Obere sichtbare Zeile
    ZeileU&=Long(bereich#,4)'Untere sichtbare Zeile
    GetCursorPos(be#)
    x&=Long(be#,0)
    y&=Long(be#,4)
    erg&=@WindowFromPoint(x&,y&)

    If erg&<>0

        ScreenToClient(erg&,be#)
        x&=Long(be#,0)'Maus Position X
        y&=Long(be#,4)'Maus Position Y
        erg2&=@ChildWindowFromPoint(erg&,x&,y&)'Handle unter Mauszeiger

    EndIf

    x%= int((y&/21)-1+ZeileO&)'Zeile= Mausposition/ Zeilenhöhe+1(=Raster)

    if x%<>xold%

        settext ToolTip&,%hwnd,Listview&,""

        If erg&=Listview&

            settext ToolTip&,%hwnd,Listview&,getstring$(LB%,x%)
            xold%=x%

        EndIf

    EndIf

    Set("WinProc",1)

EndProc


55 kB
Hochgeladen:19.02.2012
Ladeanzahl117
Herunterladen
15 kB
Hochgeladen:19.02.2012
Ladeanzahl76
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
19.02.2012  
 




Julian
Schmidt
Schon, dennoch ist der weg über Subclassing umständlich
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
19.02.2012  
 




Thomas
Freier
Ist natürlich auch mit GetMessage möglich.
KompilierenMarkierenSeparieren
 $I Listview_Funktionen.inc
var lvdll&=usedll("Listview.dll")
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' (W) 2003 Frank Abbing
'
Declare bereich#,be#,erg&,erg2&,x&,y&,text$
Dim be#,8
Dim bereich#,1024
DEF GetCursorPos(1) !"USER32","GetCursorPos"
DEF WindowFromPoint(2) !"USER32","WindowFromPoint"
DEF ChildWindowFromPoint(3) !"USER32","ChildWindowFromPoint"
Def GetSysColor(1) !"USER32","GetSysColor"
Def ScreenToClient(2) !"USER32","ScreenToClient"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SetTrueColor 1
cls GetSysColor(15)
var listview&=CreateListView(%hwnd,%hinstance,-1,9356944,-1,$20)
InsertColumn listview&,"1.Spalte",120,0
InsertColumn listview&,"2.Spalte",120,0

Whileloop 50

    AddString(listview&,"mit|HERZ  "+str$(&loop))

wend

'Liste Tooltips
vaR LB%=CreateListBox(%hwnd,0,0,0,0,0)

Whileloop GetCount(listview&)

    AddString(LB%,"Tooltip "+str$(&loop))

wend

var ToolTip&=create("Tooltip",%hwnd,listview&,"")
' Zeilenhöhe im Listview festlegen oder ermitteln und in einer Variablen speichern
' für die spätere Berechnung: Curserposition ist in Zeile
var freelist&=SetLineHeight(listview&,20)
ShowListView(listview&,10,160,400,200)
Declare ZeileO&,ZeileU&,x%,y%,xold%
Usermessages 16

while 1

    GetMessage
    case %umessage=16 :BREAK
    GetVisibleLines(listview&,bereich#)
    ZeileO&=Long(bereich#,0)'Obere sichtbare Zeile
    GetCursorPos(be#)
    erg&=@WindowFromPoint(Long(be#,0),Long(be#,4))

    If erg&=Listview&

        ScreenToClient(erg&,be#)
        y&=Long(be#,4)
        x%= int((Long(be#,4)/21)-1+ZeileO&)

        If x%<>xold%

            settext ToolTip&,%hwnd,Listview&,getstring$(LB%,x%)
            xold%=x%

        EndIf

    EndIf

wend

DestroyWindow(%hwnd)
DestroyImageList(freelist&)
dispose be#
dispose bereich#
freedll lvdll&
end
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.02.2012  
 




Julian
Schmidt
Natürlich, allerdings fände ich den weg über LVM_SETINFOTIP besser. Schade das anscheinend keiner weiß warum diese im Beispiel nicht funktioniert [...] .
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
20.02.2012  
 



Scheint auch nicht zu klappen wenn ich pszText im Unicode Format absende.

Probiere doch mal das Unicode-ListView-Control -

ich glaube Nico Madysa hatte das hier mal an verschiedenen Stellen vorgestellt -

z.B. hier ( [...]  ) .
 
20.02.2012  
 




Julian
Schmidt
Dass wird allerdings wohl kaum mit Listview.dll kompatibel sein, da nehme ich lieber die Variante von Thomas.
Thx euch allen.
Werds jetzt einfach einbauen.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
20.02.2012  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

28.565 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang13.04.2020
RudiB.08.08.2019
H.Brill30.12.2018
Member 154727723.09.2018
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie