|
Página 1 de 1
|
Detectar Modificacion Al Pegar Texto En Textarea
Autor |
Mensaje |
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Detectar Modificacion Al Pegar Texto En Textarea
buenas,
tengo un problema con Notas, y es que no se como detectar cuando el usuario usa el botón derecho y pone pegar y así poner la variable modificado a true.
intente contando los caracteres del textarea pero no encontré la solución.
alguna sugerencia?
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#1 Miercoles, 08 Julio 2015, 17:31 |
|
|
frajanic
Usuario
Registrado: Octobre 2013
Mensajes: 44
Edad: 68
|
Re: Detectar Modificacion Al Pegar Texto En Textarea
buenas,
tengo un problema con Notas, y es que no se como detectar cuando el usuario usa el botón derecho y pone pegar y así poner la variable modificado a true.
intente contando los caracteres del textarea pero no encontré la solución.
alguna sugerencia?
Puedes hacerlo con el evento Change:
TA1 es el TextArea y TB1 un TextBox. Cuando pegas algo en TA1 salta el evento Change.
Saludos
|
#2 Miercoles, 08 Julio 2015, 19:17 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Detectar Modificacion Al Pegar Texto En Textarea
bueno quedo soluciónado pero tuve que hacer algo extraño, pues al cargar el formulario se producen un evento change
con esto:
Public Sub Form_Open()
Me.Title = "Notas"
Me.Center
LabVersion.Text = FMain.NumVersion
RutaNotas = FMain.TemaEstudio &/ "Notas.txt"
If Not Exist(RutaNotas) Then
File.Save(RutaNotas, "")
Else
TextArea1.Text = File.Load(RutaNotas) <------ esto lanza un evento change
Endif
End
lo solucione con esto:
es medio una chanchada pero anda, no se me ahogue con un vaso de agua jajajaj
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#3 Miercoles, 08 Julio 2015, 20:17 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Detectar Modificacion Al Pegar Texto En Textarea
Victor:
Yo lo he hecho de otra manera, usando variables y un control timer1... pero es mejor método el dice frajanic usando el evento _change.
Os dejo el código:
' gambas class file
Private contenido As String
Private contenidoAntiguo As String
Private banderaGuardado As Boolean
Public Sub _new()
End
Public Sub Form_Open()
Me.center
Timer1.Delay = 2000 '5 segundos
Timer1.Start
contenido = TextArea1.text
contenidoAntiguo = contenido
ToolButtonguardar.enabled = False
End
Public Sub Timer1_Timer()
If contenidoAntiguo <> "" Then
'que no este vacio
If contenidoAntiguo <> TextArea1.text Then
Label1.text = "El texto ha sido modificado"
ToolButtonguardar.enabled = True
Endif
Endif
End
Public Sub ToolButtonguardar_Click()
banderaGuardado = True
ToolButtonguardar.Enabled = False
Label1.text = ""
contenidoAntiguo = TextArea1.text
'aqui instrucciones de guardar el archivo
Message.Info("Texto guardado en el disco")
End
Descripción: |
|
Descargar |
Nombre del archivo: |
modificadoTexto-0.0.1.tar.gz |
Tamaño: |
5 KB |
Descargado: |
47 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
modificadoTexto-0.0.1.tar.gz |
Tamaño: |
5 KB |
Descargado: |
47 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
modificadoTexto-0.0.1.tar.gz |
Tamaño: |
5 KB |
Descargado: |
47 veces |
|
#4 Miercoles, 08 Julio 2015, 20:57 |
|
|
frajanic
Usuario
Registrado: Octobre 2013
Mensajes: 44
Edad: 68
|
Re: Detectar Modificacion Al Pegar Texto En Textarea
Si lo que pretendes es activar el "btnGuardar" cuando se modifique el TextArea, podías desactivarlo en Form_Open después de cargar el fichero y en _Change activarlo.
Public Sub Form_Open()
Me.Title = "Notas"
Me.Center
LabVersion.Text = FMain.NumVersion
RutaNotas = FMain.TemaEstudio &/ "Notas.txt"
If Not Exist(RutaNotas) Then
File.Save(RutaNotas, "")
Else
TextArea1.Text = File.Load(RutaNotas) <------ esto lanza un evento change
btnGuardar.Enabled = False
Endif
End
Public Sub TextArea1_Change()
btnGuardar.Enabled = True
End
Creo que es eso lo que pretendes, ¿no?
Saludos
PD: Ahora de "coña". La solución del Timer (que no para nunca) me ha recordado una canción de Parade: " Qué triste es ser electrón, vivir en una nube, el electrón se aburre por definición."
|
#5 Miercoles, 08 Julio 2015, 22:36 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Detectar Modificacion Al Pegar Texto En Textarea
...al cargar el formulario se producen un evento change
Yo propono esto:
Public Sub Form_Open()
Me.Title = "Notas"
Me.Center
LabVersion.Text = FMain.NumVersion
RutaNotas = FMain.TemaEstudio &/ "Notas.txt"
If Not Exist(RutaNotas) Then
File.Save(RutaNotas, "")
Else
Object.Lock(TextArea1) ' Vamos bloquear cada evento de la TextArea
TextArea1.Text = File.Load(RutaNotas)
Endif
Object.Unlock(TextArea1) ' Desbloqueamos comoquiera todos los eventos de la TextArea
End
|
#6 Miercoles, 08 Julio 2015, 22:47 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Detectar Modificacion Al Pegar Texto En Textarea
interesante vuott
así quedo y funciona (lo que no quiere decir que sea una programación correcta o inteligente)
' gambas class file
Private Modificado As Boolean = False
Private Cargado As Boolean = True
Private RutaNotas As String
Public Sub Form_Open()
Me.Title = "Notas"
Me.Center
LabVersion.Text = FMain.NumVersion
RutaNotas = FMain.TemaEstudio &/ "Notas.txt"
If Not Exist(RutaNotas) Then
File.Save(RutaNotas, "")
Else
TextArea1.Text = File.Load(RutaNotas)
Endif
End
Public Sub btnSalir_Click()
VerificarModificacion()
End
Public Sub btnClear_Click()
Dim respuesta As Byte
If Len(TextArea1.Text) = 0 Then Return
respuesta = Message.Warning("Se borrara todo el documento, estas seguro?", "Sí borra", "Me arrepiento")
Select Case respuesta
Case 1
Cargado = True
Modificado = False
btnGuardar.Enabled = False
TextArea1.Clear
TextArea1.SetFocus
File.Save(RutaNotas, "")
Case 2
TextArea1.SetFocus
Return
End Select
End
Public Sub btnGuardar_Click()
File.Save(RutaNotas, TextArea1.Text)
Modificado = False
btnGuardar.Enabled = False
TextArea1.SetFocus
End
Public Sub Form_Close()
If Modificado Then Stop Event
FMain.btnNotas.Enabled = True
End
Public Sub TextArea1_KeyRelease()
Modificado = True
btnGuardar.Enabled = True
TextArea1.SetFocus
End
Private Sub VerificarModificacion()
Dim respuesta As Byte
If Modificado = True Then
respuesta = Message.Warning("Notas fue modificadio!", "Salir sin guardar", "Guardar y salir", "Volver")
Select Case respuesta
Case 1
Goto Salir
Case 2
File.Save(RutaNotas, TextArea1.Text)
Goto Salir
Case 3
Return
End Select
Endif
Salir:
Modificado = False
Me.Close
End
Public Sub btnGuardar_Enter()
If btnGuardar.Enabled = True Then
btnGuardar.Tooltip = "Guardar cambios" & gb.NewLine & RutaNotas
Endif
End
Public Sub TextArea1_Change()
If Cargado = True Then
Cargado = False
Else
Modificado = True
HayModificacion(Modificado)
Endif
End
Public Sub HayModificacion(si As Boolean)
If si = True Then
If Cargado = False Then
btnGuardar.Enabled = True
Else
btnGuardar.Enabled = False
Endif
Else
btnGuardar.Enabled = False
Endif
End
Public Sub btnGuardarComo_Click()
Dialog.Path = FMain.TemaEstudio & "/"
If Dialog.SaveFile() Then Return
File.Save(Dialog.Path, TextArea1.Text)
End
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
última edición por v3ctor el Miercoles, 08 Julio 2015, 23:47; editado 1 vez
|
#7 Miercoles, 08 Julio 2015, 23:45 |
|
|
frajanic
Usuario
Registrado: Octobre 2013
Mensajes: 44
Edad: 68
|
Re: Detectar Modificacion Al Pegar Texto En Textarea
Si funciona, ¡PERFECTO!
¿Qué es mejor o peor?
Es TU solución.
¡Enhorabuena!
Saludos.
|
#8 Jueves, 09 Julio 2015, 00:28 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|