
| |||
![]() hola amigos soy nuevo en el foro pero e visto que aca siempre hay una mano amiga presta para ayudar en fin mi problema es el siguiente e desarrollado una aplicacion telnet la cual funciona muy bien para la cual fue creada los colores la forma y funcionalidad para mi y mis amigos esta muy bien pero un amigo me sugirio que si podia hacer cambiar los colores a gusto de la persona que lo este usando para el momento y que esos cambios se mantengan que quiero decir cuando la persona instale el programa pueda cambiar los colores a su gusto y cuando lo cierre y lo vuelva a abrir esten los colores que el escogio adjunto una foto del interface ![]() Última edición por yy5aeg; 21/07/2010 a las 13:51 Razón: correcion de palabra |
| ||||
Respuesta: ayuda con paletas de colores Hola, suponiendo que el fondo que vemos es un TextBox multiline, podrías tener estas dos rutinas:
Código vb:
Ver original
Código vb:
Ver original Evidentemente deberás crear un Selector de Colores para que el usuario decida que colores quiera y después un Boton para guardar sus preferencias. En el FormLoad ejecutas el CargarColores y listo. Es una posibilidad entre tantas, ficheros Ini, Registro de Windows, pero tal vez esta sea mas simple y facil de implementar. Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| |||
![]() Cita: Hola erbuson muchas gracias por responde tan rapido no es un textbox es un RichTextBox pero igual funcionaria solo tendria que hacer unos cambios muy bien gracias lo pondre en practica
Iniciado por erbuson ![]() Hola, suponiendo que el fondo que vemos es un TextBox multiline, podrías tener estas dos rutinas:
Código vb:
Ver original
Código vb:
Ver original Evidentemente deberás crear un Selector de Colores para que el usuario decida que colores quiera y después un Boton para guardar sus preferencias. En el FormLoad ejecutas el CargarColores y listo. Es una posibilidad entre tantas, ficheros Ini, Registro de Windows, pero tal vez esta sea mas simple y facil de implementar. Saludos |
| |||
Respuesta: ayuda con paletas de colores Gracias |
| |||
Respuesta: ayuda con paletas de colores Cita: hola erbuson mira probe tu ejemplo y realmente funciona para guadar las configuraciones pero estoy estudiando otro que usa un archivo ini y me gusta tambien pero tengo un problema al tratar de cambiar los colores de los textos mira te pongo el codigo que uso :este codigo es para hacer el ini ////////////////////////////////////////////////////////////////// Set cIni = New cIni With cIni Dim i As Integer For i = 0 To 2 RichTextBox1.BackColor = .getValue(App.Path & "\config.ini", "Colores", "COLOR" & CStr(i), 0) Next End With ///////////////////////////////////////////////////////////////////////////////////// este para cargar la paleta With CommonDialog1 .ShowColor RichTextBox1.BackColor = .Color End With //////////////////////////////////////////////////////////////////////////////////////////////////////////// este comando para cargar las preferencias de colores With cIni Dim i As Integer For i = 0 To 2 Call .writeValue(App.Path & "\config.ini", "Colores", "COLOR" & CStr(i), RichTextBox1.BackColor) Next End With Set cIni = Nothing ////////////////////////////////////////////////////////////////////////////////////////////////// modulo de clase Option Explicit Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long Const CLAVE As String = "Clave" Const SECCION As String = "Clave" Function getValue(path_ini As String, SECCION As String, Key As String, Optional Default As Variant = "") As String On Error GoTo error_handler Dim buffer As String * 256 Dim ret As Long ret = GetPrivateProfileString(SECCION, Key, Default, buffer, Len(buffer), path_ini) getValue = Left$(buffer, ret) Exit Function error_handler: MsgBox Err.Description, vbCritical End Function Function writeValue(path_ini As String, SECCION As String, Key As String, Valor As Variant) As String On Error GoTo error_handler Dim ret As Long ret = WritePrivateProfileString(SECCION, Key, Valor, path_ini) Exit Function error_handler: MsgBox Err.Description, vbCritical End Function ///////////////////////////////////////////////////////////////// el problema es que no logro hacer cambiar los colores de la data recibida probe con el siguiente codigo With CommonDialog1 .ShowColor RichTextBox1.SelColor = .Color End With y no me funciona e probado con otros y nada solo logro hacer cambiar el color de los textos diciendole por medio de codigos el color que va a usar pero no puedo hacer para que el color que escoja en la paleta de colores quede fijado la unica manera es que haga click el rich habra la paleta agarre el color y vuelva a hacer click y escriba pero eso no es lo que quiero ya que los datos que recibo es de un server deberian de tomarlos de inmediato pero no logro hacerlo gracias por tu ayuda Nota uso un commandialg para llamar a la paleta Última edición por yy5aeg; 02/08/2010 a las 14:07 Razón: editar |
| ||||
Respuesta: ayuda con paletas de colores Hola: En primer lugar, efectivamente si conoces los ficheros ini te va a resultar muchísimo mas facil, aunque no entiendo el sentido este código: Set cIni = New cIni With cIni Dim i As Integer For i = 0 To 2 RichTextBox1.BackColor = .getValue(App.Path & "\config.ini", "Colores", "COLOR" & CStr(i), 0) Next End With Entiendo que estas leyendo de la seccion [Colores] los valores memorizados en COLOR0, COLOR1 y COLOR2 y en un bucle ¿ los asignas a BackColor ? no se lo que pretendes pero esto no va a funcionar ya que BackColor sólo va a reconocer el tercer valor que es el último que se le ha asignado. Te lo comento porque antes de nada deberías aclarar esta idea ya que tal vez por ahí está el quid de la cuestión. Me atrevo a pensar que el ciclo de 0,1,2 pueda ser por el Rojo, Verde, Azul pero si asi fuera, el error está en que BackColor es de por si un número que identifica a éste color. Lo mismo ocurre en el Call .writeValue(App.Path & "\config.ini", "Colores", "COLOR" & CStr(i), RichTextBox1.BackColor) ya que estas guardando aunque con distinto nombre las tres veces el mismo Valor. Intenta aclarar este punto antes de seguir porque como te decia mucho me temo que esta duda sea parte del error. Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| |||
![]() Cita: ok amigo vamos a simplificarnos la vida voy a usar tu codigo vamos a olvidarnos del que te mostre mira :
Iniciado por erbuson ![]() Hola: En primer lugar, efectivamente si conoces los ficheros ini te va a resultar muchísimo mas facil, aunque no entiendo el sentido este código: Set cIni = New cIni With cIni Dim i As Integer For i = 0 To 2 RichTextBox1.BackColor = .getValue(App.Path & "\config.ini", "Colores", "COLOR" & CStr(i), 0) Next End With Entiendo que estas leyendo de la seccion [Colores] los valores memorizados en COLOR0, COLOR1 y COLOR2 y en un bucle ¿ los asignas a BackColor ? no se lo que pretendes pero esto no va a funcionar ya que BackColor sólo va a reconocer el tercer valor que es el último que se le ha asignado. Te lo comento porque antes de nada deberías aclarar esta idea ya que tal vez por ahí está el quid de la cuestión. Me atrevo a pensar que el ciclo de 0,1,2 pueda ser por el Rojo, Verde, Azul pero si asi fuera, el error está en que BackColor es de por si un número que identifica a éste color. Lo mismo ocurre en el Call .writeValue(App.Path & "\config.ini", "Colores", "COLOR" & CStr(i), RichTextBox1.BackColor) ya que estas guardando aunque con distinto nombre las tres veces el mismo Valor. Intenta aclarar este punto antes de seguir porque como te decia mucho me temo que esta duda sea parte del error. Saludos el codigo que tu me diste adaptado al richtextbox : Private Sub Form_Load() Dim nFichero As Integer, nColor As Single On Error Resume Next nFichero = FreeFile Open App.Path & "\Colores.txt" For Input As #nFichero Input #nFichero, nColor: RichTextBox1.SelColor = nColor Input #nFichero, nColor: RichTextBox1.BackColor = nColor Close #nFichero llamar a la paleta de colores para cambiar el backcolor Private Sub Command3_Click() With CommonDialog1 .ShowColor RichTextBox1.BackColor = .Color End With End Sub llamar paleta para cambiar texto del rich Private Sub Command4_Click() With CommonDialog1 .ShowColor RichTextBox1.SelColor = .Color End With End Sub el codigo anterior llama la paleta escojo el color pata el texto pero no hace el cambio al menos que yo haga click sobre el rich vuelva a escojer el color y escriba alli si lo toma pero asi no me deberia de funcionar ya que yo no tengo que escribir nada sobre el rich ya que la data o los datos que recibo me los envia un server recuperar las preferencias Private Sub Form_Unload(Cancel As Integer) Dim nFichero As Integer nFichero = FreeFile Open App.Path & "\Colores.txt" For Output As #nFichero Print #nFichero, RichTextBox1.SelColor Print #nFichero, RichTextBox1.BackColor Close #nFichero End Sub yo aplique tu codigo a un textbox y funciona al 100% pero el problema es que el textbox no soporta tantos caracteres ya que esta aplicacion que arme recibe datos a cada segundo y por lo general esa aplicacion puede durar varias horas recibiendo datos y llega el momento que no entran mas esa data no es para guardarla simplmente se lee lo que se recibe y si por alguna razon se quiere guardar para eso le puse un comando para imprimir una imagen para que veas como es la interface completa ![]() Última edición por yy5aeg; 03/08/2010 a las 12:13 Razón: imagen |
| ||||
Respuesta: ayuda con paletas de colores Hola: Creo que deberías probar así: Private Sub Command4_Click() CommonDialog1.ShowColor RichTextBox1.SelStart = 0 RichTextBox1.SelLength = Len(RichTextBox1.Text) RichTextBox1.SelColor = CommonDialog1.Color End Sub La propiedad SelColor es para el texto seleccionado, por lo tanto lo que este código hace como puedes ver es antes de asignar la propiedad seleccionar todo el texto y así parece funcionar. Respecto a los ficheros INI, que parece descartas, si quieres dale un vistazo al siguiente enlace que utiliza las funciones en un Modulo en lugar de una clase y funciona perfectamente. Tu mismo. Leer y Grabar archivos INI Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |
| |||
Respuesta: ayuda con paletas de colores Cita: ok estoy apenas llegando de unas mini vacaciones voy a ver con calma ya te doy el reporte gracias.
Iniciado por erbuson ![]() Hola: Creo que deberías probar así: Private Sub Command4_Click() CommonDialog1.ShowColor RichTextBox1.SelStart = 0 RichTextBox1.SelLength = Len(RichTextBox1.Text) RichTextBox1.SelColor = CommonDialog1.Color End Sub La propiedad SelColor es para el texto seleccionado, por lo tanto lo que este código hace como puedes ver es antes de asignar la propiedad seleccionar todo el texto y así parece funcionar. Respecto a los ficheros INI, que parece descartas, si quieres dale un vistazo al siguiente enlace que utiliza las funciones en un Modulo en lugar de una clase y funciona perfectamente. Tu mismo. [URL="http://www.recursosvisualbasic.com.ar/htm/listado-api/159-leer-grabar-archivo-ini.htm"]Leer y Grabar archivos INI[/URL] Saludos |
| |||
Respuesta: ayuda con paletas de colores Cita: hola disculpa lo tarde que te respondi mira me funciono al 1000% muchisimas gracias erbuson eres el mejor
Iniciado por erbuson ![]() Hola: Creo que deberías probar así: Private Sub Command4_Click() CommonDialog1.ShowColor RichTextBox1.SelStart = 0 RichTextBox1.SelLength = Len(RichTextBox1.Text) RichTextBox1.SelColor = CommonDialog1.Color End Sub La propiedad SelColor es para el texto seleccionado, por lo tanto lo que este código hace como puedes ver es antes de asignar la propiedad seleccionar todo el texto y así parece funcionar. Respecto a los ficheros INI, que parece descartas, si quieres dale un vistazo al siguiente enlace que utiliza las funciones en un Modulo en lugar de una clase y funciona perfectamente. Tu mismo. [URL="http://www.recursosvisualbasic.com.ar/htm/listado-api/159-leer-grabar-archivo-ini.htm"]Leer y Grabar archivos INI[/URL] Saludos |
Etiquetas: |