PINTAR CUADRO FRAME
Moderator: Rathinagiri
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
PINTAR CUADRO FRAME
Hola, es posible pintar el marco del FRAME.
Solo el marco.
Gracias
Solo el marco.
Gracias
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. ![Shocked :shock:](./images/smilies/icon_eek.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
- mustafa
- Posts: 1160
- Joined: Fri Mar 20, 2009 11:38 am
- DBs Used: DBF
- Location: Alicante - Spain
- Contact:
Re: PINTAR CUADRO FRAME
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
Regards
Mustafa
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
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
Mustafa
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: PINTAR CUADRO FRAME
De guay ..., Mustafa siempre eres el mejor ... nº 1.
Gracias.
Gracias.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. ![Shocked :shock:](./images/smilies/icon_eek.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: PINTAR CUADRO FRAME
..., 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.
Como siempre un verdadero placer contar con tu sabiduría.
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 dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. ![Shocked :shock:](./images/smilies/icon_eek.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: PINTAR CUADRO FRAME
Vaya telaaaa., jajajaja.
El compilador da problemas dependiendo de donde se compile la función ReFrame,
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.
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..,
, no obstante quedamos a la espera de una solucion mejor.
Muchas gracias y a disfrutarlo.
![Laughing :lol:](./images/smilies/icon_lol.gif)
El compilador da problemas dependiendo de donde se compile la función ReFrame,
![Shocked :shock:](./images/smilies/icon_eek.gif)
![Question :?:](./images/smilies/icon_question.gif)
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 :idea:](./images/smilies/icon_idea.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
Muchas gracias y a disfrutarlo.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. ![Shocked :shock:](./images/smilies/icon_eek.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
- mustafa
- Posts: 1160
- Joined: Fri Mar 20, 2009 11:38 am
- DBs Used: DBF
- Location: Alicante - Spain
- Contact:
Re: PINTAR CUADRO FRAME
Hola Nanu
Sigo investigando
Saludos
Mustafa
Te mando un Sample , haber si puede servir ?
..., 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
Sigo investigando
Saludos
Mustafa
- Attachments
-
- Pantallazo.jpg (41.26 KiB) Viewed 5871 times
-
- New_Frame.zip
- (8.89 KiB) Downloaded 247 times
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: PINTAR CUADRO FRAME
Ya esta resuelto, gracias a una aportación del amigo Mol he creado una funcion generica se puede llamar y con dos lineas pinta y repinta...
Mira amigo.., esto seria la función generica.
Y para llamarla, pues por ejemplo asi
MiFrame(56,400,380,260, "16a", "" , BLUE , GREEN )
y para cambiarla de color
ReFrame("Win_1","16a","",BLUE, GREEN)
Le tienes que mandar el nombre de la ventana activa y yasta.
Muy poco código y a funciona.., que la disfruten.
Mira amigo.., esto seria la función generica.
Code: Select all
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// --> Dibuja un cuadrado
// --> MiFrame(300,300,175,50,"16","Mi Frame",BLUE,GREEN)
// --> Parametros (Fila, Columna, Alto, Largo, "Nombre_l", "titulo", color1, color2)
FUNCTION MiFrame(nRow,nCol,nWidth,nHeight,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"
LOCAL CurSRow1 := nRow
LOCAL CurSCol1 := nCol
LOCAL LastSWidth1 := nWidth
LOCAL LastSHeight1 := 1
LOCAL CurSRow2 := nRow
LOCAL CurSCol2 := nCol
LOCAL LastSWidth2 := 1
LOCAL LastSHeight2 := nHeight
LOCAL CurSRow3 := nRow
LOCAL CurSCol3 := nCol+nWidth
LOCAL LastSWidth3 := 1
LOCAL LastSHeight3 := nHeight
LOCAL CurSRow4 := nRow+nHeight
LOCAL CurSCol4 := nCol
LOCAL LastSWidth4 := nWidth + 1
LOCAL LastSHeight4 := 1
DEFINE label &clavel02
ROW CurSRow1
COL CurSCol1
WIDTH LastSWidth1
HEIGHT LastSHeight1
VALUE ""
FONTNAME "Arial"// "Ms Sans Serif"
FONTSIZE 09
TOOLTIP ""
FONTBOLD .T.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR Color
FONTCOLOR Nil
BORDER .F.
CLIENTEDGE .F.
END LABEL
DEFINE label &clavel03
ROW CurSRow2
COL CurSCol2
WIDTH LastSWidth2
HEIGHT LastSHeight2
VALUE ""
FONTNAME "Arial"// "Ms Sans Serif"
FONTSIZE 09
TOOLTIP ""
FONTBOLD .T.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR Color
FONTCOLOR Nil
BORDER .F.
CLIENTEDGE .F.
END LABEL
DEFINE label &clavel04
ROW CurSRow3
COL CurSCol3
WIDTH LastSWidth3
HEIGHT LastSHeight3
VALUE ""
FONTNAME "Arial"// "Ms Sans Serif"
FONTSIZE 09
TOOLTIP ""
FONTBOLD .T.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR Color
FONTCOLOR Nil
BORDER .F.
CLIENTEDGE .F.
END LABEL
DEFINE label &clavel05
ROW CurSRow4
COL CurSCol4
WIDTH LastSWidth4
HEIGHT LastSHeight4
VALUE ""
FONTNAME "Arial"// "Ms Sans Serif"
FONTSIZE 09
TOOLTIP ""
FONTBOLD .T.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .F.
BACKCOLOR Color
FONTCOLOR Nil
BORDER .F.
CLIENTEDGE .F.
END LABEL
DEFINE label &clavel01
ROW CurSRow1 - 8
COL CurSCol1 + 5
WIDTH LastSWidth1
HEIGHT LastSHeight1
VALUE cTexto
FONTNAME "Arial"// "Ms Sans Serif"
FONTSIZE 09
TOOLTIP ""
FONTBOLD .T.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
HELPID Nil
VISIBLE .T.
TRANSPARENT .F.
ACTION Nil
AUTOSIZE .T.
BACKCOLOR ColorBackground
FONTCOLOR Color
BORDER .F.
CLIENTEDGE .F.
END LABEL
RETURN NIL
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Esta funcion repinta el cuadro ya definido, y lo cambia de color
// Yo la uso cuando activo los GETS y quiero un golpe visual.
// Recibe
//--> Ventana : nombre de la Window que contiene el FRAME
//--> "16a" : Control definido previamente en el MiFrame
//--> Titulo : si le quieres poner un titulo visual al frame
//--> COLOR1, COLOR2 : La combinación de colores que más te guste.
// --> Repinta el cuadrado
// --> MiFrame(Ventana,"16a","Mi Frame",BLUE,GREEN)
// --> Parametros (Ventana,"Nombre_l", "titulo", color1, color2)
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"
Local cn
SetProperty(Ventana, Clavel02, "BackColor", Color)
SetProperty(Ventana, Clavel03, "BackColor", Color)
SetProperty(Ventana, Clavel04, "BackColor", Color)
SetProperty(Ventana, Clavel05, "BackColor", Color)
SetProperty(Ventana, Clavel01, "BackColor", ColorBackground)
SetProperty(Ventana, Clavel01, "FontColor", Color)
SetProperty(Ventana, clavel02, "Refresh")
SetProperty(Ventana, clavel03, "Refresh")
SetProperty(Ventana, clavel04, "Refresh")
SetProperty(Ventana, clavel05, "Refresh")
SetProperty(Ventana, clavel01, "Refresh")
/*
Asi lo tenia antes, y obligatoriamente la ventana se llamaba win_1, cuando tienes solo una WIN_1 activa
no hay problemas, pero cuando hay más de una o le cambias el nombre......
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
Y para llamarla, pues por ejemplo asi
MiFrame(56,400,380,260, "16a", "" , BLUE , GREEN )
y para cambiarla de color
ReFrame("Win_1","16a","",BLUE, GREEN)
Le tienes que mandar el nombre de la ventana activa y yasta.
Muy poco código y a funciona.., que la disfruten.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. ![Shocked :shock:](./images/smilies/icon_eek.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
Re: PINTAR CUADRO FRAME
Gracias por compartir...
- Algernon
- Posts: 55
- Joined: Sat Mar 20, 2010 10:36 am
- DBs Used: DBF
- Location: Arucas, Gran Canaria, Canary Islands
Re: PINTAR CUADRO FRAME
Buenos días, aunque el post es de 2018, lo descubrí hace un mes y me ha servido de mucho porque quería crear un Frame de color para dar más énfasis en alguna opción. Normalmente diseño la página de la app donde hay opciones que aparecen dependiendo de la opción elegida por el usuario, con lo cual uso mucho los métodos 'Show' y 'Hide' para pintar los controles, entonces me vi usando de Miframe y para ocultarlo o mostrarlo no tenía esa propiedad, la solución es muy sencilla gracias a las funciones mostradas por SALINETAS.
Primero defino el Frame con la función MiFrame y utilizo como color de fondo y de la fuente el mismo color que el BACKCOLOR de la ventana activa y cuando quiero mostrarlo uso la función ReFrame con los colores que deseo mostrar, para volver a ocultarlo vuelvo a utilizar la función ReFrame con el BACKCOLOR de la ventana.
Si lo utilizan y tienen otra opción para mostrar u ocultar el Frame podrían indicarlo.
Muchas gracias.
Good morning, although the post is from 2018, I discovered it a month ago, and it has been very useful to me because I wanted to create a color Frame to emphasize certain options. I usually design the app page where options appear depending on the user's choice, so I use 'Show' and 'Hide' methods a lot to paint the controls. In this case, I found myself using Miframe, and to hide or show it, I didn't have that property. The solution is very simple thanks to the functions shown by SALINETAS.
First, I define the Frame with the MiFrame function and use the same background and font color as the BACKCOLOR of the active window. When I want to show it, I use the ReFrame function with the colors I want to display. To hide it again, I use the ReFrame function with the BACKCOLOR of the window.
If you use it and have another option to Show or Hide the Frame, please let me know.
Thank you very much.
Primero defino el Frame con la función MiFrame y utilizo como color de fondo y de la fuente el mismo color que el BACKCOLOR de la ventana activa y cuando quiero mostrarlo uso la función ReFrame con los colores que deseo mostrar, para volver a ocultarlo vuelvo a utilizar la función ReFrame con el BACKCOLOR de la ventana.
Si lo utilizan y tienen otra opción para mostrar u ocultar el Frame podrían indicarlo.
Muchas gracias.
Good morning, although the post is from 2018, I discovered it a month ago, and it has been very useful to me because I wanted to create a color Frame to emphasize certain options. I usually design the app page where options appear depending on the user's choice, so I use 'Show' and 'Hide' methods a lot to paint the controls. In this case, I found myself using Miframe, and to hide or show it, I didn't have that property. The solution is very simple thanks to the functions shown by SALINETAS.
First, I define the Frame with the MiFrame function and use the same background and font color as the BACKCOLOR of the active window. When I want to show it, I use the ReFrame function with the colors I want to display. To hide it again, I use the ReFrame function with the BACKCOLOR of the window.
If you use it and have another option to Show or Hide the Frame, please let me know.
Thank you very much.
Javier Suárez
La obra humana más bella es la de ser útil al prójimo. (Sófocles)
The most beautiful work of man is to be useful to others. (Sófocles)