| 
			Author: Jonas Bilinkevicius
How can I completely hide the fontsize selection combobox in the font dialog? I 
have manipulated some properties of the fontdialog but the combobox where you pick 
the font size is always visible. Furthermore, I want to keep the preview of the 
font but with a fixed font size.
Answer:
Set the fdLimitSize option in the dialogs Options to true and specifiy the same 
size for the MinFontsize and Maxfontsize property.
Hide the font size list. This requires a bit of spy work to determine the control 
IDs in the dialog. Once this has been done you can attach a handler to the 
fontdialogs Onshow handler:
1   procedure TForm1.FontDialog1Show(Sender: TObject);
2   begin
3     EnableWindow(GetDlgItem(fontdialog1.handle, 1138), false);
4     EnableWindow(GetDlgItem(fontdialog1.handle, 1090), false);
5     ShowWindow(GetDlgItem(fontdialog1.handle, 1138), SW_HIDE);
6     ShowWindow(GetDlgItem(fontdialog1.handle, 1090), SW_HIDE);
7   end;
1138 is the handle of the font size combobox (it is a combobox, despite looking 
like an edit with a list box below it), 1090 the text label above it. Without 
disabling the controls the accelerator for the size box will close the dialog for 
some reason.
For the future: the spy works done here was performed this way:
8   
9   procedure TForm1.Button1Click(Sender: TObject);
10  begin
11    fontdialog1.execute;
12  end;
13  
14  function EnumProc(wnd: HWND; lines: TStrings): BOOL; stdcall;
15  var
16    buf, caption: array[0..255] of char;
17  begin
18    result := True;
19    GetClassname(wnd, buf, 256);
20    GetWindowText(wnd, caption, 256);
21    lines.add(format('ID: %d, class: %s, caption: %s', [GetDlgCtrlID(wnd), buf,
22      caption]));
23  end;
24  
25  procedure TForm1.FontDialog1Show(Sender: TObject);
26  begin
27    memo1.clear;
28    EnumChildWindows(fontdialog1.handle, @EnumProc, integer(memo1.lines));
29  end;
30  
31  {Output in memo:
32  
33  ID: 1088, class: Static, caption: Schrift&art:
34  ID: 1136, class: ComboBox, caption: MS Sans Serif
35  ID: 1000, class: ComboLBox, caption:
36  ID: 1001, class: Edit, caption: MS Sans Serif
37  ID: 1089, class: Static, caption: &Schriftschnitt:
38  ID: 1137, class: ComboBox, caption: Standard
39  ID: 1000, class: ComboLBox, caption:
40  ID: 1001, class: Edit, caption: Standard
41  ID: 1090, class: Static, caption: &Grad:
42  ID: 1138, class: ComboBox, caption: 8
43  ID: 1000, class: ComboLBox, caption:
44  ID: 1001, class: Edit, caption: 8
45  ID: 1, class: Button, caption: OK
46  ID: 2, class: Button, caption: Abbrechen
47  ID: 1026, class: Button, caption: Ü&bernehmen
48  ID: 1038, class: Button, caption: &Hilfe
49  ID: 1072, class: Button, caption: Darstellung
50  ID: 1040, class: Button, caption: &Durchgestrichen
51  ID: 1041, class: Button, caption: &Unterstrichen
52  ID: 1091, class: Static, caption: &Farbe:
53  ID: 1139, class: ComboBox, caption: Schwarz
54  ID: 1073, class: Button, caption: Muster
55  ID: 1092, class: Static, caption: AaBbYyZz
56  ID: 1093, class: Static, caption:
57  ID: 1094, class: Static, caption: S&chrift:
58  ID: 1140, class: ComboBox, caption: Western
59  }
			 |