Page 1 of 1
Folder & Font
Posted: Thu Mar 06, 2008 6:53 am
by Otto
In samples testfld4.prg from FWH I changed FONT in the rc-file everywhere to size 14.
But the dialogs still shown in a small font.
I tried:
AEVAL( oFolder:aDialogs, {|x| x:oFont := oFont} )
Then the label are shown in the fond of the folder but the controls like oGet are still in a small font.
How can I manage that all controls and label are shown in the same size and font as the folder?
Thanks in advance
Otto
natter
Posted: Thu Mar 06, 2008 6:36 pm
by Natter
oFolder:SetFont(font1)
oFolder:oFont2:=font2
Posted: Thu Mar 06, 2008 8:05 pm
by Otto
Hello Natter, thank you for your help. Now it is working.
Regards,
Otto
Posted: Thu Mar 06, 2008 9:22 pm
by Otto
Natter, do you know how to get the font which was used in the rc-file.
oFolder:SetFont(font1)
oFolder:oFont2:=font2
Reghards,
Otto
natter
Posted: Thu Mar 06, 2008 10:41 pm
by Natter
what font ?
I not understand you question
Posted: Thu Mar 06, 2008 11:07 pm
by Otto
Natter, I mean the font I use in the resource file.
DLGTEST DIALOG 6, 15, 244, 155
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog de prueba - posibles bugs"
FONT 12, "MS Sans Serif"
{
LTEXT "Código :", -1, 9, 4, 38, 12
EDITTEXT 101, 41, 3, 52, 12
CONTROL FOLDER32, 102, FOLDER32, WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 21, 236, 108
PUSHBUTTON "&Aceptar", 201, 153, 135, 40, 14
PUSHBUTTON "&Cancelar", 202, 197, 135, 40, 14
}
I tried your solution but I had to define a font.
Regards,
Otto
#include "fivewin.ch"
PROCEDURE main()
LOCAL oDlg, oFolder, font1
LOCAL cContrato:=space(13) ,;
cNombre:=space(30) ,;
cDireccion:=space(60) ,;
cTelefono:=space(10) ,;
cNotas:=""
DEFINE FONT font1 NAME "ARIAL" SIZE 0,-10 BOLD
//Define dialogo
DEFINE DIALOG oDlg NAME "DLGTEST";
TITLE "Another folder test"
//Redefine controles
REDEFINE GET cContrato;
ID 101 OF oDlg;
PICTURE "@!" ;
VALID !empty(cContrato)
//Redefine controles del dialogo
REDEFINE FOLDER oFolder ;
ID 102 ;
OF oDlg ;
PROMPTS "Pagina &1","Pagina &2" ;
DIALOGS "DlgPage1", "DlgPage2"
oDlg:SetFont(Font1)
AEVAL( oFolder:aDialogs, {|x| x:oFont := Font1} )
oFolder:SetFont(Font1)
oFolder:oFont2:=Font1
// oFolder:lWin95Look:=.f.
//Redefine controles del 1er. page
*=======================================================================
REDEFINE GET cNombre;
ID 101 OF oFolder:aDialogs[1];
PICTURE "@!" ;
VALID !empty(cNombre)
REDEFINE GET cDireccion;
ID 102 OF oFolder:aDialogs[1];
PICTURE "@!";
VALID !empty(cDireccion)
REDEFINE GET cTelefono;
ID 103 OF oFolder:aDialogs[1]
REDEFINE BTNBMP ;
ID 104 OF oFolder:aDialogs[1];
NAME "CANCELAR";
ACTION ( MsgDate() )
//Redefine controles del 2do. page
*=======================================================================
REDEFINE GET cNotas;
ID 101 OF oFolder:aDialogs[2];
MEMO
*=======================================================================
REDEFINE BUTTON;
ID 201 OF oDlg
REDEFINE BUTTON;
ID 202 OF oDlg;
ACTION oDlg:end() CANCEL
//Activar dialogo
ACTIVATE DIALOG oDlg CENTER ON INIT msginfo(oDlg:SetFont(Font1))
RETURN
procedure AppSys // Xbase++ requirement
return
natter
Posted: Fri Mar 07, 2008 7:00 am
by Natter
.....................................
ACTIVATE DIALOG oDlg CENTER ON INIT My_Init()
procedure My_Init
local fnt
fnt:=oDlg:aControls[1]:oFont && or oDlg:aControls[1]:GetFont()
....................................
return
Posted: Fri Mar 07, 2008 10:21 am
by Otto
Thank you Natter,
Now I have the font in the My_Init function.
But how do I repaint/refresh all the controls?
Would you be so kind to help me on that, too?
Thanks in advance
Otto
procedure My_Init(oDlg,oFolder)
local fnt
local aPrompts :={"test1","test2"}
fnt := oDlg:GetFont()
msginfo(fnt:cFaceName())
//oDlg:SetFont(fnt)
//AEVAL( oFolder:aDialogs, {|x| x:oFont := fnt} )
//oFolder:SetFont(fnt)
//oFolder:oFont2 := fnt
return
natter
Posted: Fri Mar 07, 2008 10:32 am
by Natter
if I right understend
for st=1 to len(oDlg:aControls)
oDlg:aControls[st]:Refresh()
next
Posted: Fri Mar 07, 2008 4:01 pm
by Otto
Thank you Natter.
This iterates only through the
controls on the dialog not on the folder.
But I understand the system now.
I think it is easier to define the font in the program.
Thanks again for your help.
Regards,
Otto