From: <tw...@us...> - 2020-04-04 17:44:27
|
Revision: 3073 http://sourceforge.net/p/gexperts/code/3073 Author: twm Date: 2020-04-04 17:44:25 +0000 (Sat, 04 Apr 2020) Log Message: ----------- updated to latest dzlib units Modified Paths: -------------- trunk/ExternalSource/dzlib/dzlib.inc trunk/ExternalSource/dzlib/dzlibjedi.inc trunk/ExternalSource/dzlib/u_dzClassUtils.pas trunk/ExternalSource/dzlib/u_dzStringUtils.pas trunk/ExternalSource/dzlib/u_dzTypes.pas trunk/ExternalSource/dzlib/u_dzVariantUtils.pas trunk/ExternalSource/dzlib/u_dzVclUtils.pas Modified: trunk/ExternalSource/dzlib/dzlib.inc =================================================================== --- trunk/ExternalSource/dzlib/dzlib.inc 2020-03-15 17:35:35 UTC (rev 3072) +++ trunk/ExternalSource/dzlib/dzlib.inc 2020-04-04 17:44:25 UTC (rev 3073) @@ -1,5 +1,19 @@ {$INCLUDE 'dzlibjedi.inc'} +{$IFDEF RTL210_UP} +{$DEFINE HAS_JSON_SUPPORT} +{$ENDIF} + +{$IFDEF RTL270_UP} +{$DEFINE HAS_UNIT_SYSTEM_JSON} +{$ENDIF} + +{$IFDEF DELPHIXE7_UP} +// For now I assume the BDE is not installed for Delphi XE7 and later, but that +// largely depends on what the user selected for installation. +{$DEFINE BDE_IS_DEPRECATED} +{$ENDIF} + {$IFDEF DELPHI7_UP} // TBitBtn.WordWrap was introduced in Delphi 7 {$DEFINE HAS_BITBTN_WORDWRAP} @@ -10,11 +24,14 @@ {$IFDEF DELPHI2005_UP} // Delphi 6 and 7 understood deprecated, but not for types {$DEFINE SUPPORTS_DEPRECATED_TYPES} +{$DEFINE HAS_UNIT_WIDESTRINGS} +{$DEFINE OPENDIALOG_EXCUTE_HAS_HANDLE} {$ENDIF} {$IFDEF DELPHI2006_UP} -// TBitmap.SetSize was it introduced with Delphi 2006 +// TBitmap.SetSize was introduced with Delphi 2006 {$DEFINE SUPPPORTS_BITMAP_SETSIZE} +{$DEFINE DATASET_GETFIELDS_IS_WIDESTRINGLIST} {$ENDIF} {$IFDEF DELPHI7_UP} @@ -35,11 +52,13 @@ {$IFDEF DELPHI2009_UP} // THandleStream.FHandle is declared as THandle (before that it's an Integer) {$DEFINE THANDLESTREAM_HANDLE_IS_THANDLE} +{$DEFINE HAS_TOBJECT_TOSTRING} {$ENDIF} {$IFDEF DELPHIXE2_UP} // AHandle is declared as THandle (otherwise it's an Integer) {$DEFINE THANDLESTREAM_CREATE_HANDLE_IS_THANDLE} +{$DEFINE MAXLISTSIZE_IS_DEPRECATED} {$ENDIF} {$IFDEF DELPHIX_TOKYO_UP} @@ -47,6 +66,9 @@ {$DEFINE HAS_INTTOHEX_FUNCTION} {$ENDIF} +// we currently support only Windows (and a very small subset of Win64), so we turn platform +// warnings off + {$WARN SYMBOL_PLATFORM OFF} {$WARN UNIT_PLATFORM OFF} Modified: trunk/ExternalSource/dzlib/dzlibjedi.inc =================================================================== --- trunk/ExternalSource/dzlib/dzlibjedi.inc 2020-03-15 17:35:35 UTC (rev 3072) +++ trunk/ExternalSource/dzlib/dzlibjedi.inc 2020-04-04 17:44:25 UTC (rev 3073) @@ -553,6 +553,9 @@ SUPPORTS_FINAL Compiler supports final keyword (D9.NET, D10+) SUPPORTS_METHODINFO Compiler supports the METHODINFO directives (D10+) SUPPORTS_GENERICS Compiler supports generic implementations (D11.NET, D12+) + SUPPORTS_GENERIC_TYPES Compiler supports generic implementations of types (D11.NET, D12+, FPC) + SUPPORTS_GENERIC_METHODS Compiler supports generic implementations of methods (D11.NET, D12+, FPC) + SUPPORTS_GENERIC_ROUTINES Compiler supports generic implementations of global functions/procedures (FPC) SUPPORTS_DEPRECATED_DETAILS Compiler supports additional text for the deprecated directive (D11.NET, D12+) ACCEPT_DEPRECATED Compiler supports or ignores the deprecated directive (D6+/BCB6+/FPC) ACCEPT_PLATFORM Compiler supports or ignores the platform directive (D6+/BCB6+/FPC) @@ -1544,15 +1547,26 @@ {$IFDEF VER1_0} Please use FPC 2.0 or higher to compile this. {$ELSE} + { FPC_FULLVERSION is available from 2.2.4 on } + {$DEFINE SUPPORTS_OUTPARAMS} {$DEFINE SUPPORTS_WIDECHAR} {$DEFINE SUPPORTS_WIDESTRING} - {$IFDEF HASINTF} + {$IF DEFINED(VER2_0) OR DEFINED(VER2_1)} + {$IFDEF HASINTF} + {$DEFINE SUPPORTS_INTERFACE} + {$ENDIF} + {$IFDEF HASVARIANT} + {$DEFINE SUPPORTS_VARIANT} + {$ENDIF} + {$IFDEF HASCURRENCY} + {$DEFINE SUPPORTS_CURRENCY} + {$ENDIF} + {$ELSE} {$DEFINE SUPPORTS_INTERFACE} - {$ENDIF} - {$IFDEF HASVARIANT} {$DEFINE SUPPORTS_VARIANT} - {$ENDIF} + {$DEFINE SUPPORTS_CURRENCY} + {$IFEND} {$IFDEF FPC_HAS_TYPE_SINGLE} {$DEFINE SUPPORTS_SINGLE} {$ENDIF} @@ -1562,9 +1576,6 @@ {$IFDEF FPC_HAS_TYPE_EXTENDED} {$DEFINE SUPPORTS_EXTENDED} {$ENDIF} - {$IFDEF HASCURRENCY} - {$DEFINE SUPPORTS_CURRENCY} - {$ENDIF} {$DEFINE SUPPORTS_THREADVAR} {$DEFINE SUPPORTS_CONSTPARAMS} {$DEFINE SUPPORTS_LONGWORD} @@ -1575,15 +1586,26 @@ {$DEFINE ACCEPT_DEPRECATED} // 2.2 also gives warnings {$DEFINE ACCEPT_PLATFORM} // 2.2 also gives warnings {$DEFINE ACCEPT_LIBRARY} + {$DEFINE SUPPORTS_DEPRECATED} + {$DEFINE SUPPORTS_PLATFORM} + {$DEFINE SUPPORTS_LIBRARY} + {$DEFINE SUPPORTS_DEPRECATED_WARNINGS} + {$DEFINE SUPPORTS_PLATFORM_WARNINGS} {$DEFINE SUPPORTS_EXTSYM} {$DEFINE SUPPORTS_NODEFINE} + {$DEFINE SUPPORTS_DISPINTERFACE} + {$DEFINE SUPPORTS_IMPLEMENTS} + {$DEFINE SUPPORTS_DISPID} + {$DEFINE SUPPORTS_INLINE} + {$DEFINE SUPPORTS_STATIC} + {$DEFINE SUPPORTS_COMPILETIME_MESSAGES} {$DEFINE SUPPORTS_CUSTOMVARIANTS} {$DEFINE SUPPORTS_VARARGS} {$DEFINE SUPPORTS_ENUMVALUE} - {$IFDEF LINUX} + {$IF DEFINED(LINUX) AND DEFINED(CPU386)} {$DEFINE HAS_UNIT_LIBC} - {$ENDIF LINUX} + {$IFEND} {$DEFINE HAS_UNIT_CONTNRS} {$DEFINE HAS_UNIT_TYPES} {$DEFINE HAS_UNIT_VARIANTS} @@ -1593,19 +1615,68 @@ {$DEFINE XPLATFORM_RTL} - {$IFDEF VER2_2} - {$DEFINE SUPPORTS_DISPINTERFACE} - {$DEFINE SUPPORTS_IMPLEMENTS} - {$DEFINE SUPPORTS_DISPID} + {$IF DEFINED(FPC_FULLVERSION)} + { 2.2.4 or newer } + + {$DEFINE SUPPORTS_SETPEFLAGS} + {$DEFINE SUPPORTS_STRICT} + + {$IF defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 20400)} + {$DEFINE SUPPORTS_UINT64} + {$DEFINE SUPPORTS_EXPERIMENTAL_WARNINGS} + {$DEFINE SUPPORTS_REGION} + {$DEFINE SUPPORTS_UNICODE_STRING} + {$IFEND} + + {$IF defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 20402)} + {$DEFINE SUPPORTS_FOR_IN} + {$IFEND} + + {$IF defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 20600)} + {$DEFINE SUPPORTS_LIBRARY_WARNINGS} + {$DEFINE SUPPORTS_DEPRECATED_DETAILS} + {$DEFINE SUPPORTS_NESTED_TYPES} + {$DEFINE SUPPORTS_NESTED_CONSTANTS} + {$DEFINE SUPPORTS_ENHANCED_RECORDS} // called Advanced Records in FPC + {$DEFINE SUPPORTS_CLASS_FIELDS} + {$DEFINE SUPPORTS_CLASS_HELPERS} + {$DEFINE SUPPORTS_CLASS_OPERATORS} + {$DEFINE SUPPORTS_CLASS_CTORDTORS} + {$DEFINE SUPPORTS_FINAL} + {$DEFINE SUPPORTS_CAST_INTERFACE_TO_OBJ} + + {$DEFINE HAS_ENOTIMPLEMENTED} + {$IFEND} + + {$IF defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 20602)} + {$DEFINE SUPPORTS_INT_ALIASES} + + {$DEFINE HAS_EARGUMENTEXCEPTION} + {$IFEND} + + {$IF defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 30000)} + {$DEFINE SUPPORTS_GENERICS} + {$DEFINE SUPPORTS_GENERIC_TYPES} + + {$DEFINE HAS_UNIT_CHARACTER} + {$IFEND} + + {$IF defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 30200)} + {$DEFINE SUPPORTS_GENERIC_METHODS} + {$DEFINE SUPPORTS_GENERIC_ROUTINES} + {$DEFINE SUPPORTS_WEAKPACKAGEUNIT} + + {$DEFINE HAS_UNIT_RTTI} + {$DEFINE HAS_UNIT_SYSTEM_UITYPES} + {$IFEND} {$ELSE} - {$UNDEF SUPPORTS_DISPINTERFACE} - {$UNDEF SUPPORTS_IMPLEMENTS} - {$endif} - {$UNDEF SUPPORTS_UNSAFE_WARNINGS} + { older than 2.2.4 } - {$IFDEF VER3} - {$DEFINE SUPPORTS_DEPRECATED_DETAILS} - {$endif} + {$IFDEF VER2_2} + {$SUPPORTS_SETPEFLAGS} + {$SUPPORTS_STRICT} + {$ENDIF} + {$IFEND} {$ENDIF} {$ENDIF FPC} @@ -1706,6 +1777,8 @@ {$IFDEF COMPILER11_UP} {$IFDEF CLR} {$DEFINE SUPPORTS_GENERICS} + {$DEFINE SUPPORTS_GENERIC_TYPES} + {$DEFINE SUPPORTS_GENERIC_METHODS} {$DEFINE SUPPORTS_DEPRECATED_DETAILS} {$ENDIF CLR} {$ENDIF COMPILER11_UP} @@ -1712,6 +1785,8 @@ {$IFDEF COMPILER12_UP} {$DEFINE SUPPORTS_GENERICS} + {$DEFINE SUPPORTS_GENERIC_TYPES} + {$DEFINE SUPPORTS_GENERIC_METHODS} {$DEFINE SUPPORTS_DEPRECATED_DETAILS} {$DEFINE SUPPORTS_INT_ALIASES} {$IFNDEF CLR} Modified: trunk/ExternalSource/dzlib/u_dzClassUtils.pas =================================================================== --- trunk/ExternalSource/dzlib/u_dzClassUtils.pas 2020-03-15 17:35:35 UTC (rev 3072) +++ trunk/ExternalSource/dzlib/u_dzClassUtils.pas 2020-04-04 17:44:25 UTC (rev 3073) @@ -17,6 +17,7 @@ IniFiles, Registry, u_dzTranslator, + u_dzTypes, u_dzDateUtils; // we need this for the $IF Declared() directives // NOTE: The naming convention is <extended-class>_<Methodname> @@ -202,7 +203,7 @@ /// @param s is the string to write /// @returns the number of bytes written. /// </summary> -function TStream_WriteString(_Stream: TStream; const _s: string): Integer; +function TStream_WriteString(_Stream: TStream; const _s: RawByteString): Integer; /// <summary> /// Write a ShortString to the stream as binary, that is the length byte followed by len content bytes @@ -225,7 +226,7 @@ /// @param s is the string to write /// @returns the number of bytes written. /// </summary> -function TStream_WriteStringLn(_Stream: TStream; const _s: string): Integer; +function TStream_WriteStringLn(_Stream: TStream; const _s: RawByteString): Integer; /// <summary> /// Read a line from a stream, that is, a string ending in CRLF @@ -998,7 +999,7 @@ Result := _st.Values[Name]; end; -function TStream_WriteString(_Stream: TStream; const _s: string): Integer; +function TStream_WriteString(_Stream: TStream; const _s: RawByteString): Integer; var Len: Integer; ErrCode: DWORD; @@ -1035,7 +1036,7 @@ _Stream.ReadBuffer(Result[1], Len); end; -function TStream_WriteStringLn(_Stream: TStream; const _s: string): Integer; +function TStream_WriteStringLn(_Stream: TStream; const _s: RawByteString): Integer; begin Result := TStream_WriteString(_Stream, _s); Result := Result + TStream_WriteString(_Stream, #13#10); @@ -1043,7 +1044,7 @@ function TStream_WriteFmtLn(_Stream: TStream; const _Format: string; _Args: array of const): Integer; begin - Result := TStream_WriteStringLn(_Stream, Format(_Format, _Args)); + Result := TStream_WriteStringLn(_Stream, AnsiString(Format(_Format, _Args))); end; // Turn Warning off, because Delphi 2007 thinks that the variable might not have been initialized. @@ -1063,6 +1064,8 @@ begin // twm: this is not really efficient, because it reads single bytes, if it becomes a problem, optimize it ;-) OldPos := _Stream.Position; + Endstring := 0; + NewPos := 0; while True do begin if _Stream.Read(c, 1) = 0 then begin // end of file EndString := _Stream.Position; Modified: trunk/ExternalSource/dzlib/u_dzStringUtils.pas =================================================================== --- trunk/ExternalSource/dzlib/u_dzStringUtils.pas 2020-03-15 17:35:35 UTC (rev 3072) +++ trunk/ExternalSource/dzlib/u_dzStringUtils.pas 2020-04-04 17:44:25 UTC (rev 3073) @@ -250,9 +250,16 @@ {$IF not Declared(StartsText)} function StartsText(const _Start, _s: string): Boolean; +{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} {$DEFINE STARTSTEXT_IMPLEMENTATION_REQUIRED} {$IFEND} +{$IF not Declared(StartsStr)} +function StartsStr(const _Start, _s: string): boolean; +{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} +{$DEFINE STARTSSTR_IMPLEMENTATION_REQUIRED} +{$IFEND} + {$IF not Declared(ContainsStr)} function ContainsStr(const _Text, _SubText: string): Boolean; {$DEFINE CONTAINSSTR_IMPLEMENTATION_REQUIRED} @@ -409,6 +416,11 @@ function Copy(const _s: string; _Pos, _Len: Integer): string; overload; function Copy(const _s: string; _Pos: Integer): string; overload; {$ENDIF SUPPORTS_UNICODE} +{$IFNDEF DELPHI2005_UP} +// Delphi 6/7 does not have Copy without the length parameter +function Copy(const _s: string; _Pos: Integer): string; overload; +function Copy(const _s: string; _Pos, _Len: Integer): string; overload; +{$ENDIF ~DELPHI2005_UP} ///<summary> /// Converts Tab characters into SpcCount spaces </summary> @@ -415,10 +427,15 @@ function Tab2Spaces(const _s: string; _SpcCount: Integer): string; function StartsWith(const _Start, _s: string): Boolean; +{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} + function EndsWith(const _End, _s: string): Boolean; +{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} function UStartsWith(const _Start, _s: string): Boolean; +{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} function UEndsWith(const _End, _s: string): Boolean; +{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} function UnquoteString(const _s: string; _Quote: Char = '"'): string; @@ -755,7 +772,6 @@ {$ENDIF} {$IFDEF STARTSTEXT_IMPLEMENTATION_REQUIRED} - function StartsText(const _Start, _s: string): Boolean; begin Result := UStartsWith(_Start, _s); @@ -762,8 +778,14 @@ end; {$ENDIF} +{$IFDEF STARTSSTR_IMPLEMENTATION_REQUIRED} +function StartsStr(const _Start, _s: string): boolean; +begin + Result := AnsiStartsStr(_Start,_s); +end; +{$ENDIF} + {$IFDEF CONTAINSSTR_IMPLEMENTATION_REQUIRED} - function ContainsStr(const _Text, _SubText: string): Boolean; begin Result := (Pos(_SubText, _Text) > 0); @@ -1278,22 +1300,22 @@ function StartsWith(const _Start, _s: string): Boolean; begin - Result := AnsiSameStr(_Start, LeftStr(_s, Length(_Start))); + Result := AnsiStartsStr(_Start, _s) end; function UStartsWith(const _Start, _s: string): Boolean; begin - Result := AnsiSameText(_Start, LeftStr(_s, Length(_Start))); + Result := AnsiStartsText(_Start, LeftStr(_s, Length(_Start))); end; function EndsWith(const _End, _s: string): Boolean; begin - Result := AnsiSameStr(_End, RightStr(_s, Length(_End))); + Result := AnsiEndsStr(_End, RightStr(_s, Length(_End))); end; function UEndsWith(const _End, _s: string): Boolean; begin - Result := AnsiSameText(_End, RightStr(_s, Length(_End))); + Result := AnsiEndsText(_end, _s); end; function UnquoteString(const _s: string; _Quote: Char): string; @@ -1474,6 +1496,19 @@ end; {$ENDIF SUPPORTS_UNICODE} +{$IFNDEF DELPHI2005_UP} +// Delphi 6 does not have Copy without the length parameter +function Copy(const _s: string; _Pos: Integer): string; +begin + Result := Copy(_s, _Pos, Length(_s) - _Pos); +end; + +function Copy(const _s: string; _Pos, _Len: Integer): string; +begin + Result := System.Copy(_s, _Pos, _Len); +end; +{$ENDIF ~DELPHI2005_UP} + function MakeUniqueString(const _s: string): string; begin Result := _s; Modified: trunk/ExternalSource/dzlib/u_dzTypes.pas =================================================================== --- trunk/ExternalSource/dzlib/u_dzTypes.pas 2020-03-15 17:35:35 UTC (rev 3072) +++ trunk/ExternalSource/dzlib/u_dzTypes.pas 2020-04-04 17:44:25 UTC (rev 3073) @@ -24,6 +24,9 @@ {$IF not Declared(TBytes)} TBytes = array of Byte; {$IFEND} +{$IF not Declared(RawByteString)} + RawByteString = AnsiString; +{$IFEND} type TByteMatrix = array of array of Byte; Modified: trunk/ExternalSource/dzlib/u_dzVariantUtils.pas =================================================================== --- trunk/ExternalSource/dzlib/u_dzVariantUtils.pas 2020-03-15 17:35:35 UTC (rev 3072) +++ trunk/ExternalSource/dzlib/u_dzVariantUtils.pas 2020-04-04 17:44:25 UTC (rev 3073) @@ -171,7 +171,7 @@ /// @returns the extended value of v or the Default if v can not be converted </summary> function Var2Ext(const _v: Variant; const _Default: Extended): Extended; -{$IF Declared(Str2Date)} +{$IF Declared(TryStrToDateTime)} ///<summary> Converts a variant to a TDateTime. /// Raises an exception if v can not be converted. /// @param v Variant value to convert @@ -183,7 +183,7 @@ function Var2DateTimeEx(const _v: Variant; const _Source: string): TDateTime; {$IFEND} -{$IF Declared(TryStr2Date)} +{$IF Declared(TryStr2DateTime)} function TryVar2DateTime(const _v: Variant; out _dt: TDateTime): Boolean; {$IFEND} @@ -427,7 +427,7 @@ Result := _NullValue; end; -{$IF Declared(Str2Date)} +{$IF Declared(TryStrToDateTime)} function Var2DateTimeEx(const _v: Variant; const _Source: string): TDateTime; const EXPECTED = 'Date'; // do not translate @@ -437,7 +437,8 @@ if VarIsEmpty(_v) then raise EVarIsEmpty.CreateFmt(_('Variant is Empty, should be %s: %s'), [EXPECTED, _Source]); if VarIsStr(_v) then begin - Result := Str2Date(_v); + if not TryStrToDateTime(_v, Result) then + raise EVariantConvertError.CreateFmt(_('Variant can not be converted to %s: %s'), [EXPECTED, _Source]); end else begin try Result := _v; @@ -449,10 +450,10 @@ end; {$IFEND} -{$IF Declared(TryStr2Date)} +{$IF Declared(TryStr2DateTime)} function TryVar2DateTime(const _v: Variant; out _dt: TDateTime): Boolean; + // from Variants - function VarToDoubleCustom(const V: TVarData; out AValue: Double): Boolean; var LHandler: TCustomVariantType; @@ -473,7 +474,7 @@ if Result then _dt := VarToDateTime(_v) else if VarIsStr(_v) then - Result := TryStr2Date(_v, _dt) + Result := TryStr2DateTime(_v, _dt) else begin Result := VarToDoubleCustom(TVarData(_v), d); _dt := d; Modified: trunk/ExternalSource/dzlib/u_dzVclUtils.pas =================================================================== --- trunk/ExternalSource/dzlib/u_dzVclUtils.pas 2020-03-15 17:35:35 UTC (rev 3072) +++ trunk/ExternalSource/dzlib/u_dzVclUtils.pas 2020-04-04 17:44:25 UTC (rev 3073) @@ -4,7 +4,7 @@ /// @author twm </summary> unit u_dzVclUtils; -{$INCLUDE dzlib.inc} +{$INCLUDE 'dzlib.inc'} // If this conditional define is set, all messages received in the hooked // WindowProc are written to the console window -> requires a console @@ -505,6 +505,10 @@ procedure TLabel_MakeUrlLabel(_lbl: TLabel); overload; procedure TLabel_MakeUrlLabel(_lbl: TLabel; const _URL: string; _SetCaption: Boolean = False); overload; +///<summary> +/// sets BevelOuter to bvNone for all panels in the array </summary> +procedure TPanel_BevelNone(const _Panels: array of TPanel); + type ///<summary> /// Helper class to allow displaying a hint with the current value of a TTrackBar. @@ -1741,17 +1745,19 @@ procedure TGrid_ExportToStream(_Grid: TCustomGrid; _Stream: TStream; _IncludeFixed: Boolean = False); var - s: string; + s: AnsiString; begin - s := TGrid_GetText(_Grid, _IncludeFixed); + // todo: Should this convert to UTF8 instead? + s := AnsiString(TGrid_GetText(_Grid, _IncludeFixed)); TStream_WriteStringLn(_Stream, s); end; procedure TGrid_ExportToStream(_Grid: TCustomGrid; _Stream: TStream; _Selection: TGridRect); var - s: string; + s: AnsiString; begin - s := TGrid_GetText(_Grid, _Selection); + // todo: Should this convert to UTF8 instead? + s := AnsiString(TGrid_GetText(_Grid, _Selection)); TStream_WriteStringLn(_Stream, s); end; @@ -2115,7 +2121,7 @@ {$IF NOT Declared(ECM_FIRST)} const - ECM_FIRST = $1500; + ECM_FIRST = $1500; EM_SETCUEBANNER = ECM_FIRST + 1; EM_GETCUEBANNER = ECM_FIRST + 2; {$IFEND} @@ -2398,6 +2404,14 @@ TUrlLabelHandler.Create(_lbl, _URL); end; +procedure TPanel_BevelNone(const _Panels: array of TPanel); +var + i: Integer; +begin + for i := Low(_Panels) to High(_Panels) do + _Panels[i].BevelOuter := bvNone; +end; + function TTreeView_GetAsText(_Tree: TTreeView; _Indentation: Integer = 2; _Marker: Char = #0): string; var Level: Integer; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |