@@ -7,10 +7,10 @@ interface
77
88uses
99 { $IFDEF MSWINDOWS} Windows,{ $ENDIF}
10- SysUtils, Classes, { $IFDEF DCC}{ $IFDEF HAS_SYSTEM_UITYPES} System.UITypes,{ $ENDIF}{ $ENDIF}
10+ SysUtils, Classes, Types, { $IFDEF DCC}{ $IFDEF HAS_SYSTEM_UITYPES} System.UITypes,{ $ENDIF}{ $ENDIF}
1111 Forms, Controls, Graphics, StdCtrls,
1212 { $IFDEF FPC} LCLType, LCLIntf,{ $ENDIF}
13- JPL.Rects, JPP.Common;
13+ JPL.Strings, JPL.TStr, JPL. Rects, JPP.Common;
1414
1515
1616function FontStylesToStr (FontStyles: TFontStyles): string;
@@ -22,7 +22,7 @@ function StrToAlignment(AlignmentStr: string; Default: TAlignment = taLeftJustif
2222
2323procedure MakeListFromStr (LineToParse: string; var List: TStringList; Separator: string = ' ,' );
2424function PadLeft (const Text: string; const PadToLen: integer; PaddingChar: Char = ' ' ): string;
25- procedure SaveStringToFile (const Content, FileName: string);
25+ // procedure SaveStringToFile(const Content, FileName: string); // use SaveStringToFile from JPL.Strings (JPLib)
2626
2727procedure JppFrame3D (Canvas: TCanvas; var Rect: TRect; LeftColor, RightColor, TopColor, BottomColor: TColor; Width: Integer); overload;
2828procedure JppFrame3D (Canvas: TCanvas; var Rect: TRect; Color: TColor; Width: integer); overload;
@@ -39,7 +39,10 @@ procedure DrawRectRightBorder(Canvas: TCanvas; Rect: TRect; Color: TColor; PenWi
3939
4040procedure DrawCenteredText (Canvas: TCanvas; Rect: TRect; const Text: string; DeltaX: integer = 0 ; DeltaY: integer = 0 );
4141
42- function GetFontName (const FontNameArray: array of string): string;
42+ function GetFontName (const FontNamesArray: array of string): string; overload;
43+ function GetFontName (const CommaSeparatedFontNames: string): string; overload;
44+ procedure GetControlDefaultFontParams (out FontName: string; out FontSize: integer);
45+ procedure SetFontDefaultParams (AFont: TFont);
4346
4447procedure InflateRectWithMargins (var ARect: TRect; const Margins: TJppMargins);
4548
@@ -273,22 +276,46 @@ procedure DrawShadowText(const Canvas: TCanvas; const Text: string; ARect: TRect
273276 DrawText(Canvas.Handle, PChar(Text), Length(Text), ARect, Flags);
274277end ;
275278
276- function GetFontName (const FontNameArray : array of string): string;
279+ function GetFontName (const FontNamesArray : array of string): string;
277280var
278281 FontName: string;
279282 i: integer;
280283begin
281- for i := Low(FontNameArray ) to High(FontNameArray ) do
284+ for i := Low(FontNamesArray ) to High(FontNamesArray ) do
282285 begin
283- FontName := FontNameArray [i];
284- if Screen.Fonts.IndexOf(FontName) >= 0 then // DONE: tu powinno być chyba >= 0
286+ FontName := FontNamesArray [i];
287+ if Screen.Fonts.IndexOf(FontName) >= 0 then
285288 begin
286289 Result := FontName;
287290 Break;
288291 end ;
289292 end ;
290293end ;
291294
295+ function GetFontName (const CommaSeparatedFontNames: string): string;
296+ var
297+ Arr: TStringDynArray;
298+ begin
299+ SplitStrToArrayEx(CommaSeparatedFontNames, Arr, ' ,' );
300+ Result := GetFontName(Arr);
301+ end ;
302+
303+ procedure GetControlDefaultFontParams (out FontName: string; out FontSize: integer);
304+ begin
305+ FontName := GetFontName([' Segoe UI' , ' Tahoma' , ' MS Sans Serif' ]);
306+ if FontName = ' Segoe UI' then FontSize := 9 else FontSize := 8 ;
307+ end ;
308+
309+ procedure SetFontDefaultParams (AFont: TFont);
310+ var
311+ FontName: string;
312+ FontSize: integer;
313+ begin
314+ GetControlDefaultFontParams(FontName, FontSize);
315+ AFont.Name := FontName;
316+ AFont.Size := FontSize;
317+ end ;
318+
292319
293320procedure InflateRectWithMargins (var ARect: TRect; const Margins: TJppMargins);
294321begin
@@ -599,18 +626,18 @@ procedure JppFrame3D(Canvas: TCanvas; var Rect: TRect; Color: TColor; Width: int
599626{ $endregion Drawing procs}
600627
601628
602- procedure SaveStringToFile (const Content, FileName: string);
603- var
604- sl: TStringList;
605- begin
606- sl := TStringList.Create;
607- try
608- sl.Text := Content;
609- sl.SaveToFile(FileName);
610- finally
611- sl.Free;
612- end ;
613- end ;
629+ // procedure SaveStringToFile(const Content, FileName: string);
630+ // var
631+ // sl: TStringList;
632+ // begin
633+ // sl := TStringList.Create;
634+ // try
635+ // sl.Text := Content;
636+ // sl.SaveToFile(FileName);
637+ // finally
638+ // sl.Free;
639+ // end;
640+ // end;
614641
615642function PadLeft (const Text: string; const PadToLen: integer; PaddingChar: Char = ' ' ): string;
616643begin
0 commit comments