Probleme de retour a la ligne

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Probleme de retour a la ligne

#1

Message par YuChan »

Bonjour,

J'ai un petit UDDF que j'ai trouvé sur google etr ma question est :
- Comment faire un retour a la ligne si le texte et long ?

Voici le lien de l'udf :
viewtopic.php?t=4624c

Dans mon cassa coupe le texte ou bien sa m'ajoute la scroll bar selon ce que j'edit

Code : Tout sélectionner

$LL_hListView = _GUICtrlListView_Create($LL_GUI, "", 1, 1, 200, 200, $LVS_NOCOLUMNHEADER + $LVS_REport, -1, True)
Si vous pouvez m'aider svp se serai gentil.

CDT
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Probleme de retour a la ligne

#2

Message par mikell »

L'UDF utilise une listview
De base, les items d'une listview ne sont pas multi-line, pas de retour à la ligne possible
Donc 3 solutions :
- faire des textes courts
- si le texte est long l'afficher sur 2 items successifs
- utiliser la magnifique UDF ListviewMultilineItems de LarsJ
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: Probleme de retour a la ligne

#3

Message par YuChan »

Désolé mais la tu ma perdu ...

Je vois pas comment faire 2 ligne de texte avec ton UDF simplement.

Et d'après ce que je vois c'est que tout est ecrit a la main, pas de fonction simple.

Si tu pouvais m'aider se serai bien.

CDT
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Probleme de retour a la ligne

#4

Message par mikell »

Hum. Si tu as trouvé ma réponse trop compliquée, alors je n'ai qu'un conseil à te donner : oublie la Listview, et utilise un controle Edit pour faire ton log
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: Probleme de retour a la ligne

#5

Message par YuChan »

Je veux bien utiliser mon ancien system de control edit mais comment mettre des images dessus comme pour listview ?

Car c'est vraiment pas beau a voir du texte brute.

CDT
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Probleme de retour a la ligne

#6

Message par walkson »

Bonjour,
On tourne en rond !
Avec un simple édit, ce n'est pas possible. Il faut passer par _GUICtrlRichEdit_Create()

Code : Tout sélectionner

#include <FileConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
$hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, StringLen(".exe")) & ")", 520, 550, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 500, 490, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$idBtnExit = GUICtrlCreateButton("Exit", 10, 510, 40, 30)
GUISetState(@SW_SHOW)
$file = FileOpenDialog("",@DesktopDir,"image(*.bmp)")
If @error Then Exit
$text = "mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte mon texte "
$read = ReadBmpToRtf($file,"ICI ",@TAB & $text)
_GUICtrlRichEdit_InsertText($hRichEdit, "Inserting image..." & @LF & @LF)
_GUICtrlRichEdit_AppendText($hRichEdit ,$read)
_GUICtrlRichEdit_AppendText($hRichEdit ,@LF & @LF )
_GUICtrlRichEdit_SetCharColor($hRichEdit, 0x0000ff)
_GUICtrlRichEdit_SetFont($hRichEdit,30)
_GUICtrlRichEdit_AppendText($hRichEdit ,"Done.")
    While True
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $idBtnExit
                _GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes
                GUIDelete()
                Exit
        EndSwitch
    WEnd

Func ReadBmpToRtf($sBmpFilspc, $textavant = "",$textapres = "")
	Local $hFile, $sRtf
	$hFile = FileOpen($sBmpFilspc, $FO_BINARY)
	If FileRead($hFile, 2) <> "0x424D" Then Return SetError(1, 0, "")
	FileRead($hFile, 12)
	$sRtf = '{\rtf1{\fonttbl{\f0\fswiss Calibri;}{\colortbl ;\red155\green0\blue255;\red255\green0\blue50;}}\fs24\f0\cf1'&$textavant&'\ql{\pict\dibitmap ' & Hex(FileRead($hFile)) & '}'&$textapres&'\par}' ;\cfN Foreground color\fsN Font size\ql = left \qc = centered http://www.biblioscape.com/rtf15_spec.htm
	; \cf1 pour \red155\green0\blue211 \cf2 pour \red255\green0\blue50 \cf0 pas de couleur
	FileClose($hFile)
	Return $sRtf
EndFunc   ;==>ReadBmpToRtf
Avec cette méthode on utilise uniquement des bitmaps (.bmp)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Probleme de retour a la ligne

#7

Message par mikell »

YuChan a écrit : lun. 11 avr. 2022 12:49c'est vraiment pas beau a voir du texte brute.
C'est vrai ...
Tu dois faire un choix : avoir un truc visuellement pas terrible mais facile à coder, ou alors faire du beau mais là il va falloir bosser ^^
Sachant que personne ne fera le code à ta place (sauf peut-être walkson mais bon... :mrgreen: )

Donc je vais me répéter avec plus de détails
A ta place, je choisirais la listview avec la solution n°2 de mon post précédent. En pratique, ça veut dire que si une ligne est trop longue pour rentrer dans un item, alors tu la coupes à l'endroit qui va bien et tu mets ce qui dépasse dans l'item suivant (sans mettre d'icône à cet item)
C'est simple à faire et esthétiquement tout à fait satisfaisant

Par exemple, pour couper le texte, tu peux utiliser l'udf StringSize de Melba (ou un regex, etc)
Et dans l'udf de tim "udf_log.au3", tu peux juste remplacer cette ligne
Func _Log_Gui_Add($LL_Texte, $LL_icon)
par ça
Func _Log_Gui_Add($LL_Texte, $LL_icon = 99999)
Dans le script, ne pas mettre le paramètre $LL_icon dans _Log_Gui_Add() permet alors de faire un item sans icone
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: Probleme de retour a la ligne

#8

Message par YuChan »

Merci.

Donc impossible de creer plusieurs ligne avec une icon.

Donc ma seul solution reste Edit et sans image.
Ou alors avec image et listview mais pas de multi ligne.

Par contre mikell ta soltion je la comprends pas .

Je pense avoir resumé.
Répondre