Entradas con la etiqueta ‘Autocompletado’

Error Visual basic 6 Runtime error 7 por culpa de “Microsoft Forms 2.0 Object library” (FM20.DLL)

Lunes, 1 de Septiembre de 2008

Una aplicacion de vb 6 que funcionaba correctamente, me toca reinstalar el windows por uno original y pumm.  La aplicación al iniciar lanza un error 7, memoria insuficiente (Error 7, Memoria insuficiente) o en ingles: "Out of Memory, runtime error 7".

Me he puesto a registar los dll's necesarios para el programa y todos bien.  mediante el comando regsrv32, en este caso:

  • regsvr32 C:\mdu\VBMySQLDirect.dll -> Myslq conector
  • regsvr32 C:\mdu\Mscomctl.ocx
  • regsvr32 C:\mdu\COMCTL32.OCX
  • regsvr32 C:\mdu\FM20.DLL  -> menu desplegables con autocompletado -> EL PROBLEMA!
  • regsvr32 C:\mdu\ImageWeb.ocx -> gif animados

El error seguia... El problema en mi caso, venia por usar un componente en el proyecto del tipo: Microsoft Forms 2.0 Object library", este component contenido en su dll FM20.DLL correctamente en la carpeta del programa y registrado sin problemas, resulta que no es capaz de funcionar sin el OFFICE... Así que el causante de todo esto es un bug de este componente que no es capaz decir nada mas que : "RUNTIME ERROR 7: Out of Memory".

El programa en cuestion usaba este componente para hacer una imitación a un suggest en un combobox. Que ahora he sustituido por una función de autoCompletado sin usar nada mas que cuatro porciones de código:

Visual Basic:
  1. ' Una variable en las declaraciones del formulario que contiene el combo:
  2.  
  3. Private Backspaced as As Boolean
  4.  
  5. 'una funcion que puedes poner en un modulo, o en las declaraciones del form , es la encargada de autocompletar
  6.  
  7. Public Function AutoCompletadoCombo(ctlComboBox As Control)
  8. '--------- <<Called from the _Change event of cboComboBox>> ----------------
  9. ' -- autor: http://vbasic.astalaweb.com/C_ComboBox/1_Combobox.asp -------
  10.  
  11. Dim i%, intSel%  ' % is a "shorthand" for Integers
  12.  
  13. 'If this fires in response to a Backspace or Delete, then
  14. 'Exit the function because then you wouldn't be able to backup:
  15. Select Case (Backspaced Or Len(ctlComboBox .Text) = 0)
  16. Case True: Backspaced = False: Exit Function
  17. End Select
  18.  
  19. With ctlComboBox
  20. 'Run through the available items in a For...Loop and grab
  21. 'the first one that matches the selection:
  22. For i = 0 To .ListCount - 1
  23. If InStr(1, .List(i), .Text, vbTextCompare) = 1 Then
  24. intSel = .SelStart
  25. .Text = .List(i)
  26. .SelStart = intSel
  27. .SelLength = Len(.Text) - intSel
  28. Exit For
  29.  
  30. End If
  31. Next i
  32. End With
  33.  
  34. End Function
  35.  
  36. ' Y en el evento KEYDOWN del control combo_box
  37. Select Case KeyCode
  38. Case vbKeyBack, vbKeyDelete 'if the Backspace or Delete key is pressed...
  39. Select Case Len(NOMBRE_DEL_COMBOBOX.Text)
  40. Case Is <> 0 '...and if the cboComboBox has text, then
  41. Backspaced = True  'set this to True
  42.  
  43. End Select
  44. End Select
  45.  
  46. ' para activarlo en el evento Change del <strong>combobox </strong>es necesario llamar a la funciona de autocompletado:
  47.  
  48. AutoCompletadoCombo nombreDelComboBox

un ejemplo sencillo para descargar

Al ejemplo le faltaba que fuera correctamente la propiedad listindex del combo, la que yo utilizaba, asi que tuve que modificar unas lineas para conseguirlo. Si alquien lo pide lo posteare...

Con este sencillo codigo tenemos un control combo box normal convertido en un suggest con el contenido de el. Adios al componente  Microsoft Forms 2.0 object Library y a las dependencias del programa a tener instalado Microsfot office! Todo por instalar OpenOfice :P  vaya dia!

Auto completado de PHP-GTK en eclipse

Jueves, 24 de Julio de 2008

En nuestro trabajo usamos básicamente herramientas libres. Para desarrollar utilizamos Eclipse con los plugins PDT y Aptana. Estos últimos días los hemos dedicado a probar la extensión PHP-GTK. Como ya hemos comprobado que este lenguaje cumple nuestros requerimientos para una nueva aplicación, ha llegado el momento de ponernos serios. Gedit está muy bien para pruebas, pero el autocompletado de Eclipse se agradece, y mucho. Como no somos expertos en GTK, ¿Qué mejor que una ayudita?

Bien, el proceso es muy sencillo siguiendo este enlace: http://php-gtk.eu/code-completion-for-phpgtk-in-eclipse-pdt. Como he encontrado un par de ambigüedades, paso a mostrar los pasos aquí, y de paso traducirlo:

  1. Bajarse este script: Gtk-dumper.php
  2. Ejecutarlo y redirigir la salida a otro fichero. Siendo fieles al original, podemos llamarle php-gtk-skeletons.php
  3. Abrimos Eclipse con la perspectiva PHP
  4. Creamos un nuevo "PHP Project" y guardamos en él php-gtk-skeletons.php
  5. Guardamos el proyecto
  6. Creamos otro "PHP Project"
  7. En el asistente de creación del proyecto, referenciamos como "required project" el proyecto anterior que guarda el skeleton
  8. ... et Voilà! Ya tenemos ayudita para GTK, lo cual puede ahorrarnos un tiempo preciado

Autocompletado de clses PHP-GTK en Eclipse

Autocompletado de clases PHP-GTK en Eclipse

Remarcar que el script Gtk-dumper.php genera solamente los términos para las extensiones activadas en el momento de generar el skeleton. Así que si instaláis o activáis más tarde alguna extensión, habrá que volver a generarlo para que os muestre la ayuda correspondiente.