Page 1 of 1

Border en GET

Posted: Tue Apr 18, 2006 1:44 pm
by Biel EA6DD
Hola Foro, q tal las fiestas de Pascua. Espero q bien.

Al tema, tengo un GET que dependindo de un valor boolenao, debe estar activo o no. Esto es facil usando WHEN o o con Disable(), pero en _ sigue visualizando el recuadro del GET. El GET esta definido desde recursos, veo que si fuera desde codigo existe NOBORDER, pero como puedo hacerlo para que cuando no se edite, tambien desaparezca el borde con el get definido en recursos. Evidentemente cuando deba editarse si quiero el borde, no me vale quitar el borde en el RC.

Gracias anticipadas.

Posted: Mon Apr 24, 2006 10:06 am
by Biel EA6DD
A falta de respuestas, imagino que no puede hacerse. Entonces el planteamiento es el siguiente, el GET en el recurso sin caja. Y dibujar una caja alrededor del GET cuando proceda. Lo he intentado con WndBox(), pero no lo he conseguido, alguna idea.

Gracias.

Posted: Mon Apr 24, 2006 1:09 pm
by astursoft
asi a primeras miraste dos get superpuestos uno con caja y otro sin ella y ocultar el que no se desea ? ( o tambien un get y un say ) .
Atención ten en cuenta que se apilan en recursos al reves de como lo ves en el programa , de tal manera que si pones en recursos delante el say , te quedará detras al ejecutar .
No se si sirve pero ....
Saludso.

Posted: Mon Apr 24, 2006 2:26 pm
by Biel EA6DD
Gracias Jose Luis por la respuesta. Tus comentarios siempre son de ayuda.

Al final persevere con el tema de WndBox, y consegui que se comportase tal cual queria.

Es un get en el detalle de albaranes en el que se introduce el nº de lote para trazabilidat. Este Get depende de un buleano definido en un fichero de configuracion.
Al final lo hago así:

Code: Select all

 ...
   REDEFINE GET oGetLot VAR DetVtaTmp->Lote   ID 604 OF oDlg PICTURE "@K" VALID {|oGet|Ajusta(oGet)}

   IF Cfg->Lotes //<====
      REDEFINE SAY oSayLote PROMPT 'Lote' ID 4002 OF oDlg COLOR CLR_BLACK, CLR_WHITE
   ELSE
      oGetLot:Disable() //Podria hacerse en el WHEN del GET
   ENDIF
   //--
   ...
   //-
   ACTIVATE DIALOG oDlg ;
            ON INIT IF(!SipInfo().AND.Cfg->lSip,ShowKeyboard(),NIL) ;
            ON PAINT IF(Cfg->Lotes,WndBox(hDc,103,117,83,200),) //Dibujo box cuando Lotes .t.
...

Posted: Mon Apr 24, 2006 8:55 pm
by Antonio Linares
Biel,

> Al final persevere con el tema de WndBox, y consegui que se comportase tal cual queria.

Bien. Otra solución sería cambiar el estilo del GET dinamicamente usando SetWindowLong( oGet:hWnd, GWL_STYLE, <estilo previo, excepto borde>).

El estilo previo se consigue llamando a GetWindowLong() de similar manera, y luego con un nAnd() seleccionar todo excepto el borde.

Posted: Fri Apr 28, 2006 11:50 am
by Antonio Linares
Lo probastes ?

Posted: Fri Apr 28, 2006 1:54 pm
by Biel EA6DD
Hola Antonio,
pues no, lo he dejado en tareas to do( to try), voy un poco retrasado, y ya me enrede mas de la cuenta. Cuando lo pruebe ya comentare en el hilo.

Posted: Fri Apr 28, 2006 3:50 pm
by Antonio Linares
ok :)