hallo
beim GUICtrlCreateEdit kann ich GUICtrlSetTip nutzen.
wie/was aber beim _GUICtrlRichEdit_Create ?
hallo
beim GUICtrlCreateEdit kann ich GUICtrlSetTip nutzen.
wie/was aber beim _GUICtrlRichEdit_Create ?
Ein herzliches Hallo in den fernen Nordosten unseres schönen Ländchens
Wenn du mit _GUICtrlRichEdit_Create arbeitest würde ich dir empfehlen es mal mit _GUIToolTip_Create zu versuchen. Müsste eigentlich gehen. Mit GUICtrlSetTip kann es nicht gehen, weil es eine Control-ID erwartet und nicht das Handle von _GUICtrlRichEdit_Create.
Gruss Shadowigor
danke dir für die blumen lieber shadowigor, in der jetztigen hitze bei uns welken sie aber bereits.
habe im manual die verschiedenen wege etwas angesehen, aber da müsste ich ja zum operateur
von autoit-eingeweiden mutieren.
möchte eher eine bereits kreierte hochgezüchtete fertige funktion nutzen.
hallo zusammen
mit GUICtrlSetTip meinst du logischerweise passend zum _GUICtrlRichEdit_Create sicher _GUICtrlSetTip.
das findest du bei http://www.autoitscript.com/forum/topic/13…ontrol-tooltips
dort die EasyTip.rar downloaden und EasyTip.au3 einbinden.
gruzzi gruzzi
habe mal ein muster mit dem EasyTip.au3 gemacht.
offenbar aber kann man nur eine infotextzeile machen !
#include <GuiRichEdit.au3>
#include <EasyTip.au3>
$oWinH=GUICreate("_CtrlToolTip-mehrzeilig",300,180,-1,-1)
GUISetState(@SW_SHOW)
$oEdit1=_GUICtrlRichEdit_Create($oWinH,"_GUICtrlRichEdit_Create",10,10,280,75)
_GUICtrlSetTip($oEdit1,"Zeile eins, kurz" & @CRLF & "Zeile zwei, etwas länger")
$oEdit2=GUICtrlCreateEdit("GUICtrlCreateEdit",10,95,280,75)
GUICtrlSetTip($oEdit2,"Zeile eins, kurz" & @CRLF & "Zeile zwei, etwas länger")
While GUIGetMsg() <> -3
WEnd
genügt das so ?
danke dir wirr4all
1) ja, genau da liegt das problem. ich brauche 3 zeilen.
nur eine zeile und die dann übermässig lang ist kaum lesbar.
2) in der EasyTip.au3 habe ich mal bei der zeile von _GUIToolTip_AddTool()
masse für die breite und höhe eingetragen, aber völlig wirkungslos.
vermutlich muss man eher noch die funktion _GUIToolTip_AdjustRect() einbauen.
da bin ich aber zu schwach gebaut und brauche nach wie vor hilfe.
supernova
Einfachste Lösung ist, direkt in der Funktion _GuiCtrlSetTip in der UDF folgendes einfügen:
_GUIToolTip_SetMaxTipWidth($hToolTip, 300)
[/autoit]
direkt nach :
Local $hToolTip = _GUIToolTip_Create($hControl, BitOR($ExtStyle, $TTS_ALWAYSTIP, $TTS_NOPREFIX))
[/autoit]300 ist dabei die Pixelbreite des ToolTip. Entweder setzt du die Breite fest oder du mußt die Funktion umschreiben,
damit die Breite automatisch gesetzt wird.
Nach der Änderung gehen auch mehrer Zeilen im ToolTip Zeilen Wechsel ist @crlf oder automatisch nach 300 Pixel.
vielen dank für den tip von raupi.
1) dieser trifft genau zu. vermutlich wird auch durch die funktion _GUIToolTip_SetMaxTipWidth() die
berechnung der grösse vom textbereich ausgelöst _GUIToolTip_AdjustRect().
egal welchen wert man in der funktion _GUIToolTip_SetMaxTipWidth() eingibt, der textbereich
wird nur so gross gemacht wie nötig (logo, ist der wert zu klein wird der text angepasst/umgebrochen).
so habe ich jetzt generell den wert auf 1000pixel gesetzt.
2) die UDF EasyTip.au3 binde ich nicht mehr mit ein sondern habe diese funktion für
meine anwendung optimiert und minimiert = _GuiCtrlSetTipMini()
#include <GuiRichEdit.au3>
#include <GUIToolTip.au3>
$cInfo=@CRLF & _
" Zeile eins, kurz " & @CRLF & _
" Zeile zwei, etwas länger " & @CRLF & _
@CRLF & _
" Zeile drei ist hier die längste " & @CRLF & _
" Zeile vier, kurz " & @CRLF & _
@CRLF & _
" " ;;dieser Space muss sein
$oWinH=GUICreate("_CtrlToolTip-mehrzeilig",300,180,-1,-1)
GUISetState(@SW_SHOW)
$oEdit1=_GUICtrlRichEdit_Create($oWinH,"_GUICtrlRichEdit_Create",10,10,280,75)
_GUICtrlSetTipMini($oEdit1,$cInfo)
$oEdit2=GUICtrlCreateEdit("GUICtrlCreateEdit",10,95,280,75)
GUICtrlSetTip($oEdit2,$cInfo)
;;;;;
While GUIGetMsg() <> -3
WEnd
;;;;;
;;;;;
Func _GuiCtrlSetTipMini($pxObj,$pcInfo)
local $oToolTip=_GUIToolTip_Create($pxObj,0)
_GUIToolTip_SetMaxTipWidth($oToolTip,1000) ;;1000 ist nur proforma
[/autoit] [autoit][/autoit] [autoit]_GUIToolTip_AddTool($oToolTip,0,$pcInfo,$pxObj,0,0,0,0,9,0)
[/autoit] [autoit][/autoit] [autoit]Return ($oToolTip)
EndFunc
;;;;;ende
Wenn dein Problem gelöst ist, setze den Thread auch bitte auf gelöst.
hallo raupi
habe nicht vergessen abzuschliessen. ist aber noch zu früh, man muss nämlich diese tooltips etwas erweitert managen, will sagen ggf diese löschen. habe da schon etwas im petto/ergänzung und melde mich in kürze deswegen wieder.
1) der vollständigkeitshalben wollte ich das ganze noch toppen und ein beispiel zeigen mit 2x _GUICtrlRichEdit_Create() wo man darauf achten sollte die tooltips auch wieder zu löschen und sie auch nicht bei jedem aufrufen innerhalb eines objektes wieder und wieder zu erzeugen. sie bleiben ja nach dem generieren erhalten.
2) leider kann ich zwar den source zeigen, aber bei mir kann ich im gleichen fenster nicht 2 unterschiedliche _GUICtrlRichEdit_Create() generieren. es wird immer nur das erste gezeigt. vielleicht kann mir da ja jemand schnell auf die sprünge helfen um mich dann dem eigentlichen kern wieder widmen zu können
#include <GuiRichEdit.au3>
#include <GUIToolTip.au3>
$cInfo=@CRLF & _
" Zeile eins, kurz " & @CRLF & _
" Zeile zwei, etwas länger " & @CRLF & _
@CRLF & _
" Zeile drei ist hier die längste " & @CRLF & _
" Zeile vier, kurz " & @CRLF & _
@CRLF & _
" " ;;dieser Space muss sein
$oWinH=GUICreate("_CtrlToolTip-mehrzeilig",300,180,-1,-1)
GUISetState(@SW_SHOW)
$oEdit1=_GUICtrlRichEdit_Create($oWinH,"1",10,10,280,75)
$oEdit1_TT=_GUICtrlSetTipMini($oEdit1,"1" & $cInfo,"oEdit1_TT")
$oEdit2=_GUICtrlRichEdit_Create($oWinH,"2",10,95,280,75)
$oEdit2_TT=_GUICtrlSetTipMini($oEdit2,"2" & $cInfo,"oEdit2_TT")
;--------------------------------------------------------------
While GUIGetMsg() <> -3
WEnd
;;ggf den Tooltip wieder löschen
If IsHWnd($oEdit1_TT) Then _GUIToolTip_Destroy($oEdit1_TT)
If IsHWnd($oEdit2_TT) Then _GUIToolTip_Destroy($oEdit2_TT)
_GUICtrlRichEdit_Destroy($oEdit1)
_GUICtrlRichEdit_Destroy($oEdit2)
;--------------------------------------------------------------
;;;;;
;;;;;
Func _GuiCtrlSetTipMini($pxObj,$pcInfo,$poSelf)
local $oToolTip=""
;;der Tooltip wird nur angelegt, wenn er noch nicht existiert
If Not IsHWnd(Eval($poSelf)) Then
$oToolTip=_GUIToolTip_Create($pxObj,0)
_GUIToolTip_SetMaxTipWidth($oToolTip,1000) ;;1000 ist nur proforma
_GUIToolTip_AddTool($oToolTip,0,$pcInfo,$pxObj,0,0,0,0,9,0)
EndIf
[/autoit] [autoit][/autoit] [autoit]Return ($oToolTip)
EndFunc
;;;;;ende
[/autoit].
hallo zusammen
offenbar scheint das ein bug zu sein, siehe auch bei
http://www.autoitscript.com/forum/topic/13…it-createfailes
dort geht es aber um eine ältere version 3.3.7 und in der jetztigen 3.3.8 ist das immer noch so.
ist mir unklar, wieso es bei ihm dann ging.
aktuell gültige ist 3.3.8.1 und geht nicht
[Blockierte Grafik: http://www.novalku.com/autoit-forum/20120823-161059.jpg]
mit dem link von gango 3.3.7.20++ und geht
ebenso mit der beta 3.3.9.4
[Blockierte Grafik: http://www.novalku.com/autoit-forum/20120823-161116.jpg]
supernova, kannst also weiter für uns pröbeln
der obige script funktioniert und will nur besagen, diese objekte sind ggf auch zu löschen.
schliesse damit ab.