GuiCtrlCreateInput ?
GuiCtrlCreateInput ?
Enhorabuena por el site!
Recien me inicio en esto y no tengo ni idea de lenguajes, ni programación...así que agradeceria algo de ayuda...
Pretendo hacer un registro de datos de texto y necesito saber con qué funcion puedo hacerlo . Con InputBox y mediante OpenFile, y FileWrite puedo copiar el valor de la variable en un .txt ; Pero si quiero copiar la variable introducida en GuiCtrlCreateInput no funciona.
Pues eso!...a ver si alguien me indica cómo puedo hacerlo...
Recien me inicio en esto y no tengo ni idea de lenguajes, ni programación...así que agradeceria algo de ayuda...
Pretendo hacer un registro de datos de texto y necesito saber con qué funcion puedo hacerlo . Con InputBox y mediante OpenFile, y FileWrite puedo copiar el valor de la variable en un .txt ; Pero si quiero copiar la variable introducida en GuiCtrlCreateInput no funciona.
Pues eso!...a ver si alguien me indica cómo puedo hacerlo...
- BasicOs
- Site Admin
- Mensajes: 2099
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Bienvenida al Autoit,
espero que sientas a gusto por aquí,
Ayudaría ver el código que tienes hecho, así vemos por donde vas.
Esto es muy sencillito, verás cuando lo entiendas, lo más importante es tener un poco de sentido común y adaptarlo a la programación, nada de sistemas cripticos, ni de claves ocultas.
Según me dices te funciona con InputBox bien como quieres, e intentas hacerlo más bonito, la manera mas eficaz y sencilla de hacer tu gui es así:
Tienes el Editor (Scite) instalado?, sino lo bajas de la web y después de instalarlo, le instalas el SciteUpdate(Actulizador)
Ahí tienes una herramienta que es el Koda(Font Designer) en el menú Tools, o bien con Alt+m, te sale como una plantilla Visual donde tu colocas los botones y textos donde quieras. Asi queda muy bien, puedes añadir imagenes, textos tipos de letras facilmente. Curiosamente cuando acabas le das a un simbolo como el play y te pasa el texto generado al editor.
En ese momento ya tienes todo hecho solo asignar en el Select/Case las acciones que quieres que haga cada botón.
:shock: Si no tienes el Koda aqui tienes el código que te genera el KODA con al asignación del botón:
Otra manera más profesional trabajando con funciones,:roll: :
¡Que pases un dia divertido!
espero que sientas a gusto por aquí,
Ayudaría ver el código que tienes hecho, así vemos por donde vas.
Esto es muy sencillito, verás cuando lo entiendas, lo más importante es tener un poco de sentido común y adaptarlo a la programación, nada de sistemas cripticos, ni de claves ocultas.
Según me dices te funciona con InputBox bien como quieres, e intentas hacerlo más bonito, la manera mas eficaz y sencilla de hacer tu gui es así:
Tienes el Editor (Scite) instalado?, sino lo bajas de la web y después de instalarlo, le instalas el SciteUpdate(Actulizador)
Ahí tienes una herramienta que es el Koda(Font Designer) en el menú Tools, o bien con Alt+m, te sale como una plantilla Visual donde tu colocas los botones y textos donde quieras. Asi queda muy bien, puedes añadir imagenes, textos tipos de letras facilmente. Curiosamente cuando acabas le das a un simbolo como el play y te pasa el texto generado al editor.
En ese momento ya tienes todo hecho solo asignar en el Select/Case las acciones que quieres que haga cada botón.
:shock: Si no tienes el Koda aqui tienes el código que te genera el KODA con al asignación del botón:
Código: Seleccionar todo
#include <GUIConstants>
; == GUI generated with Koda ==
$formForm1 = GUICreate("Introduzca Datos", 234, 95, 192, 125)
$Button1 = GUICtrlCreateButton("&Aceptar", 64, 56, 97, 33, 0)
$txtTexto1 = GUICtrlCreateInput("", 16, 24, 193, 21)
GUISetState(@SW_SHOW)
While 1
$msg = GuiGetMsg()
Select
Case $msg=$Button1
Filewrite("Mifichero.txt",GUICtrlRead($txtTexto1))
; ExitLoop ;si activas esto cuando aceptas también sale del EScript
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case Else
;;;;;;;
EndSelect
WEnd
Exit
Código: Seleccionar todo
#include <GUIConstants>
$sEntrada=CajaEntrada("Introduzca Datos")
if $sEntrada then
if Filewrite("MiFichero.txt",$sEntrada) then
msgbox(0,"Proceso de Grabación","Se grabó Correctamente "&$sEntrada)
endif
endif
Exit
Func CajaEntrada($Titulo) ;Author: Basicos de www.autoit.es
; == GUI generated with Koda ==
$formForm1 = GUICreate($Titulo, 234, 95, 192, 125)
$Button1 = GUICtrlCreateButton("&Aceptar", 64, 56, 97, 33, 0)
$txtTexto1 = GUICtrlCreateInput("", 16, 24, 193, 21)
GUISetState(@SW_SHOW)
While 1
$msg = GuiGetMsg()
Select
Case $msg=$Button1
return GUICtrlRead($txtTexto1)
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case Else
;;;;;;;
EndSelect
WEnd
return ""
EndFunc
Se resolvió (...creo!)
Gracias por la respuesta y bienhallado!!
Disculpa el retardo pero he cambiado de proveedor de internet y he estado una semana sin conexión...
Bien, posteo el código....seguro que me puedes hacer alguna sugerencia...
La intención es hacer un registro general de actividad y que no copie la actividad si es la misma, sólo si varia. Y que en función de "usuario" lo copie en un archivo con el nombre de usuario indicando fecha, actividad y lo que haya anotado en edit....creo que es sencillo pero ahí estoy.
Gracias por la info sobre el Koda....!la cosa cambia mucho! Yo me lo curré a mano...juas, juas, juas!
Disculpa el retardo pero he cambiado de proveedor de internet y he estado una semana sin conexión...
Bien, posteo el código....seguro que me puedes hacer alguna sugerencia...
La intención es hacer un registro general de actividad y que no copie la actividad si es la misma, sólo si varia. Y que en función de "usuario" lo copie en un archivo con el nombre de usuario indicando fecha, actividad y lo que haya anotado en edit....creo que es sencillo pero ahí estoy.
Gracias por la info sobre el Koda....!la cosa cambia mucho! Yo me lo curré a mano...juas, juas, juas!
Código: Seleccionar todo
[color=green][/color]
#include <GuiConstants>
#include <Misc>
#include <File>
#include <GuiEdit>
$gui = GUICreate("",825,260,-1,-1,)
$font="Arial"
GUICtrlSetFont (-1,9, 400, 2, $font)
GUISetState(@SW_SHOW)
$file = FileOpen("C:\diari.txt", 1)
; DATE
$fecha = GuiCtrlCreateDate("", 20, 20, 230, 20)
GUICtrlSetFont (-1,9, 500, 0, $font)
$fecha1 = GUICtrlRead($fecha)
$fecha2 = FileWrite($file,$fecha1 & @CRLF)
; Actividad
$act = GuiCtrlCreateInput("", 90, 80, 130, 20)
GUICtrlSetFont (-1,10, 500, 0, $font)
GuiCtrlCreateLabel("Actividad:", 25, 82, 50, 20)
GUICtrlSetFont (-1,9, 500, 0, $font)
; Usuario
$nom = GuiCtrlCreateInput("", 90, 120, 130, 20)
GUICtrlSetFont (-1,10, 500, 0, $font)
GuiCtrlCreateLabel("Usuario:", 25, 122, 50, 20)
GUICtrlSetFont (-1,9, 500, 0, $font)
;Editbox
$edit = GUICtrlCreateEdit("" & @CRLF, 260, 20, 550, 122, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_WANTRETURN)
GUICtrlSetFont (-1,10, 500, 0, $font)
$btn1 = GUICtrlCreateButton ("", 530, 155, 35, 40,$BS_ICON)
GUICtrlSetImage (-1,"C:\Archivos de programa\Windows Nt\Accesorios\wordpad.exe")
$btn2 = GUICtrlCreateButton ("Salir", 765,160,35,35,$BS_ICON)
GUICtrlSetImage (-1, "shell32.dll",27)
$btn4 = GUICtrlCreateButton ("diario", 340,155,40,40, $BS_ICON)
GUICtrlSetImage (-1, "shell32.dll",55)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $btn1
$act1 = GUICtrlRead($act)
If $act1 <> $act then
$act2 = FileWrite($file,"-" & $act1 & @CRLF)
EndIf
$nom1 = GUICtrlRead($nom)
$nom2 = FileWrite($file,$nom1 & ":")
$edit1 = GUICtrlRead($edit)
$edit2 = FileWrite($file,$edit1)
$cierrarchivo = FileClose("C:\diari.txt")
GUICtrlSetData($nom, "")
GUICtrlSetData($edit, "")
$msg = $btn1
Case $msg = $btn4
RunWait("notepad \diari.txt")
EndSelect
WEnd
- BasicOs
- Site Admin
- Mensajes: 2099
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Preliminares
Veo que es tu primer programa. Felicidades.
Creo que estas haciendo todo a pelo :smt015y es un monton más divertido con las herramientas, y evitas Bugs. Vaya además el Koda te guarda un ficherito con el form que puedos modificar si cambias los controles.
Mejor usar el Tidy y en syntaxChecker en el menu tools del Scite para comprobar el código, antes de postarlo, por que saltó algún pequeño error de sintaxis.
El Programa
Bueno son bastantes cosas las que hay, y antes que nada felicidades por haber llegado a realizar este programa, estás a punto de convertirlo en un gran programa.
La verdad es que en sí esta muy bien, seguro que quedará profesional.
Veo que es tu primer programa. Felicidades.
Creo que estas haciendo todo a pelo :smt015y es un monton más divertido con las herramientas, y evitas Bugs. Vaya además el Koda te guarda un ficherito con el form que puedos modificar si cambias los controles.
Mejor usar el Tidy y en syntaxChecker en el menu tools del Scite para comprobar el código, antes de postarlo, por que saltó algún pequeño error de sintaxis.

El Programa
Bueno son bastantes cosas las que hay, y antes que nada felicidades por haber llegado a realizar este programa, estás a punto de convertirlo en un gran programa.
La verdad es que en sí esta muy bien, seguro que quedará profesional.
- Me imagino que no es un registro detallado de sucesos (Log), Sino lo que quieres hacer es almacenar simplemente un resumen de lo que pasa en cada actividad, y que se sobreescriba cada vez que cambia.
Se puede usar bases de datos. Aunq el resultado es aceptable en la linea de archivos de texto organizados ini.
Usa esto cuando Aprieten en el boton Grabar:Código: Seleccionar todo
IniWrite("C:\carpeta\"&$nombredeusuario&".ini", "Ping Pong","20061206", "esto son los datos del Ctrl Edit")
- Por otro lado en las actividades creo que es un error de concepto ya q en el If $act1 <> $act son datos no comparables ya que uno es el botón y el otro el contenido del botón.
Usando ini te quedaría así para revisar si no se introdujo esa actividad para ese usuario:En Cambio yo optaría por sobreescribirla directamente con el último cambio, ya que es un resumen, no haria falta comprobar ya que simplemente se borra lo anterior y se graba lo nuevo.Código: Seleccionar todo
If IniRead("C:\carpeta\"&$nombredeusuario&".ini", ,$act1,$fecha1,"No hay nada")="No hay nada" Then ; esto esta bien si quieres avisar que ya existe la activida y se van a reemplazar los datos
- Otra cosa usa nombres un poco más descriptivos para los botones y textos como $txtAct para indicar que es un control de texto
Por ejemplo en $act1 = GUICtrlRead($act)
mejor: $sActividades = GUICtrlRead($txtActividades)
Así puedes añadir nombres más faciles facilite que releas el programa en unos meses:smt018 . - Queda profesional añadir Tips de información a los botones así:
$btn2 = GUICtrlCreateButton ("Salir", 765,160,35,35,$BS_ICON)
GUICtrlSetTip(-1,"Salir del programa grabando")
- Bueno te he dejado un poco a medias porqu son bastantes cosas, creo que con esto tienes para que te funcione.
- Postea tu maravilla para ver como te quedó.
- Si ves que el analisis no es el que pensabas.
Pon un caso práctico de para que sirve esto y que objetivos quieres conseguir, ya que no explicaste lo que quieres hacer con el programa. - Tampoco dices como quieres recuperar los datos. Aunq el ini es un fichero de texto plano, pero más organizado que el txt.
BasicOs, gracias por las sugerencias....estoy en ellas...
Con el ini creo que sería suficiente para el archivo de usuario, aunque me interesaría que NO sobreescribiera los datos.
Explico un poco más el objetivo del programa:
No hay problema, con comprobar
1) un archivo de texto donde se registre de forma continu
a y diaria la actividad de un centro (fecha, actividad, usuario y observaciones) Pero la 'fecha' no se debe repetir en cada entrada, basta con una vez mientras no cambie; y lo mismo para 'actividad'.
2) que se cree un archivo con el nombre de usuario donde se refleje de forma continua su seguimiento; la fecha, la actividad y las observaciones. Y de la misma forma, que no grabe la fecha si es la misma.
Para el punto 1) bastaría cualquier editor, pero la idea es aprovechar la entrada de datos para conseguir el punto 2).
Saludos...
Con el ini creo que sería suficiente para el archivo de usuario, aunque me interesaría que NO sobreescribiera los datos.
Explico un poco más el objetivo del programa:
No hay problema, con comprobar
1) un archivo de texto donde se registre de forma continu
a y diaria la actividad de un centro (fecha, actividad, usuario y observaciones) Pero la 'fecha' no se debe repetir en cada entrada, basta con una vez mientras no cambie; y lo mismo para 'actividad'.
2) que se cree un archivo con el nombre de usuario donde se refleje de forma continua su seguimiento; la fecha, la actividad y las observaciones. Y de la misma forma, que no grabe la fecha si es la misma.
Para el punto 1) bastaría cualquier editor, pero la idea es aprovechar la entrada de datos para conseguir el punto 2).
Saludos...
- BasicOs
- Site Admin
- Mensajes: 2099
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Lo puse en este tópico en el post anterior, debe ser que no lo entendiste, comentame el que:BasicOs, gracias por las sugerencias....estoy en ellas...
Con el ini creo que sería suficiente para el archivo de usuario, aunque me interesaría que NO sobreescribiera los datos.
Explico un poco más el objetivo del programa:

Código: Seleccionar todo
If IniRead("C:\carpeta\"&$nombredeusuario&".ini", ,$act1,$fecha1,"No hay nada")="No hay nada" Then ; esto esta bien si quieres avisar que ya existe la activida y se van a reemplazar los datos
;lo que pones aqui solo se graba si no hay datos anteriores de actividad y fecha puedes usar la funcion FileLog también
endif
Tienes montonNo hay problema, con comprobar
1) un archivo de texto donde se registre de forma continu
a y diaria la actividad de un centro (fecha, actividad, usuario y observaciones) Pero la 'fecha' no se debe repetir en cada entrada, basta con una vez mientras no cambie; y lo mismo para 'actividad'.

(el filewrite como que es mas incomodo de manejar, aunq puedes gestionarlo como si revisaras una variable, y grabarlo cada vez)

Código: Seleccionar todo
#include <file>
_FileWriteLog(@ScriptDir & "\mificheroDatos.txt","un montón de datos por aquí, el que quiera")
Lo del archivo está respondido arriba con lo de exportar los inis a formato tabla.2) que se cree un archivo con el nombre de usuario donde se refleje de forma continua su seguimiento; la fecha, la actividad y las observaciones. Y de la misma forma, que no grabe la fecha si es la misma.
Igual...Para el punto 1) bastaría cualquier editor, pero la idea es aprovechar la entrada de datos para conseguir el punto 2).
Saludos...
