PINTAR CUADRO FRAME

HMG en Español

Moderator: Rathinagiri

Post Reply
SALINETAS24
Posts: 78
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 1 time
Been thanked: 1 time

PINTAR CUADRO FRAME

Post by SALINETAS24 » Thu Jun 07, 2018 6:13 pm

Hola, es posible pintar el marco del FRAME.
Solo el marco.
Gracias

User avatar
mustafa
Posts: 664
Joined: Fri Mar 20, 2009 11:38 am
Location: Alicante - Spain
Been thanked: 70 times

Post by mustafa » Fri Jun 08, 2018 10:33 am

Hola colega:

Mirate el Sample ---> Hmg_BoxLetterShow_2018_New.zip

viewtopic.php?f=15&t=1389&p=55225&hilit ... how#p55225

la Function ---> MiFrame que está dentro de ---> hmg_BoxLetterShow.ch

puedes poner el color que quieras

Code: Select all


#include "hmg.ch"
#include "hmg_BoxLetterShow.ch"

  Function Main
*--------------------------------------------------------*
* (c) Mustafa López  mustalopez@gmail.com
*--------------------------------------------------------*

         DEFINE WINDOW Form_1              ;           
		AT 0,0                     ;
		WIDTH 460 HEIGHT 370       ;  
		TITLE "MiFrame"   ;
                FONT "Arial" SIZE 10 BACKCOLOR { 211,218,236 } ;
                NOSIZE NOMAXIMIZE ;  
                MAIN                       ;
		             
                ON KEY ESCAPE ACTION Form_1.Release 

          MiFrame(050,150,175,50,"14a","Mi Frame", { 005,186,010 } , { 211,218,236 } )                                                 
          MiFrame(150,150,175,50,"15a","Mi Frame", { 007,002,204 } , { 211,218,236 } )     
          MiFrame(250,150,175,50,"16a","..."     , RED , VERDE  )  // Opcional si no se pone nada "..." sale solo Rojo 

   END WINDOW
   
   CENTER WINDOW Form_1
   ACTIVATE WINDOW Form_1

Return Nil
Regards :D
Mustafa

SALINETAS24
Posts: 78
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 1 time
Been thanked: 1 time

Post by SALINETAS24 » Sat Jun 09, 2018 6:15 pm

De guay ..., Mustafa siempre eres el mejor ... nº 1.
Gracias.

SALINETAS24
Posts: 78
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 1 time
Been thanked: 1 time

Post by SALINETAS24 » Sat Jun 09, 2018 8:36 pm

..., pero que pasa cuando quieres pintar el cuadro de otro color, osease, lo tengo en azul y lo quiero poner en rojo, o viceversa, dependiendo de que este activo o no los objetos que continene dicho FRAME

Mira mustafa, he realizado este pequeña función que permite cambiar el color de un Frame realizado con tu función, pero tengo 2 pequeños problemas.

1- No lo puedo compilar dentro de las funciones genericas, no se porque demonios lo tengo que compilar como parte de mi programa.
2- Sería un "pasote" poder pasarle el nombre del Ventana a la que pertene el FRAME para colorearlo.., eso tampoco se como hacerlo, por eso siempre pinto bajo la WIN_1

Este es el código en cuestión.

Code: Select all

// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// --> Repinta el cuadrado
// --> MiFrame("16","Mi Frame",BLUE,GREEN)  
// --> Parametros (Ventana,"Nombre_l", "titulo", color1, color2)

//-->  Estaria bien que la varible VENTANA tuviese el nombre de ventana que tiene el control label
//-->  &Ventana..&Clavel02..Fontcolor:=RED ----- ¡¡PERO NO FUNCIONA!!

FUNCTION ReFrame(Ventana,cControl,cTexto,Color,ColorBackground)	



Local clavel01 := ALLTRIM("Label_") + ALLTRIM(cControl)
Local clavel02 := ALLTRIM("Label_") + ALLTRIM(cControl)+ "a"
Local clavel03 := ALLTRIM("Label_") + ALLTRIM(cControl)+ "b" 
Local clavel04 := ALLTRIM("Label_") + ALLTRIM(cControl)+ "c" 
Local clavel05 := ALLTRIM("Label_") + ALLTRIM(cControl)+ "d" 

	Win_1.&Clavel02..BACKCOLOR := Color 
	Win_1.&clavel03..BACKCOLOR := Color 
	Win_1.&clavel04..BACKCOLOR := Color  
	Win_1.&clavel05..BACKCOLOR := Color 
	Win_1.&clavel01..BACKCOLOR := ColorBackground   
	Win_1.&clavel01..FONTCOLOR := Color


    Win_1.&Clavel02..Refresh
	Win_1.&Clavel03..Refresh
	Win_1.&Clavel04..Refresh
	Win_1.&Clavel05..Refresh
	Win_1.&Clavel01..Refresh

RETURN
Como siempre un verdadero placer contar con tu sabiduría.

SALINETAS24
Posts: 78
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 1 time
Been thanked: 1 time

Post by SALINETAS24 » Sun Jun 10, 2018 7:46 pm

Vaya telaaaa., jajajaja. :lol:
El compilador da problemas dependiendo de donde se compile la función ReFrame, :shock: ya que si no tiene la ventana Win_1 previamente definida..., "error". La solución sería poder pasar el valor de la ventana con el &, al igual que hace con el Label, :?: pero ante el silencio aporto esta solución.
Tienes que incluir, donde guardes la "boxlettershow", la función ReFrame y estas lineas.

Code: Select all

// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
//--> una chorrada para que funcione la rutina que le sigue.., la de repintal el win_1
//--> y engañar al compilardor 

STATIC FUNCTION PROBATURA
	DEFINE WINDOW Win_1 ;
		ROW 0 ;
		COL 0 ;
		WIDTH 400 ;
		HEIGHT 400 ;
		TITLE 'Hello World!' ;
		WINDOWTYPE MAIN  
	END WINDOW
	Win_1.Center
	Win_1.Activate
RETURN

:idea: y a funcionar.., claro que la putada es que todas las ventanas que donde quieras crearte un FRAME y cambiarlo de color se tienen que llamar Win_1.., :shock: , no obstante quedamos a la espera de una solucion mejor.

Muchas gracias y a disfrutarlo.

User avatar
mustafa
Posts: 664
Joined: Fri Mar 20, 2009 11:38 am
Location: Alicante - Spain
Been thanked: 70 times

Post by mustafa » Mon Jun 11, 2018 12:04 pm

Hola Nanu

..., pero que pasa cuando quieres pintar el cuadro de otro color, osease, lo tengo en azul y lo quiero poner en rojo, o viceversa, dependiendo de que este activo o no los objetos que continene dicho FRAME
Te mando un Sample , haber si puede servir ?

Sigo investigando
Saludos
Mustafa
Attachments
Pantallazo.jpg
Pantallazo.jpg (41.26 KiB) Viewed 163 times
New_Frame.zip
(8.89 KiB) Downloaded 26 times

Post Reply