diff --git a/KOL.pas b/KOL.pas index 4067035..3a15a3a 100644 --- a/KOL.pas +++ b/KOL.pas @@ -15,7 +15,7 @@ //[VERSION] **************************************************************** -* VERSION 2.89 +* VERSION 2.90 **************************************************************** //[END OF VERSION] @@ -253,6 +253,8 @@ unit KOL; {-} USE_GRUSH - to use ToGRush.pas unit, which provides automatic redirection of the most cintrols creation functions to the KOLGRushControls.pas. + (USE_CONSTRUCTORS - to use constructors like in VCL. Note: this option is + not carefully tested!) TLIST_FAST - very fast implementation of TList (for coast of some additional code). DFLT_TLIST_NOUSE_BLOCKS - for TLIST_FAST: by default, do not make all TList @@ -791,7 +793,7 @@ type {$ENDIF} public {$IFDEF USE_NAMES} - procedure SetName( NewOwnerObj: PObj; const NewName: AnsiString); + procedure SetName( NewOwnerObj: PObj; NewName: AnsiString); property Name: Ansistring read FName; property NamedObjList : PList read fNamedObjList; @@ -826,6 +828,9 @@ type procedure SetCapacity( Value: Integer ); function Get( Idx: Integer ): Pointer; procedure Put( Idx: Integer; Value: Pointer ); + {$IFDEF USE_CONSTRUCTORS} + procedure Init; virtual; + {$ENDIF} protected {$IFDEF TLIST_FAST} fUseBlocks: Boolean; @@ -1054,6 +1059,11 @@ type procedure SynchronizeEx( Method: TThreadMethodEx; Param: Pointer ); {* Call it to execute given method in main thread context, with a given parameter. Applet variable must exist for that time. Param must not be nil. } + {$IFDEF USE_CONSTRUCTORS} + constructor ThreadCreate; + constructor ThreadCreateEx( const Proc: TOnThreadExecute ); + {$ENDIF USE_CONSTRUCTORS} + property AutoFree: Boolean read F_AutoFree write F_AutoFree; {* Set this property to true to provide automatic destroying of thread object when its executing is finished. } @@ -2860,6 +2870,9 @@ type other images from the image list). These overalay images can be used in listview and treeview as overlaying images (up to four masks at the same time). } + {$IFDEF USE_CONSTRUCTORS} + constructor CreateImageList( POwner: Pointer ); + {$ENDIF USE_CONSTRUCTORS} end; //[END OF TImageList DEFINITION] @@ -5018,7 +5031,7 @@ type fOnSelChange: TOnEvent; {$IFNDEF NOT_USE_RICHEDIT} - fRECharFormatRec: TCharFormat2; + fRECharFormatRec: TCharFormat; fREError: Integer; fREStream: PStream; fREStrLoadLen: DWORD; @@ -8703,6 +8716,51 @@ type property AnchorBottom: Boolean read fAnchorBottom write SetAnchorBottom; function Anchor( aLeft, aTop, aRight, aBottom: Boolean ): PControl; public + {$IFDEF USE_CONSTRUCTORS} + //------------------------------------------------------------ + // constructors here: + constructor CreateWindowed( AParent: PControl; AClassName: PKOLChar; ACtl3D: Boolean ); + constructor CreateApplet( const ACaption: AnsiString ); + constructor CreateForm( AParent: PControl; const ACaption: AnsiString ); + constructor CreateControl( AParent: PControl; AClassName: PAnsiChar; AStyle: DWORD; + ACtl3D: Boolean; Actions: PCommandActions ); + constructor CreateButton( AParent: PControl; const ACaption: AnsiString ); + constructor CreateBitBtn( AParent: PControl; const ACaption: AnsiString; + AOptions: TBitBtnOptions; ALayout: TGlyphLayout; AGlyphBitmap: HBitmap; + AGlyphCount: Integer); + constructor CreateLabel( AParent: PControl; const ACaption: AnsiString ); + constructor CreateWordWrapLabel( AParent: PControl; const ACaption: AnsiString ); + constructor CreateLabelEffect( AParent: PControl; ACaption: AnsiString; AShadowDeep: Integer ); + constructor CreatePaintBox( AParent: PControl ); + constructor CreateGradientPanel( AParent: PControl; AColor1, AColor2: TColor ); + constructor CreateGradientPanelEx( AParent: PControl; AColor1, AColor2: TColor; + AStyle: TGradientStyle; ALayout: TGradientLayout ); + constructor CreateGroupbox( AParent: PControl; const ACaption: AnsiString ); + constructor CreateCheckbox( AParent: PControl; const ACaption: AnsiString ); + constructor CreateRadiobox( AParent: PControl; const ACaption: AnsiString ); + constructor CreateEditbox( AParent: PControl; AOptions: TEditOptions ); + constructor CreatePanel( AParent: PControl; AStyle: TEdgeStyle ); + constructor CreateSplitter( AParent: PControl; AMinSizePrev, AMinSizeNext: Integer; + EdgeStyle: TEdgeStyle ); + constructor CreateListbox( AParent: PControl; AOptions: TListOptions ); + constructor CreateCombobox( AParent: PControl; AOptions: TComboOptions ); + constructor CreateCommonControl( AParent: PControl; AClassName: PAnsiChar; AStyle: DWORD; + ACtl3D: Boolean; Actions: PCommandActions ); + constructor CreateRichEdit( AParent: PControl; AOptions: TEditOptions ); + constructor CreateRichEdit1( AParent: PControl; AOptions: TEditOptions ); + constructor CreateProgressbar( AParent: PControl ); + constructor CreateProgressbarEx( AParent: PControl; AOptions: TProgressbarOptions ); + constructor CreateListView( AParent: PControl; AStyle: TListViewStyle; AOptions: TListViewOptions; + AImageListSmall, AImageListNormal, AImageListState: PImageList ); + constructor CreateTreeView( AParent: PControl; AOptions: TTreeViewOptions; + AImgListNormal, AImgListState: PImageList ); + constructor CreateTabControl( AParent: PControl; ATabs: array of String; + AOptions: TTabControlOptions; AImgList: PImageList; AImgList1stIdx: Integer ); + constructor CreateToolbar( AParent: PControl; AAlign: TControlAlign; AOptions: TToolbarOptions; + ABitmap: HBitmap; AButtons: array of PChar; + ABtnImgIdxArray: array of Integer ); + {$ENDIF USE_CONSTRUCTORS} + {$IFDEF USE_CUSTOMEXTENSIONS} {$I CUSTOM_TCONTROL_EXTENSION.inc} {$ENDIF} @@ -8711,7 +8769,9 @@ type // methods and properties. This provides You with capability to extend // TControl implementing another kinds of visual controls without deriving // new descendant objects from TControl. This way is provided to avoid too - // large grow of executable size. + // large grow of executable size. You also can derive your own controls + // from TControl using standard OOP capabilities. In such case an option + // USE_CONSTRUCTORS should be turned on (see it at the start of this unit). // If You choose this "flat" model of extending the TControl with your // own properties, fieds, methods, events, etc. You should provide three // inc-files: CUSTOM_TCONTROL_EXTENSION.inc, containing such definitions @@ -10620,7 +10680,7 @@ function TrimRight(const S: KOLString): KOLString; end of string S. } function Trim( const S : KOLString): KOLString; {* Makes TrimLeft and TrimRight for given string. } -function RemoveSpaces( const S: AnsiString ): AnsiString; +function RemoveSpaces( const S: KOLString ): KOLString; {* Removes all characters less or equal to ' ' in S and returns it. } procedure Str2LowerCase( S: PAnsiChar ); {* Converts null-terminated string to lowercase (inplace). } @@ -13186,7 +13246,7 @@ var DrawThemeBackground: function(hTheme: DWORD; hdc: HDC; iPartId, iStateId: In var pColor: COLORREF): HRESULT; stdcall; const - themelib = 'uxtheme'; + themelib = 'uxtheme.dll'; type PThemedElementDetails = ^TThemedElementDetails; @@ -15111,7 +15171,7 @@ begin end; {$IFDEF USE_NAMES} -procedure TObj.SetName( NewOwnerObj: PObj; const NewName: AnsiString ); +procedure TObj.SetName( NewOwnerObj: PObj; NewName: AnsiString ); {$IFDEF UNIQUE_NAMES} var i: Integer; {$ENDIF} @@ -15181,6 +15241,29 @@ end; {$ENDIF} {$ENDIF} +{$IFDEF USE_CONSTRUCTORS} +procedure TList.Init; +begin + {$IFDEF _D2orD3} + inherited; + {$ENDIF} + fAddBy := 4; + {$IFDEF TLIST_FAST} + {$IFNDEF DFLT_TLIST_NOUSE_BLOCKS} // for debug only + fUseBlocks := TRUE; + {$ENDIF} + {$ENDIF} +end; + +//[function NewList] +function NewList: PList; +begin + New( Result, Create ); + //Result.fAddBy := 4; +end; +//[END NewList] + +{$ELSE not_USE_CONSTRUCTORS} //[function NewList] function NewList: PList; begin @@ -15195,6 +15278,7 @@ begin {$ENDIF} end; //[END NewList] +{$ENDIF USE_CONSTRUCTORS} //[procedure TList.Init] {$IFDEF _D4orHigher} @@ -17081,7 +17165,7 @@ begin if fData.Font.Name = Value then Exit; FillChar( fData.Font.Name[ 0 ], LF_FACESIZE, #0 ); {$IFDEF UNICODE_CTRLS} WStrLCopy {$ELSE} StrLCopy {$ENDIF} - ( PKOLChar(@fData.Font.Name[0]), PKOLChar( Value ), Length(Value) * SizeOf(KOLChar) {LF_FACESIZE} ); //TODO: fixme + ( PKOLChar(@fData.Font.Name[0]), PKOLChar( Value ), Length(Value) * SizeOf(KOLChar) {LF_FACESIZE} ); Changed; end; @@ -17676,7 +17760,7 @@ begin end; procedure TCanvas.OffsetAndRotate(Xoff, Yoff: Integer; Angle: Double); -var F: tagXForm; +var F: TXForm; begin SetGraphicsMode( fHandle, GM_ADVANCED ); F.eM11 := cos( Angle ); @@ -20027,7 +20111,7 @@ end; //[END Trim] //[function RemoveSpaces] -function RemoveSpaces( const S: AnsiString ): AnsiString; +function RemoveSpaces( const S: KOLString ): KOLString; var I: Integer; begin Result := S; @@ -22472,17 +22556,16 @@ asm CALL System.@LStrFromPCharLen end; {$ELSE} //Pascal -function ExtractFilePath(const Path: KOLString): KOLString; -var - i: Integer; +function ExtractFilePath( const Path : KOLString ) : KOLString; +//var I : Integer; +var P, P0: PKOLChar; begin - for i := Length(Path) - 1 downto 1 do begin - if (Path[i] = '\') then begin - Result := Copy(Path, 1, i); - Exit; - end; - end; - Result := Path; + P0 := PKOLChar( Path ); + P := __DelimiterLast( P0, ':\/' ); + if P^ = #0 then + Result := '' + else + Result := Copy( Path, 1, P - P0 + 1 ); end; {$ENDIF ASM_VERSION} @@ -24819,6 +24902,14 @@ begin Result := Thread.Execute; end; +{$IFDEF USE_CONSTRUCTORS} +//[function NewThread] +function NewThread: PThread; +begin + new( Result, ThreadCreate ); +end; +//[END NewThread] +{$ELSE not_USE_CONSTRUCTORS} //* //[function NewThread] function NewThread: PThread; @@ -24842,6 +24933,15 @@ begin {$ENDIF} end; //[END NewThread] +{$ENDIF USE_CONSTRUCTORS} + +{$IFDEF USE_CONSTRUCTORS} +//[function NewThreadEx] +function NewThreadEx( const Proc: TOnThreadExecute ): PThread; +begin + new( Result, ThreadCreateEx( Proc ) ); +end; +{$ELSE not_USE_CONSTRUCTORS} //[FUNCTION NewThreadEx] {$IFDEF ASM_!VERSION} @@ -24870,6 +24970,8 @@ end; {$ENDIF ASM_VERSION} //[END NewThreadEx] +{$ENDIF USE_CONSTRUCTORS} + //[function NewThreadAutoFree] function NewThreadAutoFree( const Proc: TOnThreadExecute ): PThread; begin @@ -25838,7 +25940,8 @@ end; //[FUNCTION SeekMemStream] {$IFDEF ASM_STREAM} {$ELSE ASM_VERSION} //Pascal -function SeekMemStream( Strm: PStream; const MoveTo: TStrmMove; MoveFrom: TMoveMethod ): TStrmSize; +function SeekMemStream( Strm: PStream; {$IFNDEF STREAM_COMPAT} const {$ENDIF} + MoveTo: TStrmMove; MoveFrom: TMoveMethod ): TStrmSize; var NewPos: DWORD; begin case MoveFrom of @@ -25873,7 +25976,7 @@ end; //[PROCEDURE SetSizeMemStream] {$IFDEF ASM_STREAM} {$ELSE ASM_VERSION} //Pascal -procedure SetSizeMemStream( Strm: PStream; const NewSize: TStrmSize ); +procedure SetSizeMemStream( Strm: PStream; {$IFNDEF STREAM_COMPAT} const {$ENDIF} NewSize: TStrmSize ); var S: PStream; NewCapacity: DWORD; begin @@ -25914,7 +26017,7 @@ end; //[FUNCTION ReadMemStream] {$IFDEF ASM_STREAM} {$ELSE ASM_VERSION} //Pascal -function ReadMemStream( Strm: PStream; var Buffer; const Count: TStrmSize ): TStrmSize; +function ReadMemStream( Strm: PStream; var Buffer; {$IFNDEF STREAM_COMPAT} const {$ENDIF} Count: TStrmSize ): TStrmSize; var S: PStream; C: TStrmSize; begin @@ -25939,7 +26042,7 @@ end; //[FUNCTION WriteMemStream] {$IFDEF ASM_STREAM} {$ELSE ASM_VERSION} //Pascal -function WriteMemStream( Strm: PStream; var Buffer; const Count: TStrmSize ): TStrmSize; +function WriteMemStream( Strm: PStream; var Buffer; {$IFNDEF STREAM_COMPAT} const {$ENDIF} Count: TStrmSize ): TStrmSize; var S: PStream; begin S := Strm; @@ -26307,7 +26410,7 @@ end; //[FUNCTION WriteExMemoryStream] {$IFDEF ASM_STREAM} {$ELSE ASM_VERSION} -function WriteExMemoryStream( Strm: PStream; var Buffer; const Count: TStrmSize ): TStrmSize; +function WriteExMemoryStream( Strm: PStream; var Buffer; {$IFNDEF STREAM_COMPAT} const {$ENDIF} Count: TStrmSize ): TStrmSize; var S: PStream; C: TStrmSize; begin @@ -28549,6 +28652,15 @@ end; //===================== Form ========================// +{$IFDEF USE_CONSTRUCTORS} +//[function NewForm] +function NewForm( AParent: PControl; const Caption: AnsiString ): PControl; +begin + new( Result, CreateForm( AParent, Caption ) ); +end; +//[END NewForm] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewForm] {$IFDEF GDI} {$IFDEF ASM_VERSION} @@ -28619,6 +28731,8 @@ end; {$ENDIF _X_} //[END NewForm] +{$ENDIF USE_CONSTRUCTORS} + {$IFDEF WIN_GDI} //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv //===================== Applet button ========================// @@ -28709,6 +28823,16 @@ begin end; //[END WndProcApp] +{$IFDEF USE_CONSTRUCTORS} +{$DEFINE CREATEAPPBUTTON_USED} +//[function NewApplet] +function NewApplet( const Caption: AnsiString ): PControl; +begin + new( Result, CreateApplet( Caption ) ); +end; +//[END NewApplet] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewApplet] {$IFDEF ASM_TLIST} {$ELSE ASM_VERSION} //Pascal @@ -28742,6 +28866,7 @@ begin end; {$ENDIF ASM_VERSION} //[END NewApplet] +{$ENDIF USE_CONSTRUCTORS} {$IFDEF CREATEAPPBUTTON_USED} procedure CreateAppButton( App: PControl ); @@ -28963,6 +29088,14 @@ begin Result := False; end; +{$IFDEF USE_CONSTRUCTORS} +//[function NewButton] +function NewButton( AParent: PControl; const Caption: KOLString ): PControl; +begin + new( Result, CreateButton( AParent, Caption ) ); +end; +{$ELSE USE_CONSTRUCTORS} + {$IFDEF ASM_VERSION} const ButtonClass: array[ 0..6 ] of KOLChar = ( 'B','U','T','T','O','N',#0 ); {$ENDIF ASM_VERSION} @@ -29002,6 +29135,7 @@ end; {$ENDIF ASM_VERSION} //[END NewButton] +{$ENDIF USE_CONSTRUCTORS} {$ENDIF WIN_GDI} {$IFDEF _X_} {$IFDEF GTK} @@ -29943,6 +30077,17 @@ end; {$ENDIF ASM_VERSION} //[END WndProcBitBtn] +{$IFDEF USE_CONSTRUCTORS} +//[function NewBitBtn] +function NewBitBtn( AParent: PControl; const Caption: AnsiString; + Options: TBitBtnOptions; Layout: TGlyphLayout; GlyphBitmap: HBitmap; + GlyphCount: Integer ): PControl; +begin + new( Result, CreateBitBtn( AParent, Caption, Options, Layout, GlyphBitmap, GlyphCount ) ); +end; +//[END NewBitBtn] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewBitBtn] {$IFDEF ASM_noVERSION} // todo: first correct asm version, then remove {$ELSE ASM_VERSION} //Pascal @@ -30049,8 +30194,19 @@ end; {$ENDIF ASM_VERSION} //[END NewBitBtn] +{$ENDIF USE_CONSTRUCTORS} + //===================== Check box ========================// +{$IFDEF USE_CONSTRUCTORS} +//[function NewCheckbox] +function NewCheckbox( AParent: PControl; const Caption: AnsiString ): PControl; +begin + new( Result, CreateCheckbox( AParent, Caption ) ); +end; +//[END NewCheckbox] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewCheckbox] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -30074,6 +30230,8 @@ end; {$ENDIF ASM_VERSION} //[END NewCheckbox] +{$ENDIF USE_CONSTRUCTORS} + //[function NewCheckBox3State] function NewCheckBox3State( AParent: PControl; const Caption: KOLString ): PControl; begin @@ -30099,6 +30257,15 @@ end; {$ENDIF ASM_VERSION} //[END ClickRadio] +{$IFDEF USE_CONSTRUCTORS} +//[function NewRadiobox] +function NewRadiobox( AParent: PControl; const Caption: AnsiString ): PControl; +begin + new( Result, CreateRadiobox( AParent, Caption ) ); +end; +//[END NewRadiobox] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewRadiobox] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -30126,12 +30293,24 @@ end; {$ENDIF ASM_VERSION} //[END NewRadiobox] +{$ENDIF USE_CONSTRUCTORS} + //===================== Label ========================// {$ENDIF WIN_GDI} +{$IFNDEF USE_CONSTRUCTORS} {$IFDEF ASM_VERSION} const StaticClass: Array[0..6] of AnsiChar=('S','T','A','T','I','C',#0); {$ENDIF ASM_VERSION} +{$ENDIF not USE_CONSTRUCTORS} +{$IFDEF USE_CONSTRUCTORS} +//[function NewLabel] +function NewLabel( AParent: PControl; const Caption: AnsiString ): PControl; +begin + new( Result, CreateLabel( AParent, Caption ) ); +end; +//[END NewLabel] +{$ELSE not_USE_CONSTRUCTORS} //[FUNCTION NewLabel] {$IFDEF GDI} @@ -30179,11 +30358,21 @@ begin end; {$ENDIF GTK} {$ENDIF _X_} +{$ENDIF USE_CONSTRUCTORS} //[END NewLabel] {$IFDEF WIN_GDI} //===================== word wrap Label ========================// +{$IFDEF USE_CONSTRUCTORS} +//[function NewWordWrapLabel] +function NewWordWrapLabel( AParent: PControl; const Caption: AnsiString ): PControl; +begin + new( Result, CreateWordWrapLabel( AParent, Caption ) ); +end; +//[END NewWordWrapLabel] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewWordWrapLabel] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -30200,8 +30389,17 @@ end; {$ENDIF ASM_VERSION} //[END NewWordWrapLabel] +{$ENDIF USE_CONSTRUCTORS} + //===================== Label Effect ========================// +{$IFDEF USE_CONSTRUCTORS} +function NewLabelEffect( AParent: PControl; const Caption: AnsiString; ShadowDeep: Integer ): PControl; +begin + new( Result, CreateLabelEffect( AParent, Caption, ShadowDeep ) ); +end; +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewLabelEffect] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -30225,8 +30423,17 @@ end; {$ENDIF ASM_VERSION} //[END NewLabelEffect] +{$ENDIF USE_CONSTRUCTORS} + //===================== Paint box ========================// {$ENDIF WIN_GDI} +{$IFDEF USE_CONSTRUCTORS} +//[function NewPaintbox] +function NewPaintbox( AParent: PControl ): PControl; +begin + new( Result, CreatePaintBox( AParent ) ); +end; +{$ELSE not_USE_CONSTRUCTORS} //[FUNCTION NewPaintbox] {$IFDEF GDI} @@ -30279,6 +30486,7 @@ end; {$ENDIF _X_} //[END NewPaintbox] +{$ENDIF USE_CONSTRUCTORS} {$IFDEF WIN_GDI} {$IFDEF _D2} @@ -30812,6 +31020,15 @@ end; //===================== Groupbox ========================// +{$IFDEF USE_CONSTRUCTORS} +//[function NewGroupbox] +function NewGroupbox( AParent: PControl; const Caption: AnsiString ): PControl; +begin + new( Result, CreateGroupbox( AParent, Caption ) ); +end; +//[END NewGroupbox] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewGroupbox] {$IFDEF ASM_UNICODE} {$ELSE ASM_VERSION} //Pascal @@ -30849,8 +31066,19 @@ end; {$ENDIF ASM_VERSION} //[END NewGroupbox] +{$ENDIF USE_CONSTRUCTORS} + //===================== Panel ========================// +{$IFDEF USE_CONSTRUCTORS} +//[function NewPanel] +function NewPanel( AParent: PControl; EdgeStyle: TEdgeStyle ): PControl; +begin + new( Result, CreatePanel( AParent, EdgeStyle ) ); +end; +//[END NewPanel] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewPanel] {$IFDEF ASM_UNICODE} {$ELSE ASM_VERSION} //Pascal @@ -30879,6 +31107,8 @@ end; {$ENDIF ASM_VERSION} //[END NewPanel] +{$ENDIF USE_CONSTRUCTORS} + //===================== Splitter ==============================// //{$DEFINE USE_ASM_DODRAG} @@ -31056,6 +31286,16 @@ begin end; //[END NewSplitter] +{$IFDEF USE_CONSTRUCTORS} +//[function NewSplitterEx] +function NewSplitterEx( AParent: PControl; MinSizePrev, MinSizeNext: Integer; + EdgeStyle: TEdgeStyle ): PControl; +begin + new( Result, CreateSplitter( AParent, MinSizePrev, MinSizeNext, EdgeStyle ) ); +end; +//[END NewSplitterEx] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewSplitterEx] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -31102,6 +31342,8 @@ end; {$ENDIF ASM_VERSION} //[END NewSplitterEx] +{$ENDIF USE_CONSTRUCTORS} + //===================== MDI client window control =============// //[procedure DestroyMDIChildren] @@ -31433,6 +31675,15 @@ end; //===================== Gradient panel ========================// +{$IFDEF USE_CONSTRUCTORS} +//[function NewGradientPanel] +function NewGradientPanel( AParent: PControl; Color1, Color2: TColor ): PControl; +begin + new( Result, CreateGradientPanel( AParent, Color1, Color2 ) ); +end; +//[END NewGradientPanel] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewGradientPanel] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -31451,6 +31702,19 @@ end; {$ENDIF ASM_VERSION} //[END NewGradientPanel] +{$ENDIF USE_CONSTRUCTORS} + +{$IFDEF USE_CONSTRUCTORS} +//[function NewGradientPanelEx] +function NewGradientPanelEx( AParent: PControl; Color1, Color2: TColor; + Style: TGradientStyle; Layout: TGradientLayout ): PControl; +begin + new( Result, CreateGradientPanelEx( AParent, Color1, Color2, + Style, Layout ) ); +end; +//[END NewGradientPanelEx] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewGradientPanelEx] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -31472,6 +31736,8 @@ end; {$ENDIF ASM_VERSION} //[END NewGradientPanelEx] +{$ENDIF USE_CONSTRUCTORS} + //===================== Edit box ========================// const Editflags: array [ TEditOption ] of Integer = ( @@ -31481,6 +31747,15 @@ const Editflags: array [ TEditOption ] of Integer = ( es_NoHideSel, es_OemConvert, es_Password, es_Readonly, es_UpperCase, es_WantReturn, 0, es_Number ); +{$IFDEF USE_CONSTRUCTORS} +//[function NewEditbox] +function NewEditbox( AParent: PControl; Options: TEditOptions ) : PControl; +begin + new( Result, CreateEditbox( AParent, Options ) ); +end; +//[END NewEditbox] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewEditBox] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -31512,6 +31787,8 @@ end; {$ENDIF ASM_VERSION} //[END NewEditBox] +{$ENDIF USE_CONSTRUCTORS} + //===================== List box ========================// const ListFlags: array[TListOption] of Integer = ( @@ -31522,6 +31799,15 @@ const ListFlags: array[TListOption] of Integer = ( not LBS_HASSTRINGS, LBS_NODATA, LBS_OWNERDRAWFIXED, LBS_OWNERDRAWVARIABLE, WS_HSCROLL ); +{$IFDEF USE_CONSTRUCTORS} +//[function NewListbox] +function NewListbox( AParent: PControl; Options: TListOptions ): PControl; +begin + new( Result, CreateListbox( AParent, Options ) ); +end; +//[END NewListbox] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewListbox] {$IFDEF ASM_UNICODE} {$ELSE ASM_VERSION} //Pascal @@ -31543,6 +31829,8 @@ end; {$ENDIF ASM_VERSION} //[END NewListbox] +{$ENDIF USE_CONSTRUCTORS} + //===================== Combo box ========================// //[FUNCTION ComboboxDropDown] @@ -31799,6 +32087,14 @@ const ComboFlags: array[ TComboOption ] of Integer = ( CBS_OemConvert, CBS_Sort, CBS_UpperCase, CBS_OWNERDRAWFIXED, CBS_OWNERDRAWVARIABLE, CBS_SIMPLE ); +{$IFDEF USE_CONSTRUCTORS} +//[function NewCombobox] +function NewCombobox( AParent: PControl; Options: TComboOptions ): PControl; +begin + new( Result, CreateCombobox( AParent, Options ) ); +end; +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewCombobox] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -31835,6 +32131,8 @@ end; {$ENDIF ASM_VERSION} //[END NewCombobox] +{$ENDIF USE_CONSTRUCTORS} + //[FUNCTION WndProcResiz] {$IFDEF ASM_TLIST} {$ELSE ASM_VERSION} //Pascal @@ -31907,6 +32205,15 @@ end; //==================== Progress bar ======================// +{$IFDEF USE_CONSTRUCTORS} +//[function NewProgressbar] +function NewProgressbar( AParent: PControl ): PControl; +begin + new( Result, CreateProgressbar( AParent ) ); +end; +//[END NewProgressbar] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewProgressbar] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -31927,6 +32234,17 @@ end; {$ENDIF ASM_VERSION} //[END NewProgressbar] +{$ENDIF USE_CONSTRUCTORS} + +{$IFDEF USE_CONSTRUCTORS} +//[function NewProgressbarEx] +function NewProgressbarEx( AParent: PControl; Options: TProgressbarOptions ): PControl; +begin + new( Result, CreateProgressbarEx( AParent, Options ) ); +end; +//[END NewProgressbarEx] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewProgressbarEx] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -31940,6 +32258,8 @@ end; {$ENDIF ASM_VERSION} //[END NewProgressbarEx] +{$ENDIF USE_CONSTRUCTORS} + //===================== List view ========================// //[FUNCTION WndProcNotify] @@ -32051,6 +32371,17 @@ end; {$ENDIF ASM_VERSION} //[END ApplyImageLists2ListView] +{$IFDEF USE_CONSTRUCTORS} +//[function NewListView] +function NewListView( AParent: PControl; Style: TListViewStyle; Options: TListViewOptions; + ImageListSmall, ImageListNormal, ImageListState: PImageList ): PControl; +begin + new( Result, CreateListView( AParent, Style, Options, ImageListSmall, + ImageListNormal, ImageListState ) ); +end; +//[END NewListView] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewListView] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -32081,6 +32412,8 @@ end; {$ENDIF ASM_VERSION} //[END NewListView] +{$ENDIF USE_CONSTRUCTORS} + //===================== Tree view ========================// //[FUNCTION WndProcTreeView] @@ -32214,6 +32547,15 @@ const TVS_TRACKSELECT, TVS_SINGLEEXPAND, TVS_INFOTIP, TVS_FULLROWSELECT, TVS_NOSCROLL, TVS_NONEVENHEIGHT ); +{$IFDEF USE_CONSTRUCTORS} +//[function NewTreeView] +function NewTreeView( AParent: PControl; Options: TTreeViewOptions; + ImgListNormal, ImgListState: PImageList ): PControl; +begin + new( Result, CreateTreeView( AParent, Options, ImgListNormal, ImgListState ) ); +end; +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewTreeView] {$IFDEF ASM_VERSION} {$ELSE ASM_VERSION} //Pascal @@ -32239,6 +32581,8 @@ end; {$ENDIF ASM_VERSION} //[END NewTreeView] +{$ENDIF USE_CONSTRUCTORS} + //===================== Tab Control ========================// //[FUNCTION WndProcTabControl] @@ -32386,6 +32730,16 @@ const TabControlFlags: array[ TTabControlOption ] of Integer = ( TCS_BUTTONS, TCS_MULTILINE, TCS_MULTISELECT, TCS_RIGHTJUSTIFY, TCS_SCROLLOPPOSITE, TCS_BOTTOM, TCS_VERTICAL, TCS_FLATBUTTONS, TCS_HOTTRACK, 0, TCS_OWNERDRAWFIXED ); +{$IFDEF USE_CONSTRUCTORS} +//[function NewTabControl] +function NewTabControl( AParent: PControl; Tabs: array of String; Options: TTabControlOptions; + ImgList: PImageList; ImgList1stIdx: Integer ): PControl; +begin + new( Result, CreateTabControl( AParent, Tabs, Options, ImgList, ImgList1stIdx ) ); +end; +//[END NewTabControl] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewTabControl] {$IFDEF ASM_UNICODE} {$ELSE ASM_VERSION} //Pascal @@ -32452,6 +32806,8 @@ end; //[END NewTabEmpty] {$ENDIF} +{$ENDIF USE_CONSTRUCTORS} + //===================== Tool bar ========================// //[FUNCTION WndProcToolbarCtr] @@ -32583,7 +32939,8 @@ begin if Assigned( Self_.fOnResize ) then Self_.fOnResize( Self_ ); {$IFNDEF TOOLBAR_FORCE_CHILDALIGN} - if WinVer >= wvNT then // todo: check it. + //-- removed by MTsv DN (v.290), crash in Win 98: + //-- if WinVer >= wvNT then // todo: check it. Result := TRUE; // this provides (prevents?) the Align working for child controls of Toolbar ! // but removing this line makes it impossible to correct the Align property for // the neighbour controls on form!!! @@ -32670,6 +33027,17 @@ const ToolbarAligns: array[ TControlAlign ] of DWORD = TBSTYLE_FLAT, TBSTYLE_TRANSPARENT, TBSTYLE_WRAPABLE, CCS_NODIVIDER, 0, TBSTYLE_CUSTOMERASE ); +{$IFDEF USE_CONSTRUCTORS} +//[function NewToolbar] +function NewToolbar( AParent: PControl; Align: TControlAlign; Options: TToolbarOptions; + Bitmap: HBitmap; Buttons: array of PAnsiChar; + BtnImgIdxArray: array of Integer ) : PControl; +begin + new( Result, CreateToolbar( AParent, Align, Options, Bitmap, Buttons, BtnImgIdxArray ) ); +end; +//[END NewToolbar] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewToolbar] {$IFDEF ASM_UNICODE} {$ELSE ASM_VERSION} //Pascal @@ -32727,6 +33095,8 @@ end; {$ENDIF ASM_VERSION} //[END NewToolbar] +{$ENDIF USE_CONSTRUCTORS} + //================== DateTimePicker =====================// function WndProcDateTimePickerNotify( Self_: PControl; var Msg: TMsg; var Rslt: Integer ): Boolean; @@ -32989,6 +33359,15 @@ const RichEditflags: array [ TEditOption ] of Integer = ( 0 {es_UpperCase - not supported}, es_WantReturn, 0, es_Number ); +{$IFDEF USE_CONSTRUCTORS} +//[function NewRichEdit1] +function NewRichEdit1( AParent: PControl; Options: TEditOptions ): PControl; +begin + new( Result, CreateRichEdit1( AParent, Options ) ); +end; +//[END NewRichEdit1] +{$ELSE not_USE_CONSTRUCTORS} + //[FUNCTION NewRichEdit1] {$IFDEF ASM_UNICODE} {$ELSE ASM_VERSION} //Pascal @@ -33072,6 +33451,8 @@ end; //[END NewRichEdit1] {$ENDIF NOT_USE_RICHEDIT} +{$ENDIF USE_CONSTRUCTORS} + //[API OleInitialize] function OleInitialize(pwReserved: Pointer): HResult; stdcall; external 'ole32.dll' name 'OleInitialize'; @@ -33138,6 +33519,14 @@ end; {+} {$IFNDEF NOT_USE_RICHEDIT} +{$IFDEF USE_CONSTRUCTORS} +//[function NewRichEdit] +function NewRichEdit( AParent: PControl; Options: TEditOptions ): PControl; +begin + new( Result, CreateRichEdit( AParent, Options ) ); +end; +//[END NewRichEdit] +{$ELSE not_USE_CONSTRUCTORS} //[FUNCTION NewRichEdit] {$IFDEF ASM_VERSION} @@ -33197,6 +33586,7 @@ end; {$ENDIF ASM_VERSION} //[END NewRichEdit] +{$ENDIF USE_CONSTRUCTORS} {$ENDIF NOT_USE_RICHEDIT} //=====================================================================// @@ -40395,6 +40785,7 @@ begin Result := FALSE; L := 0; H := FCount - 1; + if H < 0 then Exit; // === if FCount = 0 then Exit; if fAnsiSort then begin if fCaseSensitiveSort then @@ -42340,6 +42731,14 @@ end; { -- Image List -- } //* +{$IFDEF USE_CONSTRUCTORS} +//[function NewImageList] +function NewImageList( AOwner: PControl ): PImageList; +begin + new( Result, CreateImageList( AOwner ) ); +end; +//[END NewImageList] +{$ELSE not_USE_CONSTRUCTORS} //[function NewImageList] function NewImageList( AOwner: PControl ): PImageList; begin @@ -42366,6 +42765,7 @@ begin {$ENDIF} AOwner.fImageList := Result; end; +{$ENDIF} //[API ImageList_XXX] function ImageList_Create; stdcall; external cctrl name 'ImageList_Create'; @@ -47652,7 +48052,7 @@ begin fWidth := SrcBmp.fWidth; fHeight := SrcBmp.fHeight; fHandleType := SrcBmp.fHandleType; - fNewPixelFormat := SrcBmp.PixelFormat; + //fNewPixelFormat := SrcBmp.PixelFormat; if SrcBmp.fHandleType = bmDDB then begin fHandle := CopyImage( SrcBmp.fHandle, IMAGE_BITMAP, 0, 0, 0 {LR_COPYRETURNORG} ); @@ -53997,7 +54397,7 @@ end; var SaveWinVer: Byte = $FF; //[function WinVer] -{$IFDEF nonononoASM_VERSION} // todo: fix asm version first +{$IFDEF ASM_VERSION} // asm version by MTsv DN (v 2.90) {$ELSE ASM_VERSION} function WinVer : TWindowsVersion; var MajorVersion, MinorVersion: Byte; @@ -55222,6 +55622,747 @@ begin AttachProc( WndProcDrag ); end; +{-} +{$IFDEF USE_CONSTRUCTORS} //****************************************************// + // +//[constructor TControl.CreateWindowed] +constructor TControl.CreateWindowed(AParent: PControl; AClassName: PKOLChar; // + ACtl3D: Boolean); // +begin // + CreateParented( AParent ); // + fOnDynHandlers := WndProcDummy; // + fWndProcKeybd := WndProcDummy; // + fWndProcResizeFlicks := WndProcDummy; // + fCommandActions.aClear := ClearText; // + //fWindowed := True; // is set in TControl.Init + fControlClassName := AClassName; // + // + fControlClick := DummyObjProc; // + // + fColor := clBtnFace; // + fTextColor := clWindowText; // + fMargin := 2; // + fCtl3D := True; // + fCtl3Dchild := True; // + if AParent <> nil then // + begin // + fWndProcResizeFlicks := AParent.fWndProcResizeFlicks; // + fGotoControl := AParent.fGotoControl; // + fDoubleBuffered := AParent.fDoubleBuffered; // + fTransparent := AParent.fTransparent; // + fCtl3Dchild := AParent.fCtl3Dchild; // + if AParent.fCtl3Dchild then // + fCtl3D := ACtl3D // + else // + fCtl3D := False; // + fMargin := AParent.fMargin; // + with fBoundsRect do // + begin // + Left := AParent.fMargin + AParent.fClientLeft; // + Top := AParent.fMargin + AParent.fClientTop; // + Right := Left + 64; // + Bottom := Top + 64; // + end; // + fTextColor := AParent.fTextColor; // + fFont := fFont.Assign( AParent.fFont ); // + if fFont <> nil then // + begin // + fFont.fOnChange := FontChanged; // + FontChanged( fFont ); // + end; // + fColor := AParent.fColor; // + fBrush := fBrush.Assign( AParent.fBrush ); // + if fBrush <> nil then // + begin // + fBrush.fOnChange := BrushChanged; // + BrushChanged( fBrush ); // + end; // + end; // +end; // + // +//[constructor TControl.CreateApplet] +constructor TControl.CreateApplet(const ACaption: AnsiString); // +begin // + AppButtonUsed := True; // + CreateWindowed( nil, 'App', TRUE ); // + FIsApplet := TRUE; // + fStyle := WS_VISIBLE or WS_SYSMENU or WS_POPUP or WS_MINIMIZEBOX // + or WS_CAPTION; // + fExStyle := WS_EX_APPWINDOW; // + FCreateWndExt := CreateAppButton; // + AttachProc( WndProcApp ); // + Caption := ACaption; // +end; // + // +//[constructor TControl.CreateForm] +constructor TControl.CreateForm(AParent: PControl; const ACaption: AnsiString); // +begin // + CreateWindowed( AParent, 'Form', TRUE ); // + AttachProc( WndProcForm ); // + AttachProc( WndProcDoEraseBkgnd ); // + Caption := ACaption; // +end; // + // +//[constructor TControl.CreateControl] +constructor TControl.CreateControl(AParent: PControl; AClassName: PAnsiChar; // + AStyle: DWORD; ACtl3D: Boolean; Actions: PCommandActions); // +var Form: PControl; // +begin // + CreateWindowed( AParent, AClassName, ACtl3D ); // + if Actions <> nil then // + fCommandActions := Actions^; // + fIsControl := True; // + fStyle := AStyle or WS_CLIPSIBLINGS or WS_CLIPCHILDREN; // + fVisible := (Style and WS_VISIBLE) <> 0; // + fTabstop := (Style and WS_TABSTOP) <> 0; // + if (AParent <> nil) then // + begin // + Inc( AParent.ParentForm.fTabOrder ); // + fTabOrder := AParent.ParentForm.fTabOrder; // + end; // + fLookTabKeys := [ tkTab, tkLeftRight, tkUpDown, tkPageUpPageDn ]; // + if fCtl3D then // + begin // + fStyle := fStyle and not WS_BORDER; // + fExStyle := fExStyle or WS_EX_CLIENTEDGE; // + end; // + if (Style and WS_TABSTOP) <> 0 then // + begin // + Form := ParentForm; // + if Form <> nil then // + if Form.FCurrentControl = nil then // + Form.FCurrentControl := @Self; // + end; // + //fCreateParamsExt := CreateParams2; // + fMenu := CtlIdCount; // + Inc( CtlIdCount ); // + AttachProc( WndProcCtrl ); // +end; // + // +//[constructor TControl.CreateButton] +constructor TControl.CreateButton(AParent: PControl; // + const ACaption: AnsiString); // +begin // + CreateControl( AParent, 'BUTTON', // + WS_VISIBLE or WS_CHILD or // + BS_PUSHLIKE or WS_TABSTOP, False, @ButtonActions ); // + with fBoundsRect do // + Bottom := Top + 22; // + fTextAlign := taCenter; // + Caption := ACaption; // +end; // + // +//[constructor TControl.CreateBitBtn] +constructor TControl.CreateBitBtn(AParent: PControl; // + const ACaption: AnsiString; AOptions: TBitBtnOptions; ALayout: TGlyphLayout; // + AGlyphBitmap: HBitmap; AGlyphCount: Integer); // +var // + B: TBitmapInfo; // + W, H: Integer; // +begin // + CreateControl( AParent, 'BUTTON', WS_VISIBLE or WS_CHILD or // + WS_TABSTOP or BS_OWNERDRAW, False, @ButtonActions ); // + fBitBtnOptions := AOptions; // + fGlyphLayout := ALayout; // + fGlyphBitmap := AGlyphBitmap; // + with fBoundsRect do // + begin // + Bottom := Top + 22; // + W := 0; H := 0; // + if AGlyphBitmap <> 0 then // + begin // + if bboImageList in AOptions then // + ImageList_GetIconSize( AGlyphBitmap, W, H ) // + else // + begin // + if GetObject( AGlyphBitmap, Sizeof(B), @B ) > 0 then // + begin // + W := B.bmiHeader.biWidth; // + H := B.bmiHeader.biHeight; // + if AGlyphCount = 0 then // + AGlyphCount := W div H; // + if AGlyphCount > 1 then // + W := W div AGlyphCount; // + end; // + end; // + if W > 0 then // + if ACaption = '' then // + Right := Left + W // + else // + Right := Right + W; // + if H > 0 then // + Bottom := Top + H; // + if not ( bboNoBorder in AOptions ) then // + begin // + if W > 0 then // + Inc( Right, 2 ); // + if H > 0 then // + Inc( Bottom, 2 ); // + end; // + end; // + fGlyphWidth := W; // + fGlyphHeight := H; // + end; // + fGlyphCount := AGlyphCount; // + if AParent <> nil then // + AParent.AttachProc( WndProc_DrawItem ); // + AttachProc( WndProcBitBtn ); // + fTextAlign := taCenter; // + Caption := ACaption; // +end; // + // +//[constructor TControl.CreateLabel] +constructor TControl.CreateLabel(AParent: PControl; // + const ACaption: AnsiString); // +begin // + CreateControl( AParent, 'STATIC', WS_VISIBLE or WS_CHILD or // + SS_LEFTNOWORDWRAP or SS_NOPREFIX or SS_NOTIFY, // + False, @LabelActions ); // + fIsStaticControl := 1; // + fSizeRedraw := True; // + fBoundsRect.Bottom := fBoundsRect.Top + 22; // + Caption := ACaption; // +end; // + // +//[constructor TControl.CreateWordWrapLabel] +constructor TControl.CreateWordWrapLabel(AParent: PControl; // + const ACaption: AnsiString); // +begin // + CreateLabel( AParent, ACaption ); // + fBoundsRect.Bottom := fBoundsRect.Top + 44; // + fStyle := fStyle and not SS_LEFTNOWORDWRAP; // +end; // + // +//[constructor TControl.CreateLabelEffect] +constructor TControl.CreateLabelEffect(AParent: PControl; ACaption: AnsiString; // + AShadowDeep: Integer); // +begin // + CreateLabel( AParent, ACaption ); // + fIsStaticControl := 0; // + AttachProc( WndProcLabelEffect ); // + fTextAlign := taCenter; // + fTextColor := clBtnShadow; // + fShadowDeep := AShadowDeep; // + fIgnoreWndCaption := True; // + with fBoundsRect do // + begin // + Bottom := Top + 40; // + end; // +end; // + // +//[constructor TControl.CreatePaintBox] +constructor TControl.CreatePaintBox(AParent: PControl); // +begin // + CreateLabel( AParent, '' ); // + with fBoundsRect do // + begin // + Right := Left + 40; // + Bottom := Top + 40; // + end; // +end; // + // +{$IFDEF ASM_VERSION} // +//[constructor TControl.CreateGradientPanel] +constructor TControl.CreateGradientPanel(AParent: PControl; AColor1, // + AColor2: TColor); // +asm //cmd //opd // + XOR EDX, EDX // + PUSH EDX // + CALL CreateLabel // + MOV ECX, AColor1 // + MOV [EAX].fColor1, ECX // + MOV ECX, AColor2 // + MOV [EAX].fColor2, ECX // + MOV EDX, [EAX].fBoundsRect.Left // + ADD EDX, 40 // + MOV [EAX].fBoundsRect.Right, EDX // + MOV EDX, [EAX].fBoundsRect.Top // + ADD EDX, 40 // + MOV [EAX].fBoundsRect.Bottom, EDX // + PUSH EAX // + MOV EDX, offset[ WndProcGradient ] // + CALL AttachProc // + POP EAX // +end; // +{$ELSE ASM_VERSION} //Pascal // +constructor TControl.CreateGradientPanel(AParent: PControl; AColor1, // + AColor2: TColor); // +begin // + CreateLabel( AParent, '' ); // + AttachProc( WndProcGradient ); // + fColor2 := AColor2; // + fColor1 := AColor1; // + with fBoundsRect do // + begin // + Right := Left + 40; // + Bottom := Top + 40; // + end; // +end; // +{$ENDIF ASM_VERSION} // + // +//[constructor TControl.CreateGradientPanelEx] +constructor TControl.CreateGradientPanelEx(AParent: PControl; AColor1, // + AColor2: TColor; AStyle: TGradientStyle; ALayout: TGradientLayout); // +begin // + CreateLabel( AParent, '' ); // + AttachProc( WndProcGradientEx ); // + fColor2 := AColor2; // + fColor1 := AColor1; // + fGradientStyle := AStyle; // + fGradientLayout := ALayout; // + with fBoundsRect do // + begin // + Right := Left + 40; // + Bottom := Top + 40; // + end; // +end; // + // +//[constructor TControl.CreateGroupbox] +constructor TControl.CreateGroupbox(AParent: PControl; // + const ACaption: AnsiString); // +begin // + CreateButton( AParent, ACaption ); // + with fBoundsRect do // + begin // + Right := Left + 100; // + Bottom := Top + 100; // + end; // + fStyle := WS_VISIBLE or WS_CHILD or BS_GROUPBOX or WS_TABSTOP; // + fClientTop := 22; // + fClientLeft := 2; // + fClientBottom := 2; // + fClientRight := 2; // + fTabstop := False; // +end; // + // +//[constructor TControl.CreateCheckbox] +constructor TControl.CreateCheckbox(AParent: PControl; // + const ACaption: AnsiString); // +begin // + CreateButton( AParent, ACaption ); // + with fBoundsRect do // + begin // + Right := Left + 72; // + end; // + fStyle := WS_VISIBLE or WS_CHILD or // + BS_AUTOCHECKBOX or WS_TABSTOP; // +end; // + // +//[constructor TControl.CreateRadiobox] +constructor TControl.CreateRadiobox(AParent: PControl; // + const ACaption: AnsiString); // +begin // + CreateCheckbox( AParent, ACaption ); // + fStyle := WS_VISIBLE or WS_CHILD or // + BS_RADIOBUTTON or WS_TABSTOP or WS_GROUP; // + fControlClick := ClickRadio; // + if AParent <> nil then // + begin // + AParent.fRadioLast := fMenu; // + if AParent.fRadio1st = 0 then // + begin // + AParent.fRadio1st := fMenu; // + SetRadioChecked; // + end; // + end; // +end; // + // +//[constructor TControl.CreateEditbox] +constructor TControl.CreateEditbox(AParent: PControl; // + AOptions: TEditOptions); // +var Flags: Integer; // +begin // + Flags := MakeFlags( @AOptions, EditFlags ); // + if not(eoMultiline in AOptions) then // + Flags := Flags and not(WS_HSCROLL or WS_VSCROLL); // + CreateControl( AParent, 'EDIT', WS_VISIBLE or WS_CHILD or WS_TABSTOP // + or WS_BORDER or Flags, True, @EditActions ); // +//YS fCursor := LoadCursor( 0, IDC_IBEAM ); // //YS + with fBoundsRect do // + begin // + Right := Left + 100; // + Bottom := Top + 22; // + if eoMultiline in AOptions then // + begin // + Right := Right + 100; // + Bottom := Top + 200; // + end; // + end; // + fColor := clWindow; // + fLookTabKeys := [ tkTab, tkUpDown, tkPageUpPageDn ]; // + if eoMultiline in AOptions then // + fLookTabKeys := [ tkTab ]; // + if eoWantTab in AOptions then // + fLookTabKeys := fLookTabKeys - [ tkTab ]; // +end; // + // +//[constructor TControl.CreatePanel] +constructor TControl.CreatePanel(AParent: PControl; AStyle: TEdgeStyle); // +const Edgestyles: array[ TEdgeStyle ] of DWORD = ( WS_DLGFRAME, SS_SUNKEN, 0 ); // +begin // + CreateControl( AParent, 'STATIC', WS_VISIBLE or WS_CHILD or // + SS_LEFTNOWORDWRAP or SS_NOPREFIX or SS_NOTIFY, False, // + @LabelActions ); // + with fBoundsRect do // + begin // + Right := Left + 100; // + Bottom := Top + 100; // + end; // + Style := Style or Edgestyles[ AStyle ]; // + ExStyle := ExStyle or WS_EX_CONTROLPARENT; // +end; // + // +//[constructor TControl.CreateSplitter] +constructor TControl.CreateSplitter(AParent: PControl; AMinSizePrev, // + AMinSizeNext: Integer; EdgeStyle: TEdgeStyle); // +var PrevCtrl: PControl; // + Sz0: Integer; // +begin // + CreatePanel( AParent, EdgeStyle ); // + fSplitMinSize1 := AMinSizePrev; // + fSplitMinSize2 := AMinSizeNext; // + Sz0 := 4; // + with fBoundsRect do // + begin // + Right := Left + Sz0; // + Bottom := Top + Sz0; // + end; // + if AParent <> nil then // + begin // + if AParent.fChildren.fCount > 1 then // + begin // + PrevCtrl := AParent.fChildren.{$IFDEF TLIST_FAST} Items {$ELSE} fItems {$ENDIF}[ AParent.fChildren.fCount - 2 ]; // + case PrevCtrl.FAlign of // + caLeft, caRight: // + begin // + fCursor := LoadCursor( 0, IDC_SIZEWE ); // + end; // + caTop, caBottom: // + begin // + fCursor := LoadCursor( 0, IDC_SIZENS ); // + end; // + end; // + Align := PrevCtrl.FAlign; // + end; // + end; // + AttachProc( WndProcSplitter ); // +end; // + // +//[constructor TControl.CreateListbox] +constructor TControl.CreateListbox(AParent: PControl; // + AOptions: TListOptions); // +var Flags: Integer; // +begin // + Flags := MakeFlags( @AOptions, ListFlags ); // + CreateControl( AParent, 'LISTBOX', WS_VISIBLE or WS_CHILD or WS_TABSTOP // + or WS_BORDER or WS_VSCROLL // + or LBS_NOTIFY or Flags, True, @ListActions ); // + with fBoundsRect do // + begin // + Right := Right + 100; // + Bottom := Top + 200; // + end; // + fColor := clWindow; // + fLookTabKeys := [ tkTab, tkLeftRight ]; // +end; // + // +//[constructor TControl.CreateCombobox] +constructor TControl.CreateCombobox(AParent: PControl; // + AOptions: TComboOptions); // +var Flags: Integer; // +begin // + Flags := MakeFlags( @AOptions, ComboFlags ); // + CreateControl( AParent, 'COMBOBOX', // + WS_VISIBLE or WS_CHILD or WS_VSCROLL or // + CBS_DROPDOWN or CBS_HASSTRINGS or WS_TABSTOP or Flags, // + True, @ComboActions ); // + fCreateWndExt := CreateComboboxWnd; // + fDropDownProc := ComboboxDropDown; // + fClsStyle := fClsStyle or CS_DBLCLKS; // + with fBoundsRect do // + begin // + Right := Left + 100; // + Bottom := Top + 22; // + end; // + fColor := clWindow; // + fLookTabKeys := [ tkTab ]; // + if coReadOnly in AOptions then // + fLookTabKeys := [ tkTab, tkLeftRight ]; // +end; // + // +//[constructor TControl.CreateCommonControl] +constructor TControl.CreateCommonControl(AParent: PControl; // + AClassName: PAnsiChar; AStyle: DWORD; ACtl3D: Boolean; // + Actions: PCommandActions); // +begin // + {*************} DoInitCommonControls( ICC_WIN95_CLASSES ); // + CreateControl( AParent, AClassName, AStyle, ACtl3D, Actions ); // + fIsCommonControl := True; // + if AParent <> nil then // + begin // + AttachProc( WndProcParentResize ); // + AParent.AttachProc( WndProcResize ); // + AttachProc( WndProcCommonNotify ); // + AParent.AttachProc( WndProcNotify ); // + end; // +end; // + // +//[constructor TControl.CreateRichEdit1] +constructor TControl.CreateRichEdit1(AParent: PControl; // + AOptions: TEditOptions); // +var Flags, I: Integer; // +begin // + if FRichEditModule = 0 then // + begin // + for I := 0 to High( RichEditLibnames ) do // + begin // + FRichEditModule := LoadLibrary( RichEditLibnames[ I ] ); // + if FRichEditModule > HINSTANCE_ERROR then break; // + RichEditClass := RichEditClasses[ I ]; // + end; // + if FRichEditModule <= HINSTANCE_ERROR then // + FRichEditModule := 0; // + end; // + Flags := MakeFlags( @AOptions, RichEditFlags ); // + CreateCommonControl( AParent, RichEditClass, WS_VISIBLE or WS_CHILD // + or WS_TABSTOP or WS_BORDER or ES_MULTILINE or Flags, // + True, @RichEditActions ); // + // + AttachProc( WndProcRichEditNotify ); // + fDoubleBuffered := False; // + fCannotDoubleBuf := True; // + with fBoundsRect do // + begin // + Right := Right + 100; // + Bottom := Top + 200; // + end; // + fColor := clWindow; // + fLookTabKeys := [ tkTab ]; // + if eoWantTab in AOptions then // + fLookTabKeys := [ ]; // + Perform( EM_SETEVENTMASK, 0, // + ENM_CHANGE or ENM_SELCHANGE or ENM_REQUESTRESIZE or // + ENM_PROTECTED or $04000000 {ENM_LINK} ); // + Perform( EM_SETBKGNDCOLOR, 0, Color2RGB(fColor)); // +end; // + // + // +//[constructor TControl.CreateRichEdit] +constructor TControl.CreateRichEdit(AParent: PControl; // + AOptions: TEditOptions); // +var OldRichEditClass, OldRichEditLib: PAnsiChar; // +begin // + if OleInit then // + begin // + OldRichEditClass := RichEditClass; // + OldRichEditLib := RichEditLib; // + CreateRichEdit1( AParent, AOptions ); // + fCharFmtDeltaSz := 24; // + fParaFmtDeltaSz := sizeof( TParaFormat2 ) - sizeof( RichEdit.TParaFormat ); // + RichEditClass := OldRichEditClass; // + RichEditLib := OldRichEditLib; // + end // + else // + CreateRichEdit1( AParent, AOptions ); // +end; // + // +//[constructor TControl.CreateProgressbar] +constructor TControl.CreateProgressbar(AParent: PControl); // +const ProgressBarFlags: array[ TProgressbarOption ] of Integer = // + (PBS_VERTICAL, PBS_SMOOTH ); // +begin // + CreateCommonControl( AParent, PROGRESS_CLASS, // + WS_CHILD or WS_VISIBLE, True, nil ); // + with fBoundsRect do // + begin // + Right := Left + 300; // + Bottom := Top + 20; // + end; // + fMenu := 0; // + fTextColor := clHighlight; // +end; // + // +//[constructor TControl.CreateProgressbarEx] +constructor TControl.CreateProgressbarEx(AParent: PControl; // + AOptions: TProgressbarOptions); // +const ProgressBarFlags: array[ TProgressbarOption ] of Integer = // + (PBS_VERTICAL, PBS_SMOOTH ); // +begin // + CreateProgressbar( AParent ); // + fStyle := fStyle or DWORD( MakeFlags( @AOptions, ProgressBarFlags ) ); // +end; // + // +//[constructor TControl.CreateListView] +constructor TControl.CreateListView(AParent: PControl; // + AStyle: TListViewStyle; AOptions: TListViewOptions; AImageListSmall, // + AImageListNormal, AImageListState: PImageList); // +begin // + CreateCommonControl( AParent, WC_LISTVIEW, ListViewStyles[ AStyle ] or // + LVS_SHAREIMAGELISTS or WS_CHILD or WS_VISIBLE or WS_TABSTOP, // + True, @ListViewActions ); // + fLVOptions := AOptions; // + fLVStyle := AStyle; // + fCreateWndExt := ApplyImageLists2ListView; // + with fBoundsRect do // + begin // + Right := Left + 200; // + Bottom := Top + 150; // + end; // + ImageListSmall := AImageListSmall; // + ImageListNormal := AImageListNormal; // + ImageListState := AImageListState; // + fLVTextBkColor := clWindow; // + fLookTabKeys := [ tkTab ]; // +end; // + // +//[constructor TControl.CreateTreeView] +constructor TControl.CreateTreeView(AParent: PControl; // + AOptions: TTreeViewOptions; AImgListNormal, AImgListState: PImageList); // +var Flags: Integer; // +begin // + Flags := MakeFlags( @AOptions, TreeViewFlags ); // + CreateCommonControl( AParent, WC_TREEVIEW, Flags or WS_VISIBLE or // + WS_CHILD or WS_TABSTOP, True, @TreeViewActions ); // + fCreateWndExt := ApplyImageLists2Control; // + fColor := clWindow; // + AttachProc( WndProcTreeView ); // + with fBoundsRect do // + begin // + Right := Left + 150; // + Bottom := Top + 200; // + end; // + ImageListNormal := AImgListNormal; // + ImageListState := AImgListState; // + fLookTabKeys := [ tkTab ]; // +end; // + // +//[constructor TControl.CreateTabControl] +constructor TControl.CreateTabControl(AParent: PControl; ATabs: array of String;// + AOptions: TTabControlOptions; // + AImgList: PImageList; AImgList1stIdx: Integer); // +var I, II : Integer; // + Flags: Integer; // +begin // + Flags := MakeFlags( @AOptions, TabControlFlags ); // + if tcoFocusTabs in AOptions then // + Flags := Flags or (WS_TABSTOP or TCS_FOCUSONBUTTONDOWN); // + CreateCommonControl( AParent, WC_TABCONTROL, // + Flags or (WS_CHILD or WS_CLIPSIBLINGS or WS_CLIPCHILDREN or // + WS_VISIBLE), True, @TabControlActions ); // + if not( tcoBorder in AOptions ) then // + fExStyle := fExStyle and not WS_EX_CLIENTEDGE; // + AttachProc( WndProcTabControl ); // + with fBoundsRect do // + begin // + Right := Left + 100; // + Bottom := Top + 100; // + end; // + if AImgList <> nil then // + Perform( TCM_SETIMAGELIST, 0, AImgList.Handle ); // + II := AImgList1stIdx; // + for I := 0 to High( ATabs ) do // + begin // + TC_Insert( I, ATabs[ I ], II ); // + Inc( II ); // + end; // + fLookTabKeys := [ tkTab ]; // +end; // + // +//[constructor TControl.CreateToolbar] +constructor TControl.CreateToolbar(AParent: PControl; // + AAlign: TControlAlign; AOptions: TToolbarOptions; ABitmap: HBitmap; // + AButtons: array of PAnsiChar; ABtnImgIdxArray: array of Integer); // +var Flags: DWORD; // +begin // + if not( tboTextBottom in AOptions ) then // + AOptions := AOptions + [ tboTextRight ]; // + if tboTextRight in AOptions then // + AOptions := AOptions - [ tboTextBottom ]; // + Flags := MakeFlags( @AOptions, ToolbarOptions ); // + CreateCommonControl( AParent, TOOLBARCLASSNAME, ToolbarAligns[ Align ] or // + WS_CHILD or WS_VISIBLE {or WS_TABSTOP} // + or TBSTYLE_TOOLTIPS or Flags, // + (not (Align in [caNone])) and // + not (tboNoDivider in AOptions), nil ); // + fCommandActions.aClear := ClearToolbar; // + fCommandActions.aGetCount := TB_BUTTONCOUNT; // + with fBoundsRect do // + begin // + if AAlign in [ caNone ] then // + begin // + Bottom := Top + 26; // + Right := Left + 1000; // + end // + else // + begin // + Left := 0; Right := 0; // + Top := 0; Bottom := 0; // + end; // + end; // + Perform(TB_SETEXTENDEDSTYLE, 0, Perform(TB_GETEXTENDEDSTYLE, 0, 0) or // + TBSTYLE_EX_DRAWDDARROWS); // + // + AttachProc( WndProcToolbarCtrl ); // + Perform( TB_BUTTONSTRUCTSIZE, Sizeof( TTBButton ), 0 ); // + Perform( TB_SETINDENT, fMargin, 0 ); // + with fBoundsRect do // + begin // + if AAlign in [ caLeft, caRight ] then // + Right := Left + 24 // + else if not (AAlign in [caNone]) then // + Bottom := Top + 22; // + end; // + if ABitmap <> 0 then // + TBAddBitmap( ABitmap ); // + TBAddButtons( AButtons, ABtnImgIdxArray ); // + Perform( WM_SIZE, 0, 0 ); // +end; // + // +//[constructor TImageList.CreateImageList] +constructor TImageList.CreateImageList(POwner: Pointer); // +var AOwner: PControl; // +begin // + {*************} DoInitCommonControls( ICC_WIN95_CLASSES ); // + Create; // + FAllocBy := 1; // + FMasked := True; // + if POwner = nil then exit; // + FBkColor := TColor( CLR_NONE ); + //ImageList_SetBkColor( FHandle, CLR_NONE ); + // + AOwner := POwner; // + FControl := AOwner; // + fNext := PImageList( AOwner.fImageList ); // + if AOwner.fImageList <> nil then // + PImageList( AOwner.fImageList ).fPrev := @Self; // + AOwner.fImageList := @Self; // +end; // + // +//[constructor TThread.ThreadCreate] +constructor TThread.ThreadCreate; // +begin // + IsMultiThread := True; // + Create; // + FSuspended := True; // + FHandle := CreateThread( nil, // no security // + 0, // the same stack size // + @ThreadFunc, // thread entry point // + @Self, // parameter to pass to ThreadFunc // + CREATE_SUSPENDED, // always SUSPENDED // + FThreadID ); // receive thread ID // +end; // + // +//[constructor TThread.ThreadCreateEx] +constructor TThread.ThreadCreateEx( const Proc: TOnThreadExecute ); // +begin // + ThreadCreate; // + OnExecute := Proc; // + Resume; // +end; // + // +{$ENDIF USE_CONSTRUCTORS} //****************************************************// +{+} + //[procedure InvalidateExW] procedure InvalidateExW( Wnd: HWnd ); begin diff --git a/KOLDEF.inc b/KOLDEF.inc index f3848d0..e39ac6e 100644 --- a/KOLDEF.inc +++ b/KOLDEF.inc @@ -198,6 +198,17 @@ That is all to have full compatibility. {$ENDIF} {$ENDIF} +//{$DEFINE USE_CONSTRUCTORS} +// Comment this line to produce smaller code if constructors are not used. +// When uncommented, this definition allows to create descendant controls +// and objects overriding constructors, which are actually members of objects. +// Otherwise, global functions (usually named New) are used to +// create and initialize object instances. This gives smaller code, but +// prevents from using OOP inheritance. +// Note: creating descendant objects derived from TObj does not require using +// of this option. It is actually needed only for deriving new controls on +// base of TControl. See also option USE_CUSTOMEXTENSIONS below. + //{$DEFINE USE_CUSTOMEXTENSIONS} // Uncomment this option or add it to your project conditional defines, // if You wish to extend existing TControl object from @@ -216,10 +227,6 @@ That is all to have full compatibility. // Another way to turn this option off is to define symbol NOT_UNLOAD_RICHEDITLIB // in your project options. -//{$IFNDEF INPACKAGE} -// {$DEFINE NOT_USE_RICHEDIT} -//{$ENDIF} - //{$DEFINE TEST_VERSION} {$IFNDEF _D6orHigher} {$DEFINE PARANOIA} //seems not needed under D6 !!! Inprise fixed this, finally... diff --git a/KOL_ASM.inc b/KOL_ASM.inc index 7c0ae7e..5def9dd 100644 --- a/KOL_ASM.inc +++ b/KOL_ASM.inc @@ -4180,14 +4180,15 @@ end; {$ENDIF} {$IFDEF ASM_STREAM} -function TStream.Write(var Buffer; const Count: TStrmSize): TStrmSize; +function TStream.Write(var Buffer; {$IFNDEF STREAM_COMPAT} const {$ENDIF} Count: TStrmSize): TStrmSize; asm CALL [EAX].fMethods.fWrite end; {$ENDIF} {$IFDEF ASM_STREAM} -function TStream.Seek(const MoveTo: TStrmMove; MoveMethod: TMoveMethod): TStrmSize; +function TStream.Seek({$IFNDEF STREAM_COMPAT} const {$ENDIF} MoveTo: TStrmMove; MoveMethod: TMoveMethod): TStrmSize; +//function TStream.Seek(MoveTo: TStrmMove; MoveMethod: TMoveMethod): TStrmSize; asm CALL [EAX].fMethods.fSeek end; @@ -4218,7 +4219,8 @@ end; {$ENDIF} {$IFDEF ASM_STREAM} -function SeekMemStream( Strm: PStream; {$IFNDEF STREAM_COMPAT} const {$ENDIF} MoveTo: TStrmMove; MoveFrom: TMoveMethod ): TStrmSize; +function SeekMemStream( Strm: PStream; {$IFNDEF STREAM_COMPAT} const {$ENDIF} + MoveTo: TStrmMove; MoveFrom: TMoveMethod ): TStrmSize; asm PUSH EBX MOV EBX, EDX @@ -17898,54 +17900,59 @@ asm //cmd //opd //@@exit: XCHG EAX, ECX end; -{function WinVer : TWindowsVersion; +// by MTsv DN - v2.90 -- chg by VK +function WinVer : TWindowsVersion; asm - MOVSX EAX, byte ptr [SaveWinVer] - INC AH // если <> 0 после инкремента, то AL содержит вычисленную версию - JNZ @@exit - CALL GetVersion // EAX < 0 для платформы 9х, иначе NT; AL=MajorVersion; AH=MinorVersion - XCHG EDX, EAX - XOR EAX, EAX - TEST EDX, EDX - XCHG DL, DH // DH=MajorVersion; DL=MinorVersion - JL @@platform_9x - MOV AL, wvNT - CMP DX, $0400 - JZ @@save_exit + MOVSX EAX, byte ptr [SaveWinVer] + INC AH // если <> 0 после инкремента, то AL содержит вычисленную версию + JNZ @@exit + CALL GetVersion // EAX < 0 для платформы 9х, иначе NT; AL=MajorVersion; AH=MinorVersion + XCHG EDX, EAX + XOR EAX, EAX + TEST EDX, EDX + XCHG DL, DH // DH=MajorVersion; DL=MinorVersion - INC AL // wvY2K - CMP DX, $0500 - JZ @@save_exit + JL @@platform_9x + MOV AL, wvNT + CMP DX, $0400 + JZ @@save_exit - INC AL // wvXP - CMP DX, $0501 - JZ @@save_exit + INC AL // wvY2K + SUB DX, $0500 + JZ @@save_exit - INC AL // wvWin2003Server - CMP DX, $0502 - JZ @@save_exit + INC AL // wvXP + //CMP DX, $0501 + DEC DX + JZ @@save_exit - INC AL // wvVista - CMP DX, $0600 - JZ @@save_exit + INC AL // wvWin2003Server + //CMP DX, $0502 + DEC DX + JZ @@save_exit - INC AL // wvSeven - CMP DX, $0601 - JZ @@save_exit + INC AL // wvVista + CMP DX, $0600 - $0502 + JZ @@save_exit + + INC AL // wvSeven + //CMP DX, $0601 + //DEC DX + JMP @@save_exit @@platform_9x: - CMP DH, 4 - JB @@save_exit // wv31 - INC AL // wv95 - CMP DX, $040A - JB @@save_exit - INC AL // wv98 - CMP DX, $045A - JB @@save_exit - INC AL // wvME + CMP DH, 4 + JB @@save_exit // wv31 + INC AL // wv95 + CMP DX, $040A + JB @@save_exit + INC AL // wv98 + CMP DX, $045A + JB @@save_exit + INC AL // wvME @@save_exit: - MOV byte ptr [SaveWinVer], AL + MOV byte ptr [SaveWinVer], AL @@exit: -end;} +end; //======================================== THE END OF FILE KOL_ASM.inc diff --git a/KOLadd.pas b/KOLadd.pas index c1d32d7..d836923 100644 --- a/KOLadd.pas +++ b/KOLadd.pas @@ -701,6 +701,10 @@ type function GetTotal: Integer; function GetIndexAmongSiblings: Integer; protected + {$IFDEF USE_CONSTRUCTORS} + constructor CreateTree( AParent: PTree; const AName: AnsiString ); + {* } + {$ENDIF} {++}(*public*){--} destructor Destroy; {-}virtual;{+}{++}(*override;*){--} {* } @@ -1381,7 +1385,7 @@ procedure InitUpper; var c: AnsiChar; begin for c := #0 to #255 do - Upper[ c ] := AnsiUpperCase( AnsiString(c + #0) )[ 1 ]; + Upper[ c ] := AnsiUpperCase( {$IFDEF _D3orHigher}AnsiString{$ENDIF}(c + #0) )[ 1 ]; Upper_Initialized := TRUE; end; @@ -2711,7 +2715,9 @@ var arr1_DoOnMenuItem: array[ 0..0 ] of TOnMenuItem; {$ENDIF _FPC} begin - LinkCtrl(Menu, ckMenu, MenuItemIdx, UpdateMenu); + //LinkCtrl(Menu, ckMenu, MenuItemIdx, UpdateMenu); -- replaced by mdw to: + LinkCtrl(Menu, ckMenu, Menu.Items[MenuItemIdx].MenuId, UpdateMenu); + {$IFDEF _FPC} arr1_DoOnMenuItem[ 0 ] := DoOnMenuItem; Menu.AssignEvents(MenuItemIdx, arr1_DoOnMenuItem); @@ -2974,6 +2980,14 @@ end; { -- TTree -- } +{$IFDEF USE_CONSTRUCTORS} +//[function NewTree] +function NewTree( AParent: PTree; const AName: AnsiString ): PTree; +begin + New( Result, CreateTree( AParent, AName ) ); +end; +//[END NewTree] +{$ELSE not_USE_CONSTRUCTORS} //[function NewTree] {$IFDEF TREE_NONAME} function NewTree( AParent: PTree ): PTree; @@ -3011,6 +3025,7 @@ end; {$ENDIF} {$ENDIF} //[END NewTree] +{$ENDIF USE_CONSTRUCTORS} { TTree } @@ -3043,6 +3058,18 @@ begin PTree( fChildren.Items[ I ] ).Free; end; +{$IFDEF USE_CONSTRUCTORS} +//[constructor TTree.CreateTree] +constructor TTree.CreateTree(AParent: PTree; const AName: AnsiString); +begin + inherited Create; + if AParent <> nil then + AParent.Add( @Self ); + fParent := AParent; + fName := AName; +end; +{$ENDIF} + //[destructor TTree.Destroy] destructor TTree.Destroy; begin diff --git a/mckCtrls.pas b/mckCtrls.pas index 52586cb..ff5dea7 100644 --- a/mckCtrls.pas +++ b/mckCtrls.pas @@ -72,11 +72,7 @@ type procedure FirstCreate; override; function GenerateTransparentInits: String; override; function P_GenerateTransparentInits: String; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupColor( SL: TStrings; const AName: String ); override; procedure P_SetupColor( SL: TStrings; const AName: String; var ControlInStack: Boolean ); override; @@ -168,11 +164,7 @@ type procedure FirstCreate; override; function GenerateTransparentInits: String; override; function P_GenerateTransparentInits: String; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -262,11 +254,7 @@ type protected function AdjustVerticalAlign( Value: TVerticalAlign ): TVerticalAlign; virtual; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nParams: Integer ): String; override; function P_GenerateTransparentInits: String; override; @@ -309,11 +297,7 @@ type procedure SetColor2(const Value: TColor); protected function AdjustVerticalAlign( Value: TVerticalAlign ): TVerticalAlign; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupTextAlign( SL: TStrings; const AName: String ); override; procedure P_SetupTextAlign( SL: TStrings; const AName: String ); override; @@ -363,11 +347,7 @@ type protected function Get_VA: TVerticalAlign; procedure Set_VA(const Value: TVerticalAlign); virtual; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -380,11 +360,7 @@ type procedure Paint; override; function WYSIWIGPaintImplemented: Boolean; override; function NoDrawFrame: Boolean; override; -{$IFDEF _D2009orHigher} - procedure SetCaption(const Value: WideString); override; -{$ELSE} - procedure SetCaption(const Value: String); override; -{$ENDIF} + procedure SetCaption(const Value: TDelphiString); override; public constructor Create( AOwner: TComponent ); override; destructor Destroy; override; @@ -413,11 +389,7 @@ type FTimer: TTimer; procedure Tick( Sender: TObject ); protected -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; public constructor Create( AOwner: TComponent ); override; @@ -445,11 +417,7 @@ type protected function TabStopByDefault: Boolean; override; function TypeName: String; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -493,11 +461,7 @@ type procedure SetEdgeStyle(const Value: TEdgeStyle); protected function IsCursorDefault: Boolean; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -532,11 +496,7 @@ type protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -577,11 +537,7 @@ type protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -629,11 +585,7 @@ type protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; function P_GenerateTransparentInits: String; override; procedure SetupLast( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -687,24 +639,14 @@ type FOptions: TKOLEditOptions; FEdTransparent: Boolean; procedure SetOptions(const Value: TKOLEditOptions); -{$IFDEF _D2009orHigher} - function GetCaption: WideString; - function GetText: WideString; - procedure SetText(const Value: WideString); -{$ELSE} - function GetCaption: String; - function GetText: String; - procedure SetText(const Value: String); -{$ENDIF} + function GetCaption: TDelphiString; + function GetText: TDelphiString; + procedure SetText(const Value: TDelphiString); procedure SetEdTransparent(const Value: Boolean); protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -723,21 +665,13 @@ type function Pcode_Generate: Boolean; override; published property Transparent: Boolean read FEdTransparent write SetEdTransparent; -{$IFDEF _D2009orHigher} - property Text: WideString read GetText write SetText; -{$ELSE} - property Text: String read GetText write SetText; -{$ENDIF} + property Text: TDelphiString read GetText write SetText; property Options: TKOLEditOptions read FOptions write SetOptions; property TabStop; property TabOrder; property OnChange; property OnSelChange; -{$IFDEF _D2009orHigher} - property Caption: WideString read GetCaption; // redefined as read only to remove from Object Inspector -{$ELSE} - property Caption: String read GetCaption; // redefined as read only to remove from Object Inspector -{$ENDIF} + property Caption: TDelphiString read GetCaption; // redefined as read only to remove from Object Inspector property OnKeyDown; property OnKeyUp; property OnChar; @@ -784,11 +718,7 @@ type protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -887,11 +817,7 @@ type protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -991,11 +917,7 @@ type protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -1067,11 +989,7 @@ type protected function TabStopByDefault: Boolean; override; procedure FirstCreate; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -1125,11 +1043,7 @@ type private fNotAvailable: Boolean; protected -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; function BestEventName: String; override; public @@ -1164,11 +1078,7 @@ type procedure SetImageListNormal(const Value: TKOLImageList); procedure SetImgShwAutoSize(const Value: Boolean); protected -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -1219,11 +1129,7 @@ type protected procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; function TypeName: String; override; procedure CreateKOLControl(Recreating: boolean); override; @@ -1356,11 +1262,7 @@ type FCols: TList; FColCount: Integer; function TabStopByDefault: Boolean; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -1480,11 +1382,7 @@ type procedure SetTVIndent(const Value: Integer); protected function TabStopByDefault: Boolean; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -1694,11 +1592,7 @@ type ValuesInStack: Integer; procedure SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupFirst( SL: TStringList; const AName, AParent, Prefix: String ); override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupLast( SL: TStringList; const AName, AParent, Prefix: String ); override; procedure P_SetupLast( SL: TStringList; const AName, AParent, Prefix: String ); override; @@ -1826,11 +1720,7 @@ type procedure SetOptions(const Value: TDateTimePickerOptions); procedure SetFormat(const Value: String); protected -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; function GenerateTransparentInits: String; override; function P_GenerateTransparentInits: String; override; @@ -1885,11 +1775,7 @@ type fDestroyingTabControl: Boolean; FAdjustingPages: Boolean; function TabStopByDefault: Boolean; override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure SetupFirst(SL: TStringList; const AName, AParent, Prefix: String); override; procedure P_SetupFirst(SL: TStringList; const AName, AParent, Prefix: String); override; @@ -1964,11 +1850,7 @@ type procedure SetControlContainer(const Value: Boolean); procedure SetEdgeStyle(const Value: TEdgeStyle); protected -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; function IsControlContainer: Boolean; virtual; function TypeName: String; override; @@ -2015,11 +1897,7 @@ type protected procedure SetupFirst(SL: TStringList; const AName, AParent, Prefix: String); override; procedure P_SetupFirst(SL: TStringList; const AName, AParent, Prefix: String); override; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; override; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; override; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString): TDelphiString; override; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; override; procedure AssignEvents( SL: TStringList; const AName: String ); override; function P_AssignEvents( SL: TStringList; const AName: String; @@ -2716,12 +2594,7 @@ begin Font.GenerateCode( SL, AName, BFont ); end; -function TKOLButton. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} +function TKOLButton.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -2997,12 +2870,7 @@ begin SL.Add( Prefix + AName + '.Style := ' + AName + '.Style and not SS_NOPREFIX;' ); end; -function TKOLLabel. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} +function TKOLLabel.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -3324,12 +3192,7 @@ begin end; end; -procedure TKOLPanel. -{$IFDEF _D2009orHigher} - SetCaption(const Value: WideString); -{$ELSE} - SetCaption(const Value: String); -{$ENDIF} +procedure TKOLPanel.SetCaption(const Value: TDelphiString); begin inherited; if (Parent <> nil) and (Parent is TKOLTabControl) then @@ -3406,13 +3269,7 @@ begin SL.Add( Prefix + AName + '.Style := ' + AName + '.Style and not SS_NOPREFIX;' ); end; -function TKOLPanel. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLPanel.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; const EdgeStyles: array[ TEdgeStyle ] of String = ( 'esRaised', 'esLowered', 'esNone', 'esTransparent', 'esSolid' ); begin @@ -4116,13 +3973,7 @@ begin end; -function TKOLBitBtn. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLBitBtn.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; const Layouts: array[ TGlyphLayout ] of String = ( 'glyphLeft', 'glyphTop', 'glyphRight', 'glyphBottom', 'glyphOver' ); var @@ -4563,13 +4414,7 @@ begin SL.Add( Prefix + AName + '.HasBorder := TRUE;' ); end; -function TKOLGradientPanel. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLGradientPanel.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; begin asm jmp @@e_signature @@ -4740,12 +4585,7 @@ begin SL.Add( Prefix + AName + '.TextAlign := ' + TextAligns[ TextAlign ] + ';' );} end; -function TKOLGroupBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} +function TKOLGroupBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -4936,12 +4776,7 @@ begin SL.Add( Prefix + AName + '.WordWrap := TRUE;' );} end; -function TKOLCheckBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} +function TKOLCheckBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -5130,12 +4965,7 @@ begin end; end; -function TKOLRadioBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} +function TKOLRadioBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -5228,12 +5058,7 @@ begin inherited; end; -function TKOLEditBox. -{$IFDEF _D2009orHigher} -GetCaption: WideString; -{$ELSE} -GetCaption: String; -{$ENDIF} +function TKOLEditBox.GetCaption: TDelphiString; begin asm jmp @@e_signature @@ -5244,12 +5069,7 @@ begin Result := inherited Caption; end; -function TKOLEditBox. -{$IFDEF _D2009orHigher} -GetText: WideString; -{$ELSE} -GetText: String; -{$ENDIF} +function TKOLEditBox.GetText: TDelphiString; begin asm jmp @@e_signature @@ -5415,12 +5235,7 @@ begin Change; end; -procedure TKOLEditBox. -{$IFDEF _D2009orHigher} -SetText(const Value: WideString); -{$ELSE} -SetText(const Value: String); -{$ENDIF} +procedure TKOLEditBox.SetText(const Value: TDelphiString); begin asm jmp @@e_signature @@ -5456,13 +5271,7 @@ begin SL.Add( Prefix + AName + '.Ed_Transparent := TRUE;' ); end; -function TKOLEditBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLEditBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S: String; begin asm @@ -5805,13 +5614,7 @@ begin SL.Add( Prefix + AName + '.Ed_Transparent := TRUE;' ); end; -function TKOLMemo. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLMemo.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S: String; begin asm @@ -6196,13 +5999,7 @@ begin SL.Add( Prefix + AName + '.Count := ' + IntToStr( Count ) + ';' ); end; -function TKOLListBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLListBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S: String; begin asm @@ -6528,13 +6325,7 @@ begin SL.Add( Prefix + AName + '.DroppedWidth := ' + IntToStr( FDroppedWidth ) + ';' ); end; -function TKOLComboBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLComboBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S: String; begin asm @@ -6763,13 +6554,7 @@ begin inherited; end; -function TKOLSplitter. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLSplitter.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; const Styles: array[ TEdgeStyle ] of String = ( 'esRaised', 'esLowered', 'esNone', 'esTransparent', 'esSolid' ); begin @@ -6836,13 +6621,7 @@ begin Result := ' DUP'; end; -function TKOLPaintBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLPaintBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; begin asm jmp @@e_signature @@ -7272,13 +7051,7 @@ begin SL.Add( Prefix + AName + '.LVCount := ' + IntToStr( LVCount ) + ';' ); end; -function TKOLListView. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLListView.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S, O, ILSm, ILNr, ILSt: String; begin asm @@ -7971,13 +7744,7 @@ begin SL.Add( Prefix + AName + '.TVIndent := ' + IntToStr( TVIndent ) + ';' ); end; -function TKOLTreeView. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLTreeView.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var O, ILNr, ILSt: String; begin asm @@ -8587,13 +8354,7 @@ begin ', ' + IntToStr( FRE_ZoomDenominator ) + ' );' ); end; -function TKOLRichEdit. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLRichEdit.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S: String; begin asm @@ -8894,13 +8655,7 @@ begin SL.Add( Prefix + AName + '.ProgressBkColor := ' + Color2Str( ProgressBkColor ) + ';' );} end; -function TKOLProgressBar. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLProgressBar.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S: String; begin asm @@ -9821,13 +9576,7 @@ begin end; end; -function TKOLTabControl. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLTabControl.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var O, IL: String; I: Integer; {$IFDEF _D2009orHigher} @@ -10998,13 +10747,7 @@ begin end; end; -function TKOLToolbar. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLToolbar.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -13051,13 +12794,7 @@ begin SL.Add( Prefix + AName + '.CurIndex := ' + IntToStr( CurIndex ) + ';' ); end; -function TKOLImageShow. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLImageShow.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; begin asm jmp @@e_signature @@ -13276,12 +13013,7 @@ begin SL.Add( Prefix + AName + '.Ctl3D := TRUE;' ); end; -function TKOLLabelEffect. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} +function TKOLLabelEffect.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -13448,13 +13180,7 @@ begin Change; end; -function TKOLScrollBox. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLScrollBox.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; const EdgeStyles: array[ TEdgeStyle ] of String = ( 'esRaised', 'esLowered', 'esNone', 'esTransparent', 'esSolid' ); var S: String; @@ -13638,13 +13364,7 @@ begin nparams := 2; end; -function TKOLMDIClient. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLMDIClient.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; function FindWindowMenu( MI: TKOLMenuItem ): Integer; var I: Integer; @@ -14967,13 +14687,7 @@ begin Color2Str( Color ) + ';' ); end; -function TKOLDateTimePicker. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLDateTimePicker.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; var S: String; begin S := ''; @@ -15181,13 +14895,7 @@ begin SL.Add( Prefix + AName + '.SBPageSize := ' + IntToStr( SBPageSize ) + ';' ); end; -function TKOLScrollBar. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLScrollBar.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; const ScrollerBarNames: array[ TScrollerBar ] of String = ( 'sbHorizontal', 'sbVertical' ); begin diff --git a/mirror.pas b/mirror.pas index 3956ffa..a708869 100644 --- a/mirror.pas +++ b/mirror.pas @@ -162,6 +162,11 @@ const type + {$IFDEF _D2009orHigher} + TDelphiString = WideString; + {$ELSE} + TDelphiString = String; + {$ENDIF} ////////////////////////////////////////////////////////// {$IFDEF _D6orHigher} // @@ -706,11 +711,7 @@ type FOnShow: TOnEvent; FOnHide: TOnEvent; FzOrderChildren: Boolean; -{$IFDEF _D2009orHigher} - FSimpleStatusText: WideString; -{$ELSE} - FSimpleStatusText: String; -{$ENDIF} + FSimpleStatusText: TDelphiString; FStatusText: TStringList; fOnMouseDblClk: TOnMouse; FMarginLeft: Integer; @@ -798,11 +799,7 @@ type procedure SetOnShow(const Value: TOnEvent); procedure SetOnHide(const Value: TOnEvent); procedure SetzOrderChildren(const Value: Boolean); -{$IFDEF _D2009orHigher} - procedure SetSimpleStatusText(const Value: WideString); -{$ELSE} - procedure SetSimpleStatusText(const Value: String); -{$ENDIF} + procedure SetSimpleStatusText(const Value: TDelphiString); function GetStatusText: TStrings; procedure SetStatusText(const Value: TStrings); procedure SetOnMouseDblClk(const Value: TOnMouse); @@ -841,13 +838,9 @@ type function AdditionalUnits: String; virtual; function FormTypeName: String; virtual; function AppletOnForm: Boolean; -{$IFDEF _D2009orHigher} - function GetCaption: WideString; virtual; - procedure SetFormCaption(const Value: WideString); virtual; -{$ELSE} - function GetCaption: String; virtual; - procedure SetFormCaption(const Value: String); virtual; -{$ENDIF} + function GetCaption: TDelphiString; virtual; + procedure SetFormCaption(const Value: TDelphiString); virtual; + function GetFormName: String; procedure SetFormName(const Value: String); function GenerateTransparentInits: String; virtual; @@ -994,12 +987,7 @@ type // форма выполняет особую роль, и даже может замещать собой объект // Applet при его отсутствии). property formMain: Boolean read GetFormMain write SetFormMain; - -{$IFDEF _D2009orHigher} - property Caption: WideString read GetCaption write SetFormCaption; -{$ELSE} - property Caption: String read GetCaption write SetFormCaption; -{$ENDIF} + property Caption: TDelphiString read GetCaption write SetFormCaption; property Visible; property Enabled; @@ -1058,11 +1046,7 @@ type property RestoreNormalMaximized: Boolean read FRestoreNormalMaximized write SetRestoreNormalMaximized; property zOrderChildren: Boolean read FzOrderChildren write SetzOrderChildren; -{$IFDEF _D2009orHigher} - property SimpleStatusText: WideString read FSimpleStatusText write SetSimpleStatusText; -{$ELSE} - property SimpleStatusText: String read FSimpleStatusText write SetSimpleStatusText; -{$ENDIF} + property SimpleStatusText: TDelphiString read FSimpleStatusText write SetSimpleStatusText; property StatusText: TStrings read GetStatusText write SetStatusText; property statusSizeGrip: Boolean read FStatusSizeGrip write SetStatusSizeGrip; @@ -1372,11 +1356,7 @@ type {$ENDIF} TKOLMenuItem = class(TComponent) private -{$IFDEF _D2009orHigher} - FCaption: WideString; -{$ELSE} - FCaption: String; -{$ENDIF} + FCaption: TDelphiString; FBitmap: TBitmap; FSubitems: TList; FChecked: Boolean; @@ -1399,11 +1379,7 @@ type FTag: Integer; Faction: TKOLAction; procedure SetBitmap(Value: TBitmap); -{$IFDEF _D2009orHigher} - procedure SetCaption(const Value: WideString); -{$ELSE} - procedure SetCaption(const Value: String); -{$ENDIF} + procedure SetCaption(const Value: TDelphiString); function GetCount: Integer; function GetSubItems(Idx: Integer): TKOLMenuItem; procedure SetChecked(const Value: Boolean); @@ -1494,11 +1470,7 @@ type function CheckOnMenuMethodExists: Boolean; published property Tag: Integer read FTag write SetTag; -{$IFDEF _D2009orHigher} - property caption: WideString read FCaption write SetCaption; -{$ELSE} - property caption: String read FCaption write SetCaption; -{$ENDIF} + property Caption: TDelphiString read FCaption write SetCaption; property bitmap: TBitmap read FBitmap write SetBitmap; property bitmapChecked: TBitmap read FbitmapChecked write SetbitmapChecked; property bitmapItem: TBitmap read FbitmapItem write SetbitmapItem; @@ -1802,11 +1774,7 @@ type fClsStyle: DWORD; fExStyle: DWORD; fStyle: DWORD; -{$IFDEF _D2009orHigher} - fCaption: WideString; -{$ELSE} - fCaption: String; -{$ENDIF} + fCaption: TDelphiString; FTextAlign: TTextAlign; fMargin: Integer; fOnClick: TOnEvent; @@ -2081,11 +2049,7 @@ type function TabStopByDefault: Boolean; virtual; procedure SetMargin(const Value: Integer); virtual; -{$IFDEF _D2009orHigher} - procedure SetCaption(const Value: WideString); virtual; -{$ELSE} - procedure SetCaption(const Value: String); virtual; -{$ENDIF} + procedure SetCaption(const Value: TDelphiString); virtual; procedure SetTextAlign(const Value: TTextAlign); virtual; // This function returns margins between control edges and edges of client @@ -2217,11 +2181,7 @@ type // Функция, которая формирует правильные параметры для оператора // конструирования объекта (т.е. то, что будет в круглых скобках // в операторе: Result.Button1 := NewButton( ... )...; -{$IFDEF _D2009orHigher} - function SetupParams( const AName, AParent: WideString ): WideString; virtual; -{$ELSE} - function SetupParams( const AName, AParent: String ): String; virtual; -{$ENDIF} + function SetupParams( const AName, AParent: TDelphiString ): TDelphiString; virtual; function P_SetupParams( const AName, AParent: String; var nparams: Integer ): String; virtual; // Method to assign values to assigned events. Is called in SetupFirst @@ -2315,12 +2275,7 @@ type procedure Loaded; override; procedure Notification(AComponent: TComponent; Operation: TOperation); override; - -{$IFDEF _D2009orHigher} - function StringConstant( const Propname, Value: WideString ): WideString; -{$ELSE} - function StringConstant( const Propname, Value: String ): String; -{$ENDIF} + function StringConstant( const Propname, Value: TDelphiString ): TDelphiString; function P_StringConstant( const Propname, Value: String ): String; function BestEventName: String; virtual; function GetDefaultControlFont: HFONT; virtual; @@ -2437,11 +2392,7 @@ type property CenterOnParent: Boolean read fCenterOnParent write SetCenterOnParent; -{$IFDEF _D2009orHigher} - property Caption: WideString read fCaption write SetCaption; -{$ELSE} - property Caption: String read fCaption write SetCaption; -{$ENDIF} + property Caption: TDelphiString read fCaption write SetCaption; property Ctl3D: Boolean read FCtl3D write SetCtl3D; property Color: TColor read Get_Color write Set_Color; @@ -2762,11 +2713,7 @@ type procedure SetParentFont(const Value: Boolean); protected function AutoCaption: Boolean; override; -{$IFDEF _D2009orHigher} - function GetCaption: WideString; override; -{$ELSE} - function GetCaption: String; override; -{$ENDIF} + function GetCaption: TDelphiString; override; function GenerateTransparentInits: String; override; function P_GenerateTransparentInits: String; override; procedure GenerateCreateForm( SL: TStringList ); override; @@ -2970,13 +2917,8 @@ function Get_ProjectName: String; function Get_ProjectGroup: IOTAProjectGroup; {$ENDIF} -{$IFDEF _D2009orHigher} procedure AddLongTextField( var SL: TStringList; const Prefix:String; - const Text:WideString; const Suffix:String; const LinePrefix: String ); -{$ELSE} -procedure AddLongTextField( var SL: TStringList; const Prefix:String; - const Text:String; const Suffix:String; const LinePrefix: String ); -{$ENDIF} + const Text:TDelphiString; const Suffix:String; const LinePrefix: String ); //*/////////////////////////////////////// {$IFDEF _D6orHigher} // @@ -3926,13 +3868,8 @@ begin END; end; -{$IFDEF _D2009orHigher} procedure AddLongTextField( var SL: TStringList; const Prefix:String; - const Text:WideString; const Suffix:String; const LinePrefix: String ); -{$ELSE} -procedure AddLongTextField( var SL: TStringList; const Prefix:String; - const Text:String; const Suffix:String; const LinePrefix: String ); -{$ENDIF} + const Text:TDelphiString; const Suffix:String; const LinePrefix: String ); var {$IFDEF _D2009orHigher} C, C2: WideString; @@ -6074,12 +6011,7 @@ begin end; end; -procedure TKOLCustomControl. -{$IFDEF _D2009orHigher} - SetCaption(const Value: WideString); -{$ELSE} - SetCaption(const Value: String); -{$ENDIF} +procedure TKOLCustomControl.SetCaption(const Value: TDelphiString); begin asm jmp @@e_signature @@ -7925,13 +7857,7 @@ begin Change; end; -function TKOLCustomControl. -{$IFDEF _D2009orHigher} -SetupParams( const AName, AParent: WideString ): WideString; -{$ELSE} -SetupParams( const AName, AParent: String ): String; -{$ENDIF} - +function TKOLCustomControl.SetupParams( const AName, AParent: TDelphiString ): TDelphiString; begin asm jmp @@e_signature @@ -8565,12 +8491,7 @@ begin Change; end; -function TKOLCustomControl. -{$IFDEF _D2009orHigher} - StringConstant( const Propname, Value: WideString ): WideString; -{$ELSE} - StringConstant( const Propname, Value: String ): String; -{$ENDIF} +function TKOLCustomControl.StringConstant( const Propname, Value: TDelphiString ): TDelphiString; begin Log( '->TKOLCustomControl.StringConstant' ); try @@ -12776,8 +12697,7 @@ begin end; end; -{$IFDEF _D2009orHigher} -function TKOLForm.GetCaption: WideString; +function TKOLForm.GetCaption: TDelphiString; begin asm jmp @@e_signature @@ -12795,26 +12715,6 @@ begin Log( '<-TKOLForm.GetCaption' ); end; end; -{$ELSE} -function TKOLForm.GetCaption: String; -begin - asm - jmp @@e_signature - DB '#$signature$#', 0 - DB 'TKOLForm.GetCaption', 0 - @@e_signature: - end; - Log( '->TKOLForm.GetCaption' ); - try - Result := FCaption; - if (Owner <> nil) and (Owner is TForm) then - Result := (Owner as TForm).Caption; - LogOK; - finally - Log( '<-TKOLForm.GetCaption' ); - end; -end; -{$ENDIF} function TKOLForm.GetFormMain: Boolean; begin @@ -13187,8 +13087,7 @@ begin end; -{$IFDEF _D2009orHigher} -procedure TKOLForm.SetFormCaption(const Value: WideString); +procedure TKOLForm.SetFormCaption(const Value: TDelphiString); begin asm jmp @@e_signature @@ -13210,30 +13109,6 @@ begin Log( '<-TKOLForm.SetFormCaption' ); end; end; -{$ELSE} -procedure TKOLForm.SetFormCaption(const Value: String); -begin - asm - jmp @@e_signature - DB '#$signature$#', 0 - DB 'TKOLForm.SetFormCaption', 0 - @@e_signature: - end; - Log( '->TKOLForm.SetFormCaption' ); - try - - if not FLocked then - begin - inherited Caption := Value; - if (Owner <> nil) and (Owner is TForm) then - (Owner as TForm).Caption := Value; - end; - LogOK; - finally - Log( '<-TKOLForm.SetFormCaption' ); - end; -end; -{$ENDIF} procedure TKOLForm.SetFormMain(const Value: Boolean); var I: Integer; @@ -14566,8 +14441,7 @@ begin end; end; -{$IFDEF _D2009orHigher} -procedure TKOLForm.SetSimpleStatusText(const Value: WideString); +procedure TKOLForm.SetSimpleStatusText(const Value: TDelphiString); begin asm jmp @@e_signature @@ -14585,26 +14459,6 @@ begin Log( '<-TKOLForm.SetSimpleStatusText' ); end; end; -{$ELSE} -procedure TKOLForm.SetSimpleStatusText(const Value: String); -begin - asm - jmp @@e_signature - DB '#$signature$#', 0 - DB 'TKOLForm.SetSimpleStatusText', 0 - @@e_signature: - end; - Log( '->TKOLForm.SetSimpleStatusText' ); - try - FSimpleStatusText := Value; - FStatusText.Text := Value; - Change( Self ); - LogOK; - finally - Log( '<-TKOLForm.SetSimpleStatusText' ); - end; -end; -{$ENDIF} function TKOLForm.GetStatusText: TStrings; begin @@ -21279,12 +21133,7 @@ begin end; -function TKOLFrame. -{$IFDEF _D2009orHigher} -GetCaption: WideString; -{$ELSE} -GetCaption: String; -{$ENDIF} +function TKOLFrame.GetCaption: TDelphiString; begin asm jmp @@e_signature diff --git a/read1st.txt b/read1st.txt index 1581b59..9710548 100644 --- a/read1st.txt +++ b/read1st.txt @@ -3,7 +3,7 @@ KEY OBJECTS LIBRARY for Delphi (and Free Pascal Compiler) - to make applications Copyright (C) by Vladimir Kladov, 1999-2010. Some parts of code are Copyright (C) intellectual property by other people, see comments in code and on KOL site. Thanks to all for help with KOL and MCK! -v. 2.89 (30-Mar-2010) +v. 2.90 (27-Mar-2010) To get newer version, go to Web-page http://www.kolmck.net and get there updates. diff --git a/read1st_rus.txt b/read1st_rus.txt index 14b5413..290fca9 100644 --- a/read1st_rus.txt +++ b/read1st_rus.txt @@ -1,7 +1,7 @@ KEY OBJECTS LIBRARY для Delphi (и Free Pascal Compiler) - предназначен для того, чтобы сделать программы, изготовленные с использованием языка Паскаль, маленькими и очень маленькими. Copyright (C) by Vladimir Kladov, 1999-2007. Бесплатно, с исходными текстами. -версия 2.89 (30 марта 2010 г.) +версия 2.90 (27 марта 2010 г.) _________________ КРАТКОЕ ОПИСАНИЕ: diff --git a/visual_xp_styles.inc b/visual_xp_styles.inc index 57c6af7..8829ea2 100644 --- a/visual_xp_styles.inc +++ b/visual_xp_styles.inc @@ -2,7 +2,7 @@ // Rev.: 1.97 // Date: 09 aug 2009 // Author: MTsv DN -// Thanks: mdw, Vladimir Kladov, D[u]fa +// Thanks: mdw, Vladimir Kladov {$IFDEF _FPC} const diff --git a/whatsnew.txt b/whatsnew.txt index 45d65fb..d1c2c25 100644 --- a/whatsnew.txt +++ b/whatsnew.txt @@ -135,8 +135,8 @@ MTsv DN Добавлено ========= -- Файлы: KOL_ansi.inc (в противовес KOL_unicode.inc набор функций и определений ANSI API). Автор: azsd (возврат совместимости с версиями <= D3 D[u]fa) - MCKAppExpert200x.pas (визард для удобного создания проекта KOLMCK в Delphi 7, 2005-2009 (в 5 вресии будет работать после не значительных изменений)). Автор: D[u]fa +- Файлы: KOL_ansi.inc (в противовес KOL_unicode.inc набор функций и определений ANSI API). Автор: azsd (возврат совместимости с версией D3 D[u]fa, с версией D2 - Кладов) + MCKAppExpert200x.pas (визард для удобного создания проекта KOLMCK в Delphi 7, 2005-2009 (в 5 версии будет работать после незначительных изменений)). Автор: D[u]fa MirrorKOLPackageD1x.dpk. Файлы проектов для Delphi 2005-2009. MirrorKOLPackageD1x.res. Файлы ресурсов для Delphi 2005-2009. MirrorKOLPackageD1x.dproj. Файлы проектов для Delphi 2007-2009. @@ -167,4 +167,3 @@ MTsv DN mckToolbarEditorD3.pas (нигде не использовался), mckToolbarEditorD4.pas (нигде не использовался) -P.S. Владимир, azsd - это наш китайский друг. Все исправления по поводу использования !!!KOL!!! в Delphi 2009 к нему. ICQ и Email есть на форуме. \ No newline at end of file