GUICtrlCreateEdit
GUICtrlCreateEdit + Ayuda !
CHEFITO !!!!! necesito ayuda !
Chefito muchas gracias por tu colaboracion, pero... ! Mallllll !!!!! la info que he buscado sobre RichText no es que me ayude mucho, la verdad no entiendo ni papa, cuando intento correr algunos ejemplos me sacan error y ya descargue el RICHTXT.OCX y lo registre , solo me corre el ejemplo de la ayuda pero no es que lo entienda mucho, la cosa es asi:, yo cree un GUICtrlCreateEdit que me ha funcionado en el ejercicio, escribo en el, pero necesito resaltar o escribir con dirferente color cierta informacion que alli se genera, esta informacion la crea de un archivo .DAT que he creado previamente, la cosa es como hago para que la info se escriba en este EDIT y si lo voy hacer con un RichText como lo hago , chefito no tienes un ejemplo en el cual yo me pueda basar para hacer mi ejercicio.
Muchas gracias por la colaboracion y la atencion prestada !
Parte del ejercicio :
$Window1=GuiCreate("SFTP Connections", 633, 447, 190, 125)
GuiSetIcon(@SystemDir & "\rasphone.exe", 0)
$Edit1 = GUICtrlCreateEdit("", 160, 140, 449, 249,BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL,$ES_READONLY))
$outPut = ClipGet();here we get the output from the clipboard
writeOut($outPut) ;send the output to our function
readOut()
Func writeOut($data)
; Write the data to a file
$file = FileOpen("commanddata.dat", 2);
FileWrite($file, $data)
FileClose($file)
EndFunc
Func readOut()
$file2 = FileOpen("commanddata.dat", 0)
$lastline = _FileCountLines("commanddata.dat")
$line = FileReadLine($file2, $lastline)
$match = StringCompare($line, "psftp>");check if the download is complete
If $match = 0 Then
$nl=0
$Status="Fail"
for $nLine = 1 to $lastline
$TextLine=FileReadLine($file2, $nLine)
$String1=StringLeft($TextLine,7)
If $String1 = "remote:" Then
_GUICtrlEdit_InsertText ($Edit1,"File ["&$nl&"] : " & $TextLine & @CRLF)
$nl=$nl+1
$Status="OK"
EndIf
Next
$Text2=_GUICtrlEdit_InsertText ($Edit1,"Nº Files ["&$nl&"] Status : ["& $Status &"] ::. " & @CRLF ,-1)
_GUICtrlEdit_InsertText ($Edit1,"==================================" & @CRLF & @CRLF,-1)
$ExitNum = "Y"
Return $ExitNum
Else
Sleep(4000)
$ExitNum = "N"
Return $ExitNum
EndIf
EndFunc
Chefito muchas gracias por tu colaboracion, pero... ! Mallllll !!!!! la info que he buscado sobre RichText no es que me ayude mucho, la verdad no entiendo ni papa, cuando intento correr algunos ejemplos me sacan error y ya descargue el RICHTXT.OCX y lo registre , solo me corre el ejemplo de la ayuda pero no es que lo entienda mucho, la cosa es asi:, yo cree un GUICtrlCreateEdit que me ha funcionado en el ejercicio, escribo en el, pero necesito resaltar o escribir con dirferente color cierta informacion que alli se genera, esta informacion la crea de un archivo .DAT que he creado previamente, la cosa es como hago para que la info se escriba en este EDIT y si lo voy hacer con un RichText como lo hago , chefito no tienes un ejemplo en el cual yo me pueda basar para hacer mi ejercicio.
Muchas gracias por la colaboracion y la atencion prestada !
Parte del ejercicio :
$Window1=GuiCreate("SFTP Connections", 633, 447, 190, 125)
GuiSetIcon(@SystemDir & "\rasphone.exe", 0)
$Edit1 = GUICtrlCreateEdit("", 160, 140, 449, 249,BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL,$ES_READONLY))
$outPut = ClipGet();here we get the output from the clipboard
writeOut($outPut) ;send the output to our function
readOut()
Func writeOut($data)
; Write the data to a file
$file = FileOpen("commanddata.dat", 2);
FileWrite($file, $data)
FileClose($file)
EndFunc
Func readOut()
$file2 = FileOpen("commanddata.dat", 0)
$lastline = _FileCountLines("commanddata.dat")
$line = FileReadLine($file2, $lastline)
$match = StringCompare($line, "psftp>");check if the download is complete
If $match = 0 Then
$nl=0
$Status="Fail"
for $nLine = 1 to $lastline
$TextLine=FileReadLine($file2, $nLine)
$String1=StringLeft($TextLine,7)
If $String1 = "remote:" Then
_GUICtrlEdit_InsertText ($Edit1,"File ["&$nl&"] : " & $TextLine & @CRLF)
$nl=$nl+1
$Status="OK"
EndIf
Next
$Text2=_GUICtrlEdit_InsertText ($Edit1,"Nº Files ["&$nl&"] Status : ["& $Status &"] ::. " & @CRLF ,-1)
_GUICtrlEdit_InsertText ($Edit1,"==================================" & @CRLF & @CRLF,-1)
$ExitNum = "Y"
Return $ExitNum
Else
Sleep(4000)
$ExitNum = "N"
Return $ExitNum
EndIf
EndFunc
Re: GUICtrlCreateEdit
Para el rich edit revisa estos links
http://www.autoitscript.com/forum/index ... l=Richtext
http://www.autoitscript.com/forum/index ... l=Richtext
Pero para hacerlo mas rapido usaria las libreria de ie.au3, y con la funcion iedocwritehtml() tambien puedes lograr muy buenas cosas pero eso queda a tu criterio.
Si necesitas mas info pregunta XD
http://www.autoitscript.com/forum/index ... l=Richtext
http://www.autoitscript.com/forum/index ... l=Richtext
Pero para hacerlo mas rapido usaria las libreria de ie.au3, y con la funcion iedocwritehtml() tambien puedes lograr muy buenas cosas pero eso queda a tu criterio.
Si necesitas mas info pregunta XD
Aunk no m Buskes, Seguro m enkontras!
Re: GUICtrlCreateEdit
Apenas intento correr el programa me genera error de variabels no declaradas., No entiendo x que !!!!, Me puedes dar una mano por que la verdad estoy mas perdido !.
Muchas gracias !!!!!
C:\Prubas\richtext3.au3(5,32) : WARNING: $GUI possibly not declared/created yet
$GUI = GUICreate("bye",700,500)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(7,56) : WARNING: $hRichText possibly not declared/created yet
$hRichText = RichText_Create($GUI, 0, 0, 700, 500)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(7,55) : ERROR: RichText_Create(): undefined function.
$hRichText = RichText_Create($GUI, 0, 0, 700, 500)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(8,55) : ERROR: RichText_InsertText(): undefined function.
RichText_InsertText($hRichText, "Hello everybody")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(12,34) : ERROR: RichText_SetSel(): undefined function.
RichText_SetSel($hRichText, 6, 11)
Que pena la ignorancia pero puedo trabajar con funciones _IE y aplicarlas en una ventana que no se _IE es decir creada con un _GUI ? como esto :
Muchas gracias !!!!!
C:\Prubas\richtext3.au3(5,32) : WARNING: $GUI possibly not declared/created yet
$GUI = GUICreate("bye",700,500)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(7,56) : WARNING: $hRichText possibly not declared/created yet
$hRichText = RichText_Create($GUI, 0, 0, 700, 500)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(7,55) : ERROR: RichText_Create(): undefined function.
$hRichText = RichText_Create($GUI, 0, 0, 700, 500)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(8,55) : ERROR: RichText_InsertText(): undefined function.
RichText_InsertText($hRichText, "Hello everybody")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Prubas\richtext3.au3(12,34) : ERROR: RichText_SetSel(): undefined function.
RichText_SetSel($hRichText, 6, 11)
Que pena la ignorancia pero puedo trabajar con funciones _IE y aplicarlas en una ventana que no se _IE es decir creada con un _GUI ? como esto :
- $Window1=GuiCreate("SFTP Connections", 633, 447, 190, 125)
$Edit1 = GUICtrlCreateEdit("", 160, 140, 449, 249,BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL,$ES_READONLY))
Re: GUICtrlCreateEdit
Mmm, fijate si la opcion Opt("MustDeclareVars",1) no este en 1, pero no se.
Ahora con el tema de _IE te paso un ejemplito, k es mas practico. Es sobre todo saber algo de html, como ser <p><b><font color="#0000FF">
Cualkier cosa me preguntas , comentame si te sirvio
Ahora con el tema de _IE te paso un ejemplito, k es mas practico. Es sobre todo saber algo de html, como ser <p><b><font color="#0000FF">
Código: Seleccionar todo
#include <IE.au3>
$oIE = _IECreateEmbedded ()
$GUI = GUICreate("LOG", 620, 386, 193, 125)
$obj = GUICtrlCreateObj($oIE, 8, 8, 604, 340)
$OK = GUICtrlCreateButton("OK", 280, 352, 73, 25, 0)
GUISetState(@SW_SHOW)
_iniciar()
_setlog()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $OK
_IEDocWriteHTML ($oIE, '<p><font color="#0000FF"><b>**** FIN DE EL REPORTE ****</b></font></p>')
Sleep(2000)
Exit
EndSwitch
WEnd
Func _iniciar()
_IENavigate($oIE, "about:blank")
$HT = "<HTML>" & @CR
$HT &= "<HEAD>" & @CR
$HT &= "<TITLE>Orale!</TITLE>" & @CR
$HT &= "</HEAD>" & @CR
_IEDocWriteHTML ($oIE, $HT)
EndFunc
Func _setlog()
$HT = '<p><font color="#008000"><b>Hola, soy un ejemplo!</b></font></p>' & @CR
$HT &= '<p><b><font color="#0000FF">Espero que te sirva de ayuda...</font></b></p>' & @CR
$HT &= '<p><font color="#FF0000">Podes modificar <i>fuente</i>, <font size="4">tamaño, </font></font><font color="#800000">colores, etc.</font></p>' & @CR
$HT &= '<p><b><font color="#800080" size="4">Presiona OK para terminar.</font></b></p>' & @CR
_IEDocWriteHTML ($oIE, $HT)
EndFunc
Aunk no m Buskes, Seguro m enkontras!
Re: GUICtrlCreateEdit
MUCHAS GRACIAS !!!!!!
Por lo que veo este ejemplo me va a servir mucho !!!
Salu2 !!!
Por lo que veo este ejemplo me va a servir mucho !!!
Salu2 !!!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: GUICtrlCreateEdit
Haber, si lo que quieres es una consola para que el usuario solamente tenga que ver texto, sin que tenga que editar nada, un control IE va muy muy bien .
Pero si lo que quieres es que el texto se pueda editar (vamos...un control edit funcionando totalmente) y además puedas interactuar con este texto poniendo colores, imagenes, fuentes, etc en varias partes de este texto (al estilo wordpad), pues debes usar el control Richtext u otro similar.
Un pequeño ejemplo de lo que se puede hacer con un control richtext:
Con las propiedades que empiezan por Sel..... es un poco engorroso, pero se puede hacer.
Hace años, me interesé por editar las etiquetas del código que genera un documento rtf (archivo de texto enriquecido). Cambiando y añadiendo estas etiquetas también puedes variar el texto. Puedes investigar su protocolo.
Saludos.
Pero si lo que quieres es que el texto se pueda editar (vamos...un control edit funcionando totalmente) y además puedas interactuar con este texto poniendo colores, imagenes, fuentes, etc en varias partes de este texto (al estilo wordpad), pues debes usar el control Richtext u otro similar.
Un pequeño ejemplo de lo que se puede hacer con un control richtext:
Código: Seleccionar todo
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
Global $oMyError
Local $oRP, $GUIActiveX, $msg, $Texto[4],$TextoTotal=""
$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$oRP = ObjCreate("RICHTEXT.RichtextCtrl.1")
GUICreate("Embedded RICHTEXT control Test", 320, 200, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
$BtGrabar = GUICtrlCreateButton('Grabar', 105, 177, 70, 20)
$BtCargar = GUICtrlCreateButton('Cargar', 175, 177, 70, 20)
$GUIActiveX = GUICtrlCreateObj($oRP, 10, 10, 400, 260)
GUICtrlSetPos($GUIActiveX, 10, 10, 300, 160)
$Texto[0]='Hola, esto es texto normal.' & @CRLF
$Texto[1]='Aquí tienes texto rojo y de un tamaño 18' & @CRLF
$Texto[2]='Este texto es de color raro ;), tamaño 12 y subrayado.' & @CRLF
$Texto[3]='**** FIN DE EL REPORTE ****' & @CRLF
For $n=0 to 3
$TextoTotal=$TextoTotal & $Texto[$n]
Next
With $oRP; Object tag pool
.BackColor = 0xaf10
.Font = 'Arial'
.text = $TextoTotal
$posIni=StringLen($Texto[0])
$posFin=StringLen($Texto[1])
.selstart=$posIni
.selLength=$posFin
.SelColor=0x0000ff
.SelFontSize = 18
$posIni=$posIni+$posFin
$posFin=StringLen($Texto[2])
.selstart=$posIni
.selLength=$posFin
.SelUnderline = True
.SelColor=0xc0a0d0
.SelFontSize = 12
$posIni=$posIni+$posFin
$posFin=StringLen($Texto[3])
.selstart=$posIni
.selLength=$posFin
.SelBold = True
.SelColor=0xff0000
.SelFontSize = 16
EndWith
GUISetState();Show GUI
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $BtCargar
$file=@ScriptDir & '\RichText.rtf'
If FileExists($file) Then
$oRP.FileName = $file
Else
MsgBox(0,"Error","No se encuentra el archivo")
EndIf
Case $msg = $BtGrabar
$oRP.SaveFile(@ScriptDir & "\RichText.rtf", 0)
EndSelect
WEnd
GUIDelete()
Func MyErrFunc()
MsgBox(0, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & Hex($oMyError.number, 8) & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext _
, 5)
; Will automatically continue after 5 seconds
Local $err = $oMyError.number
If $err = 0 Then $err = -1
SetError($err) ; to check for after this function returns
EndFunc ;==>MyErrFunc
Con las propiedades que empiezan por Sel..... es un poco engorroso, pero se puede hacer.
Hace años, me interesé por editar las etiquetas del código que genera un documento rtf (archivo de texto enriquecido). Cambiando y añadiendo estas etiquetas también puedes variar el texto. Puedes investigar su protocolo.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: GUICtrlCreateEdit
UFFFF!! Me han sacado de otro Enrredo !!!!!
Muchas gracias por su Colaboracion, de verdad que sin la ayuda de este foro estaria pegado en mi trabajo, Muchas gracias de nuevo !!!!
Gracias por esa Colaboracion desinterezada !!!
Muchas gracias por su Colaboracion, de verdad que sin la ayuda de este foro estaria pegado en mi trabajo, Muchas gracias de nuevo !!!!
Gracias por esa Colaboracion desinterezada !!!