| 1 | unit fIconLegend; | 
|---|
| 2 |  | 
|---|
| 3 | interface | 
|---|
| 4 |  | 
|---|
| 5 | uses | 
|---|
| 6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, dShared, | 
|---|
| 7 | ComCtrls, StdCtrls, ExtCtrls, ImgList, mImgText, Menus, FAutoSz, DKLang; | 
|---|
| 8 |  | 
|---|
| 9 | type | 
|---|
| 10 | TIconLegendType = (ilLast, ilNotes, ilTemplates, ilReminders, ilConsults, ilSurgery); | 
|---|
| 11 |  | 
|---|
| 12 | TfrmIconLegend = class(TfrmAutoSz) | 
|---|
| 13 | pcMain: TPageControl; | 
|---|
| 14 | pnlBottom: TPanel; | 
|---|
| 15 | Templates: TTabSheet; | 
|---|
| 16 | Reminders: TTabSheet; | 
|---|
| 17 | btnOK: TButton; | 
|---|
| 18 | fraImgText1: TfraImgText; | 
|---|
| 19 | fraImgText2: TfraImgText; | 
|---|
| 20 | fraImgText3: TfraImgText; | 
|---|
| 21 | fraImgText4: TfraImgText; | 
|---|
| 22 | fraImgText5: TfraImgText; | 
|---|
| 23 | fraImgText6: TfraImgText; | 
|---|
| 24 | fraImgText7: TfraImgText; | 
|---|
| 25 | fraImgText12: TfraImgText; | 
|---|
| 26 | Panel1: TPanel; | 
|---|
| 27 | fraImgText8: TfraImgText; | 
|---|
| 28 | fraImgText10: TfraImgText; | 
|---|
| 29 | fraImgText15: TfraImgText; | 
|---|
| 30 | fraImgText16: TfraImgText; | 
|---|
| 31 | fraImgText17: TfraImgText; | 
|---|
| 32 | fraImgText13: TfraImgText; | 
|---|
| 33 | fraImgText14: TfraImgText; | 
|---|
| 34 | Panel2: TPanel; | 
|---|
| 35 | fraImgText22: TfraImgText; | 
|---|
| 36 | fraImgText20: TfraImgText; | 
|---|
| 37 | fraImgText19: TfraImgText; | 
|---|
| 38 | fraImgText18: TfraImgText; | 
|---|
| 39 | fraImgText21: TfraImgText; | 
|---|
| 40 | fraImgText11: TfraImgText; | 
|---|
| 41 | fraImgText9: TfraImgText; | 
|---|
| 42 | fraImgText23: TfraImgText; | 
|---|
| 43 | fraImgText24: TfraImgText; | 
|---|
| 44 | Label1: TLabel; | 
|---|
| 45 | Label2: TLabel; | 
|---|
| 46 | Label3: TLabel; | 
|---|
| 47 | Notes: TTabSheet; | 
|---|
| 48 | fraImgText25: TfraImgText; | 
|---|
| 49 | fraImgText26: TfraImgText; | 
|---|
| 50 | fraImgText27: TfraImgText; | 
|---|
| 51 | fraImgText28: TfraImgText; | 
|---|
| 52 | fraImgText29: TfraImgText; | 
|---|
| 53 | fraImgText30: TfraImgText; | 
|---|
| 54 | fraImgText31: TfraImgText; | 
|---|
| 55 | fraImgText32: TfraImgText; | 
|---|
| 56 | fraImgText33: TfraImgText; | 
|---|
| 57 | fraImgText34: TfraImgText; | 
|---|
| 58 | Consults: TTabSheet; | 
|---|
| 59 | Panel3: TPanel; | 
|---|
| 60 | fraImgText35: TfraImgText; | 
|---|
| 61 | fraImgText36: TfraImgText; | 
|---|
| 62 | fraImgText43: TfraImgText; | 
|---|
| 63 | Panel4: TPanel; | 
|---|
| 64 | Label5: TLabel; | 
|---|
| 65 | fraImgText41: TfraImgText; | 
|---|
| 66 | fraImgText37: TfraImgText; | 
|---|
| 67 | fraImgText38: TfraImgText; | 
|---|
| 68 | fraImgText39: TfraImgText; | 
|---|
| 69 | fraImgText40: TfraImgText; | 
|---|
| 70 | Label4: TLabel; | 
|---|
| 71 | fraImgText44: TfraImgText; | 
|---|
| 72 | Surgery: TTabSheet; | 
|---|
| 73 | fraImgText42: TfraImgText; | 
|---|
| 74 | fraImgText45: TfraImgText; | 
|---|
| 75 | fraImgText46: TfraImgText; | 
|---|
| 76 | fraImgText47: TfraImgText; | 
|---|
| 77 | fraImgText48: TfraImgText; | 
|---|
| 78 | fraImgText49: TfraImgText; | 
|---|
| 79 | fraImgText50: TfraImgText; | 
|---|
| 80 | fraImgText51: TfraImgText; | 
|---|
| 81 | fraImgText52: TfraImgText; | 
|---|
| 82 | fraImgText53: TfraImgText; | 
|---|
| 83 | fraImgText54: TfraImgText; | 
|---|
| 84 | fraImgText55: TfraImgText; | 
|---|
| 85 | fraImgText56: TfraImgText; | 
|---|
| 86 | fraImgText57: TfraImgText; | 
|---|
| 87 | fraImgText58: TfraImgText; | 
|---|
| 88 | fraImgText59: TfraImgText; | 
|---|
| 89 | fraImgText60: TfraImgText; | 
|---|
| 90 | fraImgText61: TfraImgText; | 
|---|
| 91 | procedure btnOKClick(Sender: TObject); | 
|---|
| 92 | procedure FormClose(Sender: TObject; var Action: TCloseAction); | 
|---|
| 93 | procedure FormDestroy(Sender: TObject); | 
|---|
| 94 | procedure FormKeyDown(Sender: TObject; var Key: Word; | 
|---|
| 95 | Shift: TShiftState); | 
|---|
| 96 | private | 
|---|
| 97 | procedure ShowTab(tb: TIconLegendType); | 
|---|
| 98 | procedure SnapLabels; | 
|---|
| 99 | public | 
|---|
| 100 | class procedure SetFontSize( NewFontSize: integer); | 
|---|
| 101 | end; | 
|---|
| 102 |  | 
|---|
| 103 | procedure ShowIconLegend(IconType: TIconLegendType; Restart: boolean = FALSE); | 
|---|
| 104 |  | 
|---|
| 105 | implementation | 
|---|
| 106 |  | 
|---|
| 107 | uses | 
|---|
| 108 | fFrame, uConst, ORFn; | 
|---|
| 109 |  | 
|---|
| 110 | {$R *.DFM} | 
|---|
| 111 |  | 
|---|
| 112 | var | 
|---|
| 113 | frmIconLegend: TfrmIconLegend = nil; | 
|---|
| 114 | LastX, LastY: integer; | 
|---|
| 115 | FirstSize: boolean = TRUE; | 
|---|
| 116 |  | 
|---|
| 117 | procedure ShowIconLegend(IconType: TIconLegendType; Restart: boolean = FALSE); | 
|---|
| 118 | begin | 
|---|
| 119 | if assigned(frmIconLegend) and Restart then | 
|---|
| 120 | FreeAndNil(frmIconLegend); | 
|---|
| 121 | if not assigned(frmIconLegend) then | 
|---|
| 122 | begin | 
|---|
| 123 | frmIconLegend := TfrmIconLegend.Create(Application); | 
|---|
| 124 | frmIconLegend.Surgery.TabVisible := frmFrame.TabExists(CT_SURGERY); | 
|---|
| 125 | end; | 
|---|
| 126 | frmIconLegend.ShowTab(IconType); | 
|---|
| 127 | TfrmIconLegend.SetFontSize( MainFontSize ); | 
|---|
| 128 | frmIconLegend.Show; | 
|---|
| 129 | end; | 
|---|
| 130 |  | 
|---|
| 131 | procedure TfrmIconLegend.btnOKClick(Sender: TObject); | 
|---|
| 132 | begin | 
|---|
| 133 | Close; | 
|---|
| 134 | end; | 
|---|
| 135 |  | 
|---|
| 136 | procedure TfrmIconLegend.ShowTab(tb: TIconLegendType); | 
|---|
| 137 | begin | 
|---|
| 138 | case tb of | 
|---|
| 139 | ilTemplates: pcMain.ActivePage := Templates; | 
|---|
| 140 | ilReminders: pcMain.ActivePage := Reminders; | 
|---|
| 141 | ilNotes:     pcMain.ActivePage := Notes; | 
|---|
| 142 | ilConsults:  pcMain.ActivePage := Consults; | 
|---|
| 143 | ilSurgery:   pcMain.ActivePage := Surgery; | 
|---|
| 144 | end; | 
|---|
| 145 | end; | 
|---|
| 146 |  | 
|---|
| 147 | procedure TfrmIconLegend.FormClose(Sender: TObject; | 
|---|
| 148 | var Action: TCloseAction); | 
|---|
| 149 | begin | 
|---|
| 150 | Action := caFree; | 
|---|
| 151 |  | 
|---|
| 152 | end; | 
|---|
| 153 |  | 
|---|
| 154 | procedure TfrmIconLegend.FormDestroy(Sender: TObject); | 
|---|
| 155 | begin | 
|---|
| 156 | LastX := Left; | 
|---|
| 157 | LastY := Top; | 
|---|
| 158 | frmIconLegend := nil; | 
|---|
| 159 | end; | 
|---|
| 160 |  | 
|---|
| 161 | class procedure TfrmIconLegend.SetFontSize( NewFontSize: integer); | 
|---|
| 162 | begin | 
|---|
| 163 | if Assigned(frmIconLegend) then begin | 
|---|
| 164 | if FirstSize or (frmIconLegend.Font.Size <> NewFontSize) then begin | 
|---|
| 165 | ResizeFormToFont(frmIconLegend); | 
|---|
| 166 | frmIconLegend.Font.Size := NewFontSize; | 
|---|
| 167 | frmIconLegend.SnapLabels; | 
|---|
| 168 | FirstSize := FALSE; | 
|---|
| 169 | LastX := (Screen.Width - frmIconLegend.Width) div 2; | 
|---|
| 170 | LastY := (Screen.Height - frmIconLegend.Height) div 2; | 
|---|
| 171 | end; | 
|---|
| 172 | frmIconLegend.Left := LastX; | 
|---|
| 173 | frmIconLegend.Top := LastY; | 
|---|
| 174 | end; | 
|---|
| 175 | end; | 
|---|
| 176 |  | 
|---|
| 177 | procedure TfrmIconLegend.SnapLabels; | 
|---|
| 178 | var | 
|---|
| 179 | i: integer; | 
|---|
| 180 | begin | 
|---|
| 181 | for i := 0 to ComponentCount-1 do | 
|---|
| 182 | if Components[i] is TfraImgText then | 
|---|
| 183 | with TfraImgText(Components[i]).lblText do | 
|---|
| 184 | if (AutoSize and WordWrap) then begin | 
|---|
| 185 | {Snap width to fit.  We turn autosize off and on to snap height, too. | 
|---|
| 186 | If we don't tweak AutoSize, it tends to give the frame a vertical | 
|---|
| 187 | scroll bar.} | 
|---|
| 188 | AutoSize := False; | 
|---|
| 189 | Width := Parent.Width - Left - ScrollBarWidth; | 
|---|
| 190 | AutoSize := True; | 
|---|
| 191 | end; | 
|---|
| 192 | end; | 
|---|
| 193 |  | 
|---|
| 194 | procedure TfrmIconLegend.FormKeyDown(Sender: TObject; var Key: Word; | 
|---|
| 195 | Shift: TShiftState); | 
|---|
| 196 | begin | 
|---|
| 197 | inherited; | 
|---|
| 198 | if (Key = VK_TAB) then begin | 
|---|
| 199 | if (ssCtrl in Shift) then begin | 
|---|
| 200 | if not (ActiveControl is TCustomMemo) or not TMemo(ActiveControl).WantTabs then begin | 
|---|
| 201 | pcMain.SelectNextPage( not (ssShift in Shift)); | 
|---|
| 202 | Key := 0; | 
|---|
| 203 | end; | 
|---|
| 204 | end; | 
|---|
| 205 | end; | 
|---|
| 206 | end; | 
|---|
| 207 |  | 
|---|
| 208 | end. | 
|---|
| 209 |  | 
|---|
| 210 |  | 
|---|
| 211 |  | 
|---|
| 212 |  | 
|---|
| 213 |  | 
|---|
| 214 |  | 
|---|
| 215 |  | 
|---|
| 216 |  | 
|---|
| 217 |  | 
|---|
| 218 |  | 
|---|
| 219 |  | 
|---|
| 220 |  | 
|---|
| 221 |  | 
|---|
| 222 |  | 
|---|
| 223 |  | 
|---|
| 224 |  | 
|---|
| 225 |  | 
|---|
| 226 |  | 
|---|
| 227 |  | 
|---|