[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]
{
MICHAEL A VINCZE
Below is an example I whipped up that shows how to vary the font in an edit control.
The method can be extended to other controls as well. Two methods are presented:
using a stock object to get a fixed font, and using a created font.
I have not figured out how to get the colors to change though.
}
program Font_Ctl;
uses
Win31, WinTypes, WinProcs,
Objects, OWindows, ODialogs;
const
ApplicationName : PChar = 'Font_Ctl';
id_Edit1 = 201;
id_Edit2 = 202;
id_Edit3 = 203;
type
TFont_CtlApplication = object (TApplication)
procedure InitMainWindow; virtual;
end;
PFont_CtlWindow = ^TFont_CtlWindow;
TFont_CtlWindow = object (TWindow)
EditBox : PEdit;
VarFont : HFont;
FixFont : THandle;
constructor Init(AParent : PWindowsObject; ATitle : PChar);
procedure SetupWindow; virtual;
destructor Done; virtual;
end;
procedure TFont_CtlApplication.InitMainWindow;
begin
MainWindow := New(PFont_CtlWindow, Init(nil, ApplicationName));
end;
constructor TFont_CtlWindow.Init(AParent : PWindowsObject; ATitle : PChar);
begin
inherited Init(AParent, ATitle);
EditBox := New(PEdit, Init (@Self, id_Edit1, 'EditBox 1 (normal)',
10, 10, 500, 30, $FF, False));
EditBox := New(PEdit, Init (@Self, id_Edit2, 'EditBox 2 (fixed font)',
10, 50, 500, 30, $FF, False));
EditBox := New(PEdit, Init (@Self, id_Edit3, 'EditBox 3 (variable font)',
10, 90, 500, 30, $FF, False));
FixFont := GetStockObject (System_Fixed_Font);
VarFont := CreateFont(20, 20, 0, 0, fw_DontCare, 0, 0, 0,
Default_CharSet, Out_Default_Precis,
Clip_Default_Precis, Default_Quality,
Variable_Pitch or ff_DontCare, nil);
end;
destructor TFont_CtlWindow.Done;
begin
inherited Done;
DeleteObject(VarFont);
end;
procedure TFont_CtlWindow.SetupWindow;
begin
inherited SetupWindow;
SendMessage(GetDlgItem (HWindow, id_Edit2), wm_SetFont, FixFont, 1);
SendMessage(GetDlgItem (HWindow, id_Edit3), wm_SetFont, VarFont, 1);
end;
var
Application : TFont_CtlApplication;
begin
Application.Init (ApplicationName);
Application.Run;
Application.Done;
end.
[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]