| [453] | 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 |  | 
|---|