Problema con ComboBox

HMG en Español

Moderator: Rathinagiri

User avatar
danielmaximiliano
Posts: 2763
Joined: Fri Apr 09, 2010 4:53 pm
DBs Used: DBF
Location: Argentina
Contact:

Re: Problema con ComboBox

Post by danielmaximiliano »

Javier : haciendo caso omiso a tus palabras paso a responderte.

puedes tener 24 años de programación y tropezar con la misma piedra 24 años mas.(me pasa muy a menudo)
muchas veces dije
con cada nuevo topico es un grano mas de conocimiento.
Tu carga del CombBox desde el Array aTiposDePago se hace dentro de la función Pagos; pero este fue declarado anteriormente ?

si es asi. tu Form llama a inicio a la funcion Pagos para que cargue el Array?

te dejo un simple ejemplo con la base anexada en el .Rar
CombBox.rar
(3.37 KiB) Downloaded 137 times
simple codigo :

Code: Select all

#include <hmg.ch>


Function Main
Public aItems := {} 

REQUEST DBFCDX, DBFFPT
RDDSETDEFAULT ("DBFCDX")
SET CODEPAGE TO UNICODE
InitMessages( "ES" )
SET DEFAULT TO '.\Tables\'

        Load Window Main
        Main.Center
        Main.Activate
Return

procedure ChargerItems()
   DBUSEAREA     ( .T. , "DBFCDX" , "GS1" ) 
  Go Top	
   Do While !Eof()
         AADD( aItems , GS1->NOMBRE )
		 //msgBox (GS1->NOMBRE)
		 GS1->( DBSKIP( 1 ) )
  End Do
  
 Return aItems
El tratamiento del Form es asi
DEFINE WINDOW TEMPLATE AT 172 , 391 WIDTH 550 HEIGHT 350 VIRTUAL WIDTH Nil VIRTUAL HEIGHT Nil TITLE "" ICON NIL MAIN CURSOR NIL ON INIT Nil ON RELEASE Nil ON INTERACTIVECLOSE Nil ON MOUSECLICK Nil ON MOUSEDRAG Nil ON MOUSEMOVE Nil ON SIZE Nil ON MAXIMIZE Nil ON MINIMIZE Nil ON PAINT Nil BACKCOLOR Nil NOTIFYICON NIL NOTIFYTOOLTIP NIL ON NOTIFYCLICK Nil ON GOTFOCUS Nil ON LOSTFOCUS Nil ON SCROLLUP Nil ON SCROLLDOWN Nil ON SCROLLLEFT Nil ON SCROLLRIGHT Nil ON HSCROLLBOX Nil ON VSCROLLBOX Nil

DEFINE COMBOBOX Combo_1
ROW 40
COL 150
WIDTH 240
HEIGHT 170
ITEMS ChargerItems()
VALUE 0
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
TABSTOP .T.
VISIBLE .T.
SORT .F.
ONENTER Nil
ONDISPLAYCHANGE Nil
DISPLAYEDIT .F.
IMAGE Nil
DROPPEDWIDTH Nil
ONDROPDOWN Nil
ONCLOSEUP Nil
END COMBOBOX

END WINDOW
ejemplo.jpg
ejemplo.jpg (40.25 KiB) Viewed 1163 times
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Telegram invitation https://t.me/HMGWorkspace
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Problema con ComboBox

Post by Javier Tovar »

Hola Javier,

Recuerda la visibilidad de las variables y su tiempo de vida, pudiste haberla declarado en otro procedimiento o en otra función, pero a lo mejor la declaraste como "LOCAL" o como "PRIVATE" y simplemente seguiste programando... y de momento nos cambiamos de *.PRG y queremos llamar a esta variable, y es cuando ya no nos la reconoce y nos dice "Esta variable no existe", y pues tenemos que ponerla como PUBLIC al inicio de nuestro proyecto para que sea visible en todo procedimiento, en toda función y en todo *.PRG. seguido me pasa, por que empiezo declarando como Locales o Privadas y después se hace grande el proyecto y hay que cambiarlas a PUBLICAS.


También recuerda que la posición en la declaración de las variables.

Code: Select all

Function Main
Public aValores := {"UNO","DOS","TRES"}

       MsgInfo(aValores[1])
       DosDos()

RETURN NIL

PROCEDURE DosDos()
Local x := aValores[2]   // SI ES VISTA
Local y := ""

     MsgInfo(x)
     y:= aItems[1]    // NO ES VISTA YA QUE SE DECLARO COMO PUBLICA, PERO TODAVÍA NO LA LEE EL PROGRAMA

    TresTres()

RETURN NIL


PROCEDURE TresTres()
Local x := aValores[1]
Public aItems:= {"Item1","Item2","Item3"}

RETURN NIL
Espero que sea de ayuda.

Saludos
Post Reply