Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ubetor^^ en 11 Septiembre 2006, 23:03 pm



Título: Editor.De.Texto: Tamaños en Combobox, y errores en Commondialogs
Publicado por: ubetor^^ en 11 Septiembre 2006, 23:03 pm
Estoy haciendo un editor de texto (sencillito  ;D), weno de echo, ya solo me falta solucionar los errores que me da el VB cuando cancelo la operación de abrir o guardar como  :huh: En mi editor utilizo un menú (creado con menú editor) para abrir estos controles. Digo que utilizó un menú porque con commandbuttons no me pasa, lo que me lleva a pensar que el problema puede estar en alguna propiedad. Pero la propiedad de CancelError está a false  :huh: (el número de error es diferente).

Los errores al cancelar las operaciones de showopen y showsave están en la misma línea (al menos eso dice el depurador...).

Al abrir...

Código:
Open CD1.FileName For Input As #1

Al guardar...

Código:
Open CD1.FileName For Output As #1

Hace poco que empecé con vb, tal vez el fallo sea obvio  :-[


Después me gustaría crear un combobox mediante el cual el tamañao de la letra de un textbox cambiase según el número de letra que se eligiera (se que se puede hacer con la propiedad .showfont de un commondialog, esto ya lo hago más por aprender qu epor otra cosa, xd). Para ello se me ocurrió utilizar la sentencia case, la cual no la conozco muy bien pero pensé que sería capaz de hacerlo  :rolleyes: La sentencia If tampoco funcionó...Pensé que sería algo como esto:

Código:
Dim i As Integer
For i = 12 To 20 'En realidad solo tengo las fuentes en los tamaños 12, 16, y 20

Next i
Select Case List
Case 12
txtbox.Font.Size = 12
Case 16
txtbox.Font.Size = 16
Case 20
txtbox.Font.Size = 20
End Select

La cosa me extraño porque mediante un menú creado con el menú editor si funcionó:

Código:
Dim i As Integer
For i = 0 To 2
Next i
Select Case Index
Case 0
txtbox.Font.Size = 10
Case 1
txtbox.Font.Size = 12
Case 2
txtbox.Font.Size = 14
End Select

Lo bueno es que mediante el menú podía crear una matriz de controles mediante la propiedad index, pero en el combobox la única forma de hacer referencia a los elementos de list (es con esta propiedad, eso CREO).


Os estaría agradecidos si me hechaseis un cable con esto  :-\

Gracias. Salu2!


Título: Re: Editor.De.Texto: Tamaños en Combobox, y errores en Commondialogs
Publicado por: CeLaYa en 29 Septiembre 2006, 00:20 am
puedes usar el evento click del combo

private sub combo1_click()

     tamañofuente=val(combo1.text)
     textbox1.font.size=val(combo1.text)

end sub

asi cuando selecciones un tamaño de letra lo puedes poner en una variable o cambiar la propiedad del textbox

ahora para lo de la cancelacion no recuerdo cual es el numero de error pero puedes hacer lo siguiente


on local error resume next ' activas el control de errores

commondialog1.showopen
if err then
   msgbox "selecciono cancelar"
else
   .... aqui te sigues para abrir el archivo
end if
on local error goto 0 ' desactivas el control de errorres


Título: Re: Editor.De.Texto: Tamaños en Combobox, y errores en Commondialogs
Publicado por: ((( SPAWN ))) en 29 Septiembre 2006, 02:59 am
Para el error que te salta cuando presionas cancelar tanto para el cuadro de dialogo de abrir como el de guardar o cualquier otro, primero tenes que poner la propiedad cancelerror del commondialog a true y aca te paso un code para el control del error:

On Error GoTo error ' Colocas primero esto cuando salte el err se dirige a la rutina error:
    CommonDialog1.Filter = "Formato texto (*.txt)|*.txt"
    CommonDialog1.ShowSave
error: ' rutina de control de error
    If Err.Number = 32755 Then
        Exit Sub
    End If


Título: Re: Editor.De.Texto: Tamaños en Combobox, y errores en Commondialogs
Publicado por: ubetor^^ en 1 Octubre 2006, 16:27 pm
Bien, gracias a vosotros conseguí solucionar los 2 problemas...Celaya, el combobox ahora funciona de maravilla, ese método está mejor que la sentencia case. Pero el code para el error no me funcionó  :huh: Pero me funcionó el tuyo, Spawn. Gracias de nuevo.

salu2!!