From: Robert M. <mar...@us...> - 2003-02-09 19:00:42
|
Update of /cvsroot/jvcl/rm/source In directory sc8-pr-cvs1:/tmp/cvs-serv4772/source Modified Files: JvParsing.pas JvPluginParams.dfm JvPluginParams.pas JvPluginWizard.pas JvPopupMemo.pas JvPresrDsn.dfm JvPresrDsn.pas JvPrgrss.pas JvPrint.pas JvProfiler32.dfm JvProfiler32.pas JvProgressBar.pas JvProgressDlg.pas JvPropAutoSave.pas JvProps.pas JvTypes.pas Log Message: cleaned Index: JvParsing.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvParsing.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** JvParsing.pas 9 Feb 2003 14:19:10 -0000 1.2 --- JvParsing.pas 9 Feb 2003 19:00:28 -0000 1.3 *************** *** 461,465 **** on E: EJvParserError do raise - // (rom) where is the end of the try? else InvalidCondition(SParseInvalidFloatOperation); --- 461,464 ---- Index: JvPluginParams.dfm =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvPluginParams.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvPluginParams.dfm 9 Jan 2003 13:36:08 -0000 1.1 --- JvPluginParams.dfm 9 Feb 2003 19:00:29 -0000 1.2 *************** *** 1,9 **** object frmPluginParams: TfrmPluginParams ! Left = 222 ! Top = 120 ! Width = 335 ! Height = 266 Caption = 'Setup Plugin Parameters' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText --- 1,13 ---- object frmPluginParams: TfrmPluginParams ! Left = 424 ! Top = 232 ! Width = 343 ! Height = 247 ! BorderIcons = [biSystemMenu] Caption = 'Setup Plugin Parameters' Color = clBtnFace + Constraints.MaxHeight = 247 + Constraints.MinHeight = 247 + Constraints.MinWidth = 343 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText *************** *** 11,71 **** Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 ! object Label1: TLabel ! Left = 16 ! Top = 19 ! Width = 72 ! Height = 13 ! Caption = 'Name of Plugin' ! end ! object Label2: TLabel ! Left = 16 ! Top = 48 ! Width = 291 ! Height = 52 ! Caption = ! 'A Plugin named Test would have '#13#10#13#10'*) a Project-file called PlgT' + ! 'est.dpk'#13#10'*) a Unit called PluginTest.pas containing the Object T' + ! 'plgTest' ! end ! object radPluginType: TRadioGroup ! Left = 48 ! Top = 120 ! Width = 201 ! Height = 57 ! Caption = 'Plugin-Type' ! ItemIndex = 1 ! Items.Strings = ( ! 'DLL-Plugin (old style)' ! 'Package-Plugin') ! TabOrder = 0 ! end ! object ediPluginName: TEdit ! Left = 96 ! Top = 16 ! Width = 121 ! Height = 21 ! TabOrder = 1 ! Text = 'PluginName' end object butOK: TButton ! Left = 80 ! Top = 200 Width = 75 Height = 25 Caption = 'OK' ModalResult = 1 ! TabOrder = 2 end object butCancel: TButton ! Left = 168 ! Top = 200 Width = 75 Height = 25 Caption = 'Cancel' ModalResult = 2 ! TabOrder = 3 end end --- 15,109 ---- Font.Name = 'MS Sans Serif' Font.Style = [] + Icon.Data = { + 0000010001001010100001001000280100001600000028000000100000002000 + 00000100040000000000C0000000000000000000000000000000000000000000 + 0000000080000080000000808000800000008000800080800000C0C0C0008080 + 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 00000000000000000BBBB0000000000BB000BB000000000BB0000B000000000B + BB000BB00000000BBB000BB00000000000000BB00000000000000BB000000000 + 00000BB00000000000000BB00000000000000BB00000000000000BB000000000 + 00000BB0000000000000BBBB00000000000BBBBBB0000000000000000000FFFF + 0000F87F0000E73F0000E7BF0000E39F0000E39F0000FF9F0000FF9F0000FF9F + 0000FF9F0000FF9F0000FF9F0000FF9F0000FF0F0000FE070000FFFF0000} OldCreateOrder = False + OnShow = FormShow + DesignSize = ( + 335 + 217) PixelsPerInch = 96 TextHeight = 13 ! object lblCreateInfo: TLabel ! Left = 5 ! Top = 110 ! Width = 325 ! Height = 71 ! Anchors = [akLeft, akTop, akRight, akBottom] ! AutoSize = False ! WordWrap = True end object butOK: TButton ! Left = 167 ! Top = 190 Width = 75 Height = 25 + Anchors = [akRight, akBottom] Caption = 'OK' + Default = True ModalResult = 1 ! TabOrder = 0 end object butCancel: TButton ! Left = 255 ! Top = 190 Width = 75 Height = 25 + Anchors = [akRight, akBottom] Caption = 'Cancel' ModalResult = 2 ! TabOrder = 1 ! end ! object gbPluginSettings: TGroupBox ! Left = 5 ! Top = 5 ! Width = 325 ! Height = 96 ! Anchors = [akLeft, akTop, akRight] ! Caption = ' Plugin settings ' ! TabOrder = 2 ! DesignSize = ( ! 325 ! 96) ! object edName: TEdit ! Left = 10 ! Top = 20 ! Width = 305 ! Height = 21 ! Anchors = [akLeft, akTop, akRight] ! TabOrder = 0 ! Text = 'PluginName' ! OnChange = SettingsChanged ! end ! object rbPackage: TRadioButton ! Left = 10 ! Top = 50 ! Width = 305 ! Height = 17 ! Anchors = [akLeft, akTop, akRight] ! Caption = 'Package plugin' ! Checked = True ! TabOrder = 1 ! TabStop = True ! OnClick = SettingsChanged ! end ! object rbDLL: TRadioButton ! Left = 10 ! Top = 70 ! Width = 305 ! Height = 17 ! Anchors = [akLeft, akTop, akRight] ! Caption = 'DLL plugin (old style)' ! TabOrder = 2 ! OnClick = SettingsChanged ! end end end Index: JvPluginParams.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvPluginParams.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvPluginParams.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvPluginParams.pas 9 Feb 2003 19:00:31 -0000 1.2 *************** *** 37,50 **** type TfrmPluginParams = class(TForm) - radPluginType: TRadioGroup; - Label1: TLabel; - ediPluginName: TEdit; butOK: TButton; butCancel: TButton; ! Label2: TLabel; ! private ! { Private-Deklarationen } ! public ! { Public-Deklarationen } end; --- 37,49 ---- type TfrmPluginParams = class(TForm) butOK: TButton; butCancel: TButton; ! gbPluginSettings: TGroupBox; ! edName: TEdit; ! rbPackage: TRadioButton; ! rbDLL: TRadioButton; ! lblCreateInfo: TLabel; ! procedure SettingsChanged(Sender: TObject); ! procedure FormShow(Sender: TObject); end; *************** *** 54,58 **** --- 53,81 ---- implementation + const + SInfoText = 'The settings above will create the following project:' + #13#10#13#10 + + '* A project called plg%0:s.%1:s' + #13#10 + + '* A unit called Plugin%0:s, containing the data module T%0:s.'; + {$R *.DFM} + + procedure TfrmPluginParams.SettingsChanged(Sender: TObject); + + function RbToPrjExt: string; + begin + Result := 'dpk'; + if rbDLL.Checked then + Result := 'dpr'; + end; + + begin + lblCreateInfo.Caption := Format(SInfoText, [edName.Text, RbToPrjExt]); + butOK.Enabled := Trim(edName.Text) <> ''; + end; + + procedure TfrmPluginParams.FormShow(Sender: TObject); + begin + SettingsChanged(Sender); + end; end. Index: JvPluginWizard.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvPluginWizard.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvPluginWizard.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvPluginWizard.pas 9 Feb 2003 19:00:31 -0000 1.2 *************** *** 45,50 **** interface ! uses Windows, ExptIntf, EditIntf, ! toolsapi; // minimized list ! type --- 45,51 ---- interface ! uses ! Windows, ExptIntf, EditIntf, ! ToolsApi; // minimized list ! type *************** *** 62,70 **** procedure Execute; override; end; ! // TNotifierObject, ! type // TInterfacedObject, TJvPluginProjectCreator = class(TInterfacedObject, IOTACreator, IOTAProjectCreator) // both interfaces needed !!!! public ! PlugType: integer; PlugName: string; function GetFileName: string; --- 63,70 ---- procedure Execute; override; end; ! TJvPluginProjectCreator = class(TInterfacedObject, IOTACreator, IOTAProjectCreator) // both interfaces needed !!!! public ! PlugType: Integer; PlugName: string; function GetFileName: string; *************** *** 75,79 **** procedure NewProjectResource(const Project: IOTAProject); function NewProjectSource(const ProjectName: string): IOTAFile; - function GetCreatorType: string; function GetExisting: Boolean; --- 75,78 ---- *************** *** 83,94 **** end; - type {$IFDEF COMPILER3} TSxPluginModuleCreator = class(TIModuleCreator) ! {$ELSE} TSxPluginModuleCreator = class(TIModuleCreatorEx) // found in editintf.pas ! {$ENDIF} public ! PlugType: integer; PlugName: string; constructor Create; --- 82,92 ---- end; {$IFDEF COMPILER3} TSxPluginModuleCreator = class(TIModuleCreator) ! {$ELSE} TSxPluginModuleCreator = class(TIModuleCreatorEx) // found in editintf.pas ! {$ENDIF} public ! PlugType: Integer; PlugName: string; constructor Create; *************** *** 109,116 **** // from http://www.gexperts.org/opentools/GXModuleCreator.pas - type TJvOTAFile = class(TInterfacedObject, IOTAFile) private ! fSource: string; public constructor Create(const Source: string); --- 107,113 ---- // from http://www.gexperts.org/opentools/GXModuleCreator.pas TJvOTAFile = class(TInterfacedObject, IOTAFile) private ! FSource: string; public constructor Create(const Source: string); *************** *** 123,127 **** {$R JvPluginWiz.res} ! uses JvPlugin, JvPluginParams, ToolIntf, {$IFDEF COMPILER6_UP} --- 120,124 ---- {$R JvPluginWiz.res} ! uses ToolIntf, {$IFDEF COMPILER6_UP} *************** *** 130,143 **** DsgnIntf, {$ENDIF COMPILER6_UP} ! Controls, Sysutils; ! // Dialogs, Sysutils; ! // ################################### ! // ###### TJvPluginWizard ! // ################################### function TJvPluginWizard.GetIDString: string; begin ! Result := 'JEDI Plugin Wizard'; end; --- 127,141 ---- DsgnIntf, {$ENDIF COMPILER6_UP} ! Controls, SysUtils, ! JvPlugin, JvPluginParams; ! const ! cJediPuginWizard = 'JEDI Plugin Wizard'; ! cPlgDir = '\plg'; ! cPluginDir = '\Plugin'; function TJvPluginWizard.GetIDString: string; begin ! Result := cJediPuginWizard; end; *************** *** 154,163 **** function TJvPluginWizard.GetMenuText: string; begin ! Result := 'JEDI Plugin Wizard'; end; function TJvPluginWizard.GetName: string; begin ! Result := 'JEDI Plugin Wizard'; end; --- 152,161 ---- function TJvPluginWizard.GetMenuText: string; begin ! Result := cJediPuginWizard; end; function TJvPluginWizard.GetName: string; begin ! Result := cJediPuginWizard; end; *************** *** 179,183 **** function TJvPluginWizard.GetGlyph: HICON; begin ! Result := LoadIcon(hInstance, 'JvPLUGINWIZ'); end; --- 177,181 ---- function TJvPluginWizard.GetGlyph: HICON; begin ! Result := LoadIcon(HInstance, 'JvPLUGINWIZ'); end; *************** *** 188,194 **** begin with TfrmPluginParams.Create(nil) do - begin try ! if ShowModal = mrOK then begin if Assigned(BorlandIDEServices) and --- 186,191 ---- begin with TfrmPluginParams.Create(nil) do try ! if ShowModal = mrOk then begin if Assigned(BorlandIDEServices) and *************** *** 196,203 **** begin ProjectCreator := TJvPluginProjectCreator.Create; ! ! ProjectCreator.PlugType := radPluginType.ItemIndex; ! ProjectCreator.PlugName := ediPluginName.Text; ! ModuleServices.CreateModule(ProjectCreator); end; --- 193,198 ---- begin ProjectCreator := TJvPluginProjectCreator.Create; ! ProjectCreator.PlugType := 1 - Ord(rbPackage.Checked); // radPluginType.ItemIndex; ! ProjectCreator.PlugName := Trim(edName.Text); ModuleServices.CreateModule(ProjectCreator); end; *************** *** 206,216 **** Free; end; - end; end; - // ################################### - // ###### TJvPluginProjectCreator - // ################################### - // left empty this makes problems !! --- 201,206 ---- *************** *** 218,224 **** begin if PlugType = 0 then ! Result := GetCurrentDir + '\plg' + PlugName + '.dpr' else ! Result := GetCurrentDir + '\plg' + PlugName + '.dpk'; end; --- 208,214 ---- begin if PlugType = 0 then ! Result := GetCurrentDir + cPlgDir + PlugName + '.dpr' else ! Result := GetCurrentDir + cPlgDir + PlugName + '.dpk'; end; *************** *** 230,234 **** function TJvPluginProjectCreator.GetShowSource: Boolean; begin ! result := True; end; --- 220,224 ---- function TJvPluginProjectCreator.GetShowSource: Boolean; begin ! Result := True; end; *************** *** 238,250 **** begin ModuleCreator := TSxPluginModuleCreator.Create; - ModuleCreator.PlugType := PlugType; ModuleCreator.PlugName := PlugName; - if PlugType = 0 then ! ToolServices.ModuleCreate(ModuleCreator, [cmAddToProject, cmMainForm, cmMarkModified, cmShowSource, cmShowForm, cmUnNamed]) else ! ToolServices.ModuleCreate(ModuleCreator, [cmAddToProject, cmMainForm, cmMarkModified, cmShowSource, cmShowForm, cmUnNamed]); ! ModuleCreator.Free; end; --- 228,239 ---- begin ModuleCreator := TSxPluginModuleCreator.Create; ModuleCreator.PlugType := PlugType; ModuleCreator.PlugName := PlugName; if PlugType = 0 then ! ToolServices.ModuleCreate(ModuleCreator, ! [cmAddToProject, cmMainForm, cmMarkModified, cmShowSource, cmShowForm, cmUnNamed]) else ! ToolServices.ModuleCreate(ModuleCreator, ! [cmAddToProject, cmMainForm, cmMarkModified, cmShowSource, cmShowForm, cmUnNamed]); ModuleCreator.Free; end; *************** *** 252,256 **** function TJvPluginProjectCreator.NewOptionSource(const ProjectName: string): IOTAFile; begin ! result := nil; end; --- 241,245 ---- function TJvPluginProjectCreator.NewOptionSource(const ProjectName: string): IOTAFile; begin ! Result := nil; end; *************** *** 261,268 **** function TJvPluginProjectCreator.NewProjectSource(const ProjectName: string): IOTAFile; var ! s: string; begin if PlugType = 0 then // DLL-Library ! s := 'library ' + ProjectName + ';' + #13#10 + #13#10 + 'uses' + #13#10 + --- 250,257 ---- function TJvPluginProjectCreator.NewProjectSource(const ProjectName: string): IOTAFile; var ! S: string; begin if PlugType = 0 then // DLL-Library ! S := 'library ' + ProjectName + ';' + #13#10 + #13#10 + 'uses' + #13#10 + *************** *** 275,311 **** 'end.' else // Package-Library ! s := 'package ' + ProjectName + ';' + #13#10 + #13#10 + '{$DESCRIPTION ''JEDI Plugin Package''}' + #13#10 + '{$RUNONLY}' + #13#10 + '{$IMPLICITBUILD ON}' + #13#10 + #13#10 + 'requires' + #13#10 + ! {$IFDEF COMPILER5} ' vcl50,' + #13#10 + ' JVCL200_R50;' + ! {$ENDIF COMPILER5} {$IFDEF COMPILER6} ' vcl,' + #13#10 + ' JVCL200_R60;' + ! {$ENDIF COMPILER6} {$IFDEF COMPILER7} ' vcl,' + #13#10 + ' JVCL200_R70;' + ! {$ENDIF COMPILER7} #13#10 + #13#10 + 'end.'; ! result := TJvOTAFile.Create(s); end; - // ###### IOTACreator Interface - function TJvPluginProjectCreator.GetCreatorType: string; begin if PlugType = 0 then ! result := sLibrary else ! result := sPackage; end; function TJvPluginProjectCreator.GetExisting: Boolean; begin ! Result := false; end; --- 264,298 ---- 'end.' else // Package-Library ! S := 'package ' + ProjectName + ';' + #13#10 + #13#10 + '{$DESCRIPTION ''JEDI Plugin Package''}' + #13#10 + '{$RUNONLY}' + #13#10 + '{$IMPLICITBUILD ON}' + #13#10 + #13#10 + 'requires' + #13#10 + ! {$IFDEF COMPILER5} ' vcl50,' + #13#10 + ' JVCL200_R50;' + ! {$ENDIF COMPILER5} {$IFDEF COMPILER6} ' vcl,' + #13#10 + ' JVCL200_R60;' + ! {$ENDIF COMPILER6} {$IFDEF COMPILER7} ' vcl,' + #13#10 + ' JVCL200_R70;' + ! {$ENDIF COMPILER7} #13#10 + #13#10 + 'end.'; ! Result := TJvOTAFile.Create(S); end; function TJvPluginProjectCreator.GetCreatorType: string; begin if PlugType = 0 then ! Result := sLibrary else ! Result := sPackage; end; function TJvPluginProjectCreator.GetExisting: Boolean; begin ! Result := False; end; *************** *** 322,332 **** IModule: IOTAModule; IProjectGroup: IOTAProjectGroup; ! i: Integer; begin Result := nil; IModuleServices := BorlandIDEServices as IOTAModuleServices; ! for i := 0 to IModuleServices.ModuleCount - 1 do begin ! IModule := IModuleServices.Modules[i]; if IModule.QueryInterface(IOTAProjectGroup, IProjectGroup) = S_OK then begin --- 309,319 ---- IModule: IOTAModule; IProjectGroup: IOTAProjectGroup; ! I: Integer; begin Result := nil; IModuleServices := BorlandIDEServices as IOTAModuleServices; ! for I := 0 to IModuleServices.ModuleCount - 1 do begin ! IModule := IModuleServices.Modules[I]; if IModule.QueryInterface(IOTAProjectGroup, IProjectGroup) = S_OK then begin *************** *** 339,354 **** function TJvPluginProjectCreator.GetOwner: IOTAModule; begin ! result := GetCurrentProjectGroup; // nil end; function TJvPluginProjectCreator.GetUnnamed: Boolean; begin ! result := True; end; - // ################################### - // ###### TSxPluginModuleCreator - // ################################### - constructor TSxPluginModuleCreator.Create; begin --- 326,337 ---- function TJvPluginProjectCreator.GetOwner: IOTAModule; begin ! Result := GetCurrentProjectGroup; // nil end; function TJvPluginProjectCreator.GetUnnamed: Boolean; begin ! Result := True; end; constructor TSxPluginModuleCreator.Create; begin *************** *** 358,362 **** function TSxPluginModuleCreator.Existing: Boolean; begin ! result := false; end; --- 341,345 ---- function TSxPluginModuleCreator.Existing: Boolean; begin ! Result := False; end; *************** *** 369,373 **** begin // Result := ''; ! Result := GetCurrentDir + '\Plugin' + PlugName + '.pas' end; --- 352,356 ---- begin // Result := ''; ! Result := GetCurrentDir + cPluginDir + PlugName + '.pas' end; *************** *** 383,387 **** {$IFNDEF COMPILER3} - function TSxPluginModuleCreator.GetIntfName: string; begin --- 366,369 ---- *************** *** 391,400 **** function TSxPluginModuleCreator.NewIntfSource(const UnitIdent, Form, Ancestor: string): string; begin ! result := ''; end; {$ENDIF} {$IFNDEF COMPILER3} - function TSxPluginModuleCreator.NewModuleSource(const UnitIdent, Form, Ancestor: string): string; var --- 373,381 ---- function TSxPluginModuleCreator.NewIntfSource(const UnitIdent, Form, Ancestor: string): string; begin ! Result := ''; end; {$ENDIF} {$IFNDEF COMPILER3} function TSxPluginModuleCreator.NewModuleSource(const UnitIdent, Form, Ancestor: string): string; var *************** *** 402,407 **** begin TypeName := Form; ! {$ELSE} ! function TSxPluginModuleCreator.NewModuleSource(UnitIdent, FormIdent, AncestorIdent: string): string; var --- 383,387 ---- begin TypeName := Form; ! {$ELSE} function TSxPluginModuleCreator.NewModuleSource(UnitIdent, FormIdent, AncestorIdent: string): string; var *************** *** 411,419 **** TypeName := FormIdent; Ancestor := AncestorIdent; ! {$ENDIF} //TypeName := PlugName; ! result := 'unit ' + UnitIdent + ';' + #13#10 + #13#10 + 'interface' + #13#10 + #13#10 + --- 391,399 ---- TypeName := FormIdent; Ancestor := AncestorIdent; ! {$ENDIF} //TypeName := PlugName; ! Result := 'unit ' + UnitIdent + ';' + #13#10 + #13#10 + 'interface' + #13#10 + #13#10 + *************** *** 436,442 **** ' end;' + #13#10 + #13#10 + ! 'function RegisterPlugin : T' + TypeName + '; stdcall;' + #13#10 + ! #13#10 + 'implementation' + #13#10 + #13#10 + --- 416,425 ---- ' end;' + #13#10 + #13#10 + ! 'function RegisterPlugin : T' + TypeName + '; stdcall;' + #13#10 + #13#10; ! if PlugType <> 0 then ! Result := Result + 'exports RegisterPlugin;' + #13#10 + #13#10; ! ! Result := Result + 'implementation' + #13#10 + #13#10 + *************** *** 459,485 **** end; ! // ################################### ! // ###### TJvOTAFile - from Stefaan Lesage ! // ################################### constructor TJvOTAFile.Create(const Source: string); begin ! fSource := Source; end; function TJvOTAFile.GetAge: TDateTime; begin ! result := -1; // new end; function TJvOTAFile.GetSource: string; begin ! result := fSource; end; - // ################################### - // ###### registration... - // ################################### - procedure RegisterContainerModule; begin --- 442,462 ---- end; ! // TJvOTAFile - from Stefaan Lesage constructor TJvOTAFile.Create(const Source: string); begin ! FSource := Source; end; function TJvOTAFile.GetAge: TDateTime; begin ! Result := -1; // new end; function TJvOTAFile.GetSource: string; begin ! Result := FSource; end; procedure RegisterContainerModule; begin *************** *** 489,494 **** initialization RegisterContainerModule; - - finalization end. --- 466,469 ---- Index: JvPopupMemo.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvPopupMemo.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvPopupMemo.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvPopupMemo.pas 9 Feb 2003 19:00:32 -0000 1.2 *************** *** 32,54 **** uses ! Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, JVCLVer; type TJvPopupMemo = class(TMemo) private ! { Private declarations } FDesigntimeHeight: Integer; FFocusedHeight: Integer; FMaximumHeight: Integer; FCanvas: TControlCanvas; ! FAboutJVCL: TJVCLAboutInfo; ! ! procedure CMTextChanged(var msg: TMessage); message CM_TEXTCHANGED; procedure SetFocusedHeight(const Value: Integer); procedure SetMaximumHeight(const Value: Integer); procedure UpdateHeight; ! procedure ChangeScrollbar(value: TScrollStyle); protected - { Protected declarations } procedure DoEnter; override; procedure DoExit; override; --- 32,52 ---- uses ! Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ! JVCLVer; type TJvPopupMemo = class(TMemo) private ! FAboutJVCL: TJVCLAboutInfo; FDesigntimeHeight: Integer; FFocusedHeight: Integer; FMaximumHeight: Integer; FCanvas: TControlCanvas; ! procedure CMTextChanged(var Msg: TMessage); message CM_TEXTCHANGED; procedure SetFocusedHeight(const Value: Integer); procedure SetMaximumHeight(const Value: Integer); procedure UpdateHeight; ! procedure ChangeScrollbar(Value: TScrollStyle); protected procedure DoEnter; override; procedure DoExit; override; *************** *** 57,66 **** property Canvas: TControlCanvas read FCanvas; public ! { Public declarations } ! constructor Create(aOwner: TComponent); override; destructor Destroy; override; property FocusedHeight: Integer read FFocusedHeight write SetFocusedHeight; published - { Published declarations } property AboutJVCL: TJVCLAboutInfo read FAboutJVCL write FAboutJVCL stored False; property MaximumHeight: Integer read FMaximumHeight write SetMaximumHeight; --- 55,62 ---- property Canvas: TControlCanvas read FCanvas; public ! constructor Create(AOwner: TComponent); override; destructor Destroy; override; property FocusedHeight: Integer read FFocusedHeight write SetFocusedHeight; published property AboutJVCL: TJVCLAboutInfo read FAboutJVCL write FAboutJVCL stored False; property MaximumHeight: Integer read FMaximumHeight write SetMaximumHeight; *************** *** 69,81 **** implementation ! { TJvPopupMemo } procedure TJvPopupMemo.AdjustHeight; const ! alignflags: array[TAlignment] of DWORD = ! (DT_LEFT, DT_CENTER, DT_RIGHT); var ! oldrect, newrect: TRect; ! newheight: Integer; S: string; begin --- 65,90 ---- implementation ! constructor TJvPopupMemo.Create(AOwner: TComponent); ! begin ! inherited Create(AOwner); ! FFocusedHeight := Height; ! FMaximumHeight := 5 * Height; ! FCanvas := TControlCanvas.Create; ! FCanvas.Control := Self; ! end; ! ! destructor TJvPopupMemo.Destroy; ! begin ! FCanvas.Free; ! inherited Destroy; ! end; procedure TJvPopupMemo.AdjustHeight; const ! AlignFlags: array [TAlignment] of DWORD = ! (DT_LEFT, DT_CENTER, DT_RIGHT); var ! OldRect, NewRect: TRect; ! NewHeight: Integer; S: string; begin *************** *** 83,110 **** Exit; ! Perform(EM_GETRECT, 0, lparam(@oldrect)); S := Text; { HACK ALERT! DrawText discards a trailing linebreak for measurement, so if ! the user hits return in the control and the new line would require a ! larger memo we do not get the correct value back. To fix that we add a blank just for the measurement if the last character is a linefeed. } if (Length(S) > 0) and (S[Length(S)] = #10) then S := S + ' '; Canvas.Font := Font; ! newrect := oldrect; ! DrawText(Canvas.Handle, Pchar(S), Length(S), newrect, DT_CALCRECT or DT_EDITCONTROL or DT_WORDBREAK or DT_NOPREFIX or DT_EXPANDTABS or ! alignflags[Alignment]); ! if oldrect.bottom <> newrect.bottom then begin ! newHeight := Height - (oldrect.bottom - oldrect.top) + ! (newrect.bottom - newrect.top); ! if newHeight > MaximumHeight then ChangeScrollbar(ssVertical) else ChangeScrollbar(ssNone); ! FocusedHeight := newHeight; end; end; --- 92,119 ---- Exit; ! Perform(EM_GETRECT, 0, lparam(@OldRect)); S := Text; { HACK ALERT! DrawText discards a trailing linebreak for measurement, so if ! the user hits return in the control and the new Line would require a ! larger memo we do not get the correct Value back. To fix that we add a blank just for the measurement if the last character is a linefeed. } if (Length(S) > 0) and (S[Length(S)] = #10) then S := S + ' '; Canvas.Font := Font; ! NewRect := OldRect; ! DrawText(Canvas.Handle, Pchar(S), Length(S), NewRect, DT_CALCRECT or DT_EDITCONTROL or DT_WORDBREAK or DT_NOPREFIX or DT_EXPANDTABS or ! AlignFlags[Alignment]); ! if OldRect.Bottom <> NewRect.Bottom then begin ! NewHeight := Height - (OldRect.Bottom - OldRect.Top) + ! (NewRect.Bottom - NewRect.Top); ! if NewHeight > MaximumHeight then ChangeScrollbar(ssVertical) else ChangeScrollbar(ssNone); ! FocusedHeight := NewHeight; end; end; *************** *** 113,135 **** begin AdjustHeight; ! inherited; end; ! procedure TJvPopupMemo.ChangeScrollbar(value: TScrollStyle); var ! oldpos: Integer; begin ! if Scrollbars <> value then begin { Changing the scrollbar recreates the window and looses the caret position! } ! oldpos := SelStart; ! Scrollbars := value; ! SelStart := oldpos; Perform(EM_SCROLLCARET, 0, 0); end; end; ! procedure TJvPopupMemo.CMTextChanged(var msg: TMessage); begin AdjustHeight; --- 122,144 ---- begin AdjustHeight; ! inherited Change; end; ! procedure TJvPopupMemo.ChangeScrollbar(Value: TScrollStyle); var ! OldPos: Integer; begin ! if ScrollBars <> Value then begin { Changing the scrollbar recreates the window and looses the caret position! } ! OldPos := SelStart; ! ScrollBars := Value; ! SelStart := OldPos; Perform(EM_SCROLLCARET, 0, 0); end; end; ! procedure TJvPopupMemo.CMTextChanged(var Msg: TMessage); begin AdjustHeight; *************** *** 137,158 **** end; - constructor TJvPopupMemo.Create(aOwner: TComponent); - begin - inherited; - FFocusedHeight := Height; - FMaximumHeight := 5 * Height; - FCanvas := TControlCanvas.Create; - FCanvas.Control := Self; - end; - - destructor TJvPopupMemo.Destroy; - begin - FCanvas.Free; - inherited; - end; - procedure TJvPopupMemo.DoEnter; begin ! inherited; FDesigntimeHeight := Height; UpdateHeight; --- 146,152 ---- end; procedure TJvPopupMemo.DoEnter; begin ! inherited DoEnter; FDesigntimeHeight := Height; UpdateHeight; *************** *** 162,166 **** procedure TJvPopupMemo.DoExit; begin ! inherited; Height := FDesigntimeHeight; end; --- 156,160 ---- procedure TJvPopupMemo.DoExit; begin ! inherited DoExit; Height := FDesigntimeHeight; end; *************** *** 173,177 **** FFocusedHeight := MaximumHeight else ! FFocusedHeight := value; if Focused then UpdateHeight; --- 167,171 ---- FFocusedHeight := MaximumHeight else ! FFocusedHeight := Value; if Focused then UpdateHeight; *************** *** 191,204 **** procedure TJvPopupMemo.UpdateHeight; var ! line: Integer; begin if HandleAllocated and Focused then begin Height := FocusedHeight; ! if Scrollbars = ssNone then begin ! line := Perform(EM_GETFIRSTVISIBLELINE, 0, 0); ! if line > 0 then ! Perform(EM_LINESCROLL, 0, -line); end; end; --- 185,198 ---- procedure TJvPopupMemo.UpdateHeight; var ! Line: Integer; begin if HandleAllocated and Focused then begin Height := FocusedHeight; ! if ScrollBars = ssNone then begin ! Line := Perform(EM_GETFIRSTVISIBLELINE, 0, 0); ! if Line > 0 then ! Perform(EM_LINESCROLL, 0, -Line); end; end; *************** *** 206,207 **** --- 200,202 ---- end. + Index: JvPresrDsn.dfm =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvPresrDsn.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvPresrDsn.dfm 9 Jan 2003 13:36:08 -0000 1.1 --- JvPresrDsn.dfm 9 Feb 2003 19:00:32 -0000 1.2 *************** *** 2,8 **** Left = 200 Top = 111 ! BorderStyle = bsDialog Caption = 'Form Storage Designer' ! ClientHeight = 319 ClientWidth = 352 Color = clBtnFace --- 2,9 ---- Left = 200 Top = 111 ! BorderIcons = [biSystemMenu] ! BorderStyle = bsSingle Caption = 'Form Storage Designer' ! ClientHeight = 333 ClientWidth = 352 Color = clBtnFace *************** *** 43,54 **** object Bevel1: TBevel Left = 4 ! Top = 49 Width = 344 ! Height = 236 Shape = bsFrame end object Label30: TLabel ! Left = 12 ! Top = 53 Width = 82 Height = 13 --- 44,55 ---- object Bevel1: TBevel Left = 4 ! Top = 54 Width = 344 ! Height = 243 Shape = bsFrame end object Label30: TLabel ! Left = 16 ! Top = 61 Width = 82 Height = 13 *************** *** 64,68 **** object Label31: TLabel Left = 224 ! Top = 53 Width = 70 Height = 13 --- 65,69 ---- object Label31: TLabel Left = 224 ! Top = 61 Width = 70 Height = 13 *************** *** 77,82 **** end object Label2: TLabel ! Left = 12 ! Top = 169 Width = 111 Height = 13 --- 78,83 ---- end object Label2: TLabel ! Left = 16 ! Top = 177 Width = 111 Height = 13 *************** *** 91,95 **** object UpBtn: TSpeedButton Left = 272 ! Top = 186 Width = 25 Height = 25 --- 92,96 ---- object UpBtn: TSpeedButton Left = 272 ! Top = 194 Width = 25 Height = 25 *************** *** 107,111 **** object DownBtn: TSpeedButton Left = 305 ! Top = 186 Width = 25 Height = 25 --- 108,112 ---- object DownBtn: TSpeedButton Left = 305 ! Top = 194 Width = 25 Height = 25 *************** *** 127,130 **** --- 128,137 ---- Height = 44 Caption = ' Form Properties ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False TabOrder = 0 object ActiveCtrlBox: TCheckBox *************** *** 134,137 **** --- 141,150 ---- Height = 17 Caption = ' Acti&ve Control' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False TabOrder = 0 OnClick = ListClick *************** *** 144,147 **** --- 157,166 ---- Caption = ' &Form Position' Checked = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False State = cbChecked TabOrder = 1 *************** *** 155,158 **** --- 174,183 ---- Caption = ' &Window State' Checked = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False State = cbChecked TabOrder = 2 *************** *** 162,166 **** object AddButton: TButton Left = 137 ! Top = 102 Width = 77 Height = 25 --- 187,191 ---- object AddButton: TButton Left = 137 ! Top = 110 Width = 77 Height = 25 *************** *** 171,175 **** object DeleteButton: TButton Left = 263 ! Top = 218 Width = 77 Height = 25 --- 196,200 ---- object DeleteButton: TButton Left = 263 ! Top = 226 Width = 77 Height = 25 *************** *** 180,184 **** object ClearButton: TButton Left = 263 ! Top = 248 Width = 77 Height = 25 --- 205,209 ---- object ClearButton: TButton Left = 263 ! Top = 256 Width = 77 Height = 25 *************** *** 188,193 **** end object OkBtn: TButton ! Left = 184 ! Top = 290 Width = 77 Height = 25 --- 213,218 ---- end object OkBtn: TButton ! Left = 176 ! Top = 304 Width = 77 Height = 25 *************** *** 198,203 **** end object CancelBtn: TButton ! Left = 268 ! Top = 290 Width = 77 Height = 25 --- 223,228 ---- end object CancelBtn: TButton ! Left = 264 ! Top = 304 Width = 77 Height = 25 *************** *** 209,213 **** object ComponentsList: TJvTextListBox Left = 16 ! Top = 72 Width = 105 Height = 89 --- 234,238 ---- object ComponentsList: TJvTextListBox Left = 16 ! Top = 80 Width = 105 Height = 89 *************** *** 219,225 **** object PropertiesList: TJvTextListBox Left = 224 ! Top = 72 Width = 113 ! Height = 97 ItemHeight = 13 Sorted = True --- 244,250 ---- object PropertiesList: TJvTextListBox Left = 224 ! Top = 80 Width = 113 ! Height = 89 ItemHeight = 13 Sorted = True *************** *** 229,233 **** object StoredList: TJvTextListBox Left = 16 ! Top = 184 Width = 241 Height = 97 --- 254,258 ---- object StoredList: TJvTextListBox Left = 16 ! Top = 192 Width = 241 Height = 97 Index: JvPresrDsn.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvPresrDsn.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvPresrDsn.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvPresrDsn.pas 9 Feb 2003 19:00:32 -0000 1.2 *************** *** 13,17 **** The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. --- 13,17 ---- The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. *************** *** 31,46 **** uses ! SysUtils, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ! Buttons, ExtCtrls, JvxCtrls, JvPlacemnt, JvProps, Consts, ! {$IFDEF COMPILER6_UP}RTLConsts,DesignIntf, VCLEditors, DesignEditors,{$ELSE}DsgnIntf,{$ENDIF} ! JvVCLUtils; type ! ! {$IFNDEF COMPILER4_UP} IDesigner = TDesigner; ! {$ENDIF} ! ! { TJvFormPropsDlg } TJvFormPropsDlg = class(TForm) --- 31,47 ---- uses ! SysUtils, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ! Buttons, ExtCtrls, Consts, ! {$IFDEF COMPILER6_UP} ! RTLConsts, DesignIntf, VCLEditors, DesignEditors, ! {$ELSE} ! DsgnIntf, ! {$ENDIF} ! JvVCLUtils, JvxCtrls, JvPlacemnt, JvProps; type ! {$IFNDEF COMPILER4_UP} IDesigner = TDesigner; ! {$ENDIF} TJvFormPropsDlg = class(TForm) *************** *** 50,55 **** Label2: TLabel; UpBtn: TSpeedButton; ! DownBtn: TSpeedButton; ! FormBox: TGroupBox; ActiveCtrlBox: TCheckBox; --- 51,55 ---- Label2: TLabel; UpBtn: TSpeedButton; ! DownBtn: TSpeedButton; FormBox: TGroupBox; ActiveCtrlBox: TCheckBox; *************** *** 77,81 **** procedure PropertiesListDblClick(Sender: TObject); private - { Private declarations } FCompOwner: TComponent; FDesigner: IDesigner; --- 77,80 ---- *************** *** 91,100 **** procedure CheckButtons; procedure SetStoredList(AList: TStrings); - public - { Public declarations } end; - { TJvFormStorageEditor } - TJvFormStorageEditor = class(TComponentEditor) procedure ExecuteVerb(Index: Integer); override; --- 90,95 ---- *************** *** 103,108 **** end; - { TJvStoredPropsProperty } - TJvStoredPropsProperty = class(TClassProperty) public --- 98,101 ---- *************** *** 112,116 **** end; - { Show component editor } function ShowStorageDesigner(ACompOwner: TComponent; ADesigner: IDesigner; AStoredList: TStrings; var Options: TPlacementOptions): Boolean; --- 105,108 ---- *************** *** 119,125 **** {$IFDEF WIN32} ! uses Windows, JvBoxProcs, TypInfo, JvxConst; {$ELSE} ! uses WinTypes, WinProcs, JvStr16, JvBoxProcs, TypInfo, JvxConst; {$ENDIF} --- 111,121 ---- {$IFDEF WIN32} ! uses ! Windows, TypInfo, ! JvBoxProcs, JvxConst; {$ELSE} ! uses ! WinTypes, WinProcs, TypInfo, ! JvStr16, JvBoxProcs, JvxConst; {$ENDIF} *************** *** 127,135 **** {$IFDEF WIN32} ! {$D-} {$ENDIF} - { TJvFormStorageEditor } - procedure TJvFormStorageEditor.ExecuteVerb(Index: Integer); var --- 123,129 ---- {$IFDEF WIN32} ! {$D-} {$ENDIF} procedure TJvFormStorageEditor.ExecuteVerb(Index: Integer); var *************** *** 138,142 **** begin Storage := Component as TJvFormStorage; ! if Index = 0 then begin Opt := Storage.Options; if ShowStorageDesigner(TComponent(Storage.Owner), Designer, --- 132,137 ---- begin Storage := Component as TJvFormStorage; ! if Index = 0 then ! begin Opt := Storage.Options; if ShowStorageDesigner(TComponent(Storage.Owner), Designer, *************** *** 144,150 **** begin Storage.Options := Opt; ! {$IFDEF WIN32} Storage.SetNotification; ! {$ENDIF} end; end; --- 139,145 ---- begin Storage.Options := Opt; ! {$IFDEF WIN32} Storage.SetNotification; ! {$ENDIF} end; end; *************** *** 154,159 **** begin case Index of ! 0: Result := srStorageDesigner; ! else Result := ''; end; end; --- 149,156 ---- begin case Index of ! 0: ! Result := srStorageDesigner; ! else ! Result := ''; end; end; *************** *** 164,169 **** end; - { TJvStoredPropsProperty } - function TJvStoredPropsProperty.GetAttributes: TPropertyAttributes; begin --- 161,164 ---- *************** *** 173,178 **** function TJvStoredPropsProperty.GetValue: string; begin ! if TStrings(GetOrdValue).Count > 0 then Result := inherited GetValue ! else Result := ResStr(srNone); end; --- 168,175 ---- function TJvStoredPropsProperty.GetValue: string; begin ! if TStrings(GetOrdValue).Count > 0 then ! Result := inherited GetValue ! else ! Result := ResStr(srNone); end; *************** *** 188,199 **** begin Storage.Options := Opt; ! {$IFDEF WIN32} Storage.SetNotification; ! {$ENDIF} end; end; - { Show component editor } - function ShowStorageDesigner(ACompOwner: TComponent; ADesigner: IDesigner; AStoredList: TStrings; var Options: TPlacementOptions): Boolean; --- 185,194 ---- begin Storage.Options := Opt; ! {$IFDEF WIN32} Storage.SetNotification; ! {$ENDIF} end; end; function ShowStorageDesigner(ACompOwner: TComponent; ADesigner: IDesigner; AStoredList: TStrings; var Options: TPlacementOptions): Boolean; *************** *** 214,223 **** end; Result := ShowModal = mrOk; ! if Result then begin AStoredList.Assign(StoredList.Items); Options := []; ! if ActiveCtrlBox.Checked then Include(Options, fpActiveControl); ! if PositionBox.Checked then Include(Options, fpPosition); ! if StateBox.Checked then Include(Options, fpState); end; finally --- 209,222 ---- end; Result := ShowModal = mrOk; ! if Result then ! begin AStoredList.Assign(StoredList.Items); Options := []; ! if ActiveCtrlBox.Checked then ! Include(Options, fpActiveControl); ! if PositionBox.Checked then ! Include(Options, fpPosition); ! if StateBox.Checked then ! Include(Options, fpState); end; finally *************** *** 226,231 **** end; - { TJvFormPropsDlg } - procedure TJvFormPropsDlg.ListToIndex(List: TCustomListBox; Idx: Integer); --- 225,228 ---- *************** *** 240,246 **** if Idx < List.Items.Count then SetItemIndex(Idx) ! else if Idx - 1 < List.Items.Count then SetItemIndex(Idx - 1) ! else if (List.Items.Count > 0) then SetItemIndex(0); end; --- 237,245 ---- if Idx < List.Items.Count then SetItemIndex(Idx) ! else ! if Idx - 1 < List.Items.Count then SetItemIndex(Idx - 1) ! else ! if List.Items.Count > 0 then SetItemIndex(0); end; *************** *** 252,256 **** begin IdxProp := PropertiesList.ItemIndex; ! if IdxProp < 0 then IdxProp := 0; if ComponentsList.Items.Count <= 0 then begin --- 251,256 ---- begin IdxProp := PropertiesList.ItemIndex; ! if IdxProp < 0 then ! IdxProp := 0; if ComponentsList.Items.Count <= 0 then begin *************** *** 258,266 **** Exit; end; ! if (ComponentsList.ItemIndex < 0) then ComponentsList.ItemIndex := 0; List := TStrings(ComponentsList.Items.Objects[ComponentsList.ItemIndex]); ! if List.Count > 0 then PropertiesList.Items := List ! else PropertiesList.Clear; ListToIndex(PropertiesList, IdxProp); CheckButtons; --- 258,268 ---- Exit; end; ! if ComponentsList.ItemIndex < 0 then ComponentsList.ItemIndex := 0; List := TStrings(ComponentsList.Items.Objects[ComponentsList.ItemIndex]); ! if List.Count > 0 then ! PropertiesList.Items := List ! else ! PropertiesList.Clear; ListToIndex(PropertiesList, IdxProp); CheckButtons; *************** *** 274,284 **** begin Idx := StoredList.ItemIndex; ! if ParseStoredItem(StoredList.Items[I], CompName, PropName) then begin StoredList.Items.Delete(I); ! if FDesigner <> nil then FDesigner.Modified; ListToIndex(StoredList, Idx); {I := ComponentsList.ItemIndex;} ! if not FindProp(CompName, PropName, IdxComp, IdxProp) then begin ! if IdxComp < 0 then begin StrList := TStringList.Create; try --- 276,290 ---- begin Idx := StoredList.ItemIndex; ! if ParseStoredItem(StoredList.Items[I], CompName, PropName) then ! begin StoredList.Items.Delete(I); ! if FDesigner <> nil then ! FDesigner.Modified; ListToIndex(StoredList, Idx); {I := ComponentsList.ItemIndex;} ! if not FindProp(CompName, PropName, IdxComp, IdxProp) then ! begin ! if IdxComp < 0 then ! begin StrList := TStringList.Create; try *************** *** 291,295 **** end; end ! else begin TStrings(ComponentsList.Items.Objects[IdxComp]).Add(PropName); end; --- 297,302 ---- end; end ! else ! begin TStrings(ComponentsList.Items.Objects[IdxComp]).Add(PropName); end; *************** *** 299,310 **** end; ! function TJvFormPropsDlg.FindProp(const CompName, PropName: string; var IdxComp, ! IdxProp: Integer): Boolean; begin Result := False; IdxComp := ComponentsList.Items.IndexOf(CompName); ! if IdxComp >= 0 then begin IdxProp := TStrings(ComponentsList.Items.Objects[IdxComp]).IndexOf(PropName); ! if IdxProp >= 0 then Result := True; end; end; --- 306,319 ---- end; ! function TJvFormPropsDlg.FindProp(const CompName, PropName: string; ! var IdxComp, IdxProp: Integer): Boolean; begin Result := False; IdxComp := ComponentsList.Items.IndexOf(CompName); ! if IdxComp >= 0 then ! begin IdxProp := TStrings(ComponentsList.Items.Objects[IdxComp]).IndexOf(PropName); ! if IdxProp >= 0 then ! Result := True; end; end; *************** *** 314,318 **** I: Integer; begin ! for I := 0 to ComponentsList.Items.Count - 1 do begin ComponentsList.Items.Objects[I].Free; end; --- 323,328 ---- I: Integer; begin ! for I := 0 to ComponentsList.Items.Count - 1 do ! begin ComponentsList.Items.Objects[I].Free; end; *************** *** 332,340 **** CompName := ComponentsList.Items[IdxComp]; Component := FCompOwner.FindComponent(CompName); ! if Component = nil then Exit; StrList := TStringList(ComponentsList.Items.Objects[IdxComp]); PropName := StrList[IdxProp]; StrList.Delete(IdxProp); ! if StrList.Count = 0 then begin Idx := ComponentsList.ItemIndex; StrList.Free; --- 342,352 ---- CompName := ComponentsList.Items[IdxComp]; Component := FCompOwner.FindComponent(CompName); ! if Component = nil then ! Exit; StrList := TStringList(ComponentsList.Items.Objects[IdxComp]); PropName := StrList[IdxProp]; StrList.Delete(IdxProp); ! if StrList.Count = 0 then ! begin Idx := ComponentsList.ItemIndex; StrList.Free; *************** *** 343,349 **** end; StoredList.Items.AddObject(CreateStoredItem(CompName, PropName), Component); ! if FDesigner <> nil then FDesigner.Modified; StoredList.ItemIndex := StoredList.Items.Count - 1; ! if AUpdate then UpdateCurrent; end; --- 355,363 ---- end; StoredList.Items.AddObject(CreateStoredItem(CompName, PropName), Component); ! if FDesigner <> nil then ! FDesigner.Modified; StoredList.ItemIndex := StoredList.Items.Count - 1; ! if AUpdate then ! UpdateCurrent; end; *************** *** 365,372 **** begin ClearLists; ! if FCompOwner <> nil then begin ! for I := 0 to FCompOwner.ComponentCount - 1 do begin C := FCompOwner.Components[I]; ! if (C is TJvFormPlacement) or (C.Name = '') then Continue; List := TJvPropInfoList.Create(C, tkProperties); try --- 379,389 ---- begin ClearLists; ! if FCompOwner <> nil then ! begin ! for I := 0 to FCompOwner.ComponentCount - 1 do ! begin C := FCompOwner.Components[I]; ! if (C is TJvFormPlacement) or (C.Name = '') then ! Continue; List := TJvPropInfoList.Create(C, tkProperties); try *************** *** 385,390 **** end; end; ! if StoredProps <> nil then begin ! for I := 0 to StoredProps.Count - 1 do begin if ParseStoredItem(StoredProps[I], CompName, PropName) then CheckAddItem(CompName, PropName); --- 402,409 ---- end; end; ! if StoredProps <> nil then ! begin ! for I := 0 to StoredProps.Count - 1 do ! begin if ParseStoredItem(StoredProps[I], CompName, PropName) then CheckAddItem(CompName, PropName); *************** *** 393,397 **** end; end ! else StoredList.Items.Clear; UpdateCurrent; end; --- 412,417 ---- end; end ! else ! StoredList.Items.Clear; UpdateCurrent; end; *************** *** 423,428 **** I: Integer; begin ! if PropertiesList.SelCount > 0 then begin ! for I := PropertiesList.Items.Count - 1 downto 0 do begin if PropertiesList.Selected[I] then AddItem(ComponentsList.ItemIndex, I, False); --- 443,450 ---- I: Integer; begin ! if PropertiesList.SelCount > 0 then ! begin ! for I := PropertiesList.Items.Count - 1 downto 0 do ! begin if PropertiesList.Selected[I] then AddItem(ComponentsList.ItemIndex, I, False); *************** *** 430,434 **** UpdateCurrent; end ! else AddItem(ComponentsList.ItemIndex, PropertiesList.ItemIndex, True); CheckButtons; end; --- 452,457 ---- UpdateCurrent; end ! else ! AddItem(ComponentsList.ItemIndex, PropertiesList.ItemIndex, True); CheckButtons; end; *************** *** 436,442 **** procedure TJvFormPropsDlg.ClearButtonClick(Sender: TObject); begin ! if StoredList.Items.Count > 0 then begin SetStoredList(nil); ! if FDesigner <> nil then FDesigner.Modified; end; end; --- 459,467 ---- procedure TJvFormPropsDlg.ClearButtonClick(Sender: TObject); begin ! if StoredList.Items.Count > 0 then ! begin SetStoredList(nil); ! if FDesigner <> nil then ! FDesigner.Modified; end; end; *************** *** 449,454 **** procedure TJvFormPropsDlg.ListClick(Sender: TObject); begin ! if Sender = ComponentsList then UpdateCurrent ! else CheckButtons; end; --- 474,481 ---- procedure TJvFormPropsDlg.ListClick(Sender: TObject); begin ! if Sender = ComponentsList then ! UpdateCurrent ! else ! CheckButtons; end; *************** *** 466,470 **** begin BoxMoveFocusedItem(StoredList, StoredList.ItemIndex - 1); ! if FDesigner <> nil then FDesigner.Modified; CheckButtons; end; --- 493,498 ---- begin BoxMoveFocusedItem(StoredList, StoredList.ItemIndex - 1); ! if FDesigner <> nil then ! FDesigner.Modified; CheckButtons; end; *************** *** 473,477 **** begin BoxMoveFocusedItem(StoredList, StoredList.ItemIndex + 1); ! if FDesigner <> nil then FDesigner.Modified; CheckButtons; end; --- 501,506 ---- begin BoxMoveFocusedItem(StoredList, StoredList.ItemIndex + 1); ! if FDesigner <> nil then ! FDesigner.Modified; CheckButtons; end; *************** *** 488,492 **** begin BoxMoveFocusedItem(StoredList, StoredList.ItemAtPos(Point(X, Y), True)); ! if FDesigner <> nil then FDesigner.Modified; CheckButtons; end; --- 517,522 ---- begin BoxMoveFocusedItem(StoredList, StoredList.ItemAtPos(Point(X, Y), True)); ! if FDesigner <> nil then ! FDesigner.Modified; CheckButtons; end; *************** *** 494,499 **** procedure TJvFormPropsDlg.PropertiesListDblClick(Sender: TObject); begin ! if AddButton.Enabled then AddButtonClick(nil); end; end. --- 524,531 ---- procedure TJvFormPropsDlg.PropertiesListDblClick(Sender: TObject); begin ! if AddButton.Enabled then ! AddButtonClick(nil); end; end. + Index: JvPrgrss.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvPrgrss.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvPrgrss.pas 9 Jan 2003 13:36:08 -0000 1.1 --- JvPrgrss.pas 9 Feb 2003 19:00:32 -0000 1.2 *************** *** 13,17 **** The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. --- 13,17 ---- The Initial Developers of the Original Code are: Fedor Koshevnikov, Igor Pavluk and Serge Korolev Copyright (c) 1997, 1998 Fedor Koshevnikov, Igor Pavluk and Serge Korolev ! Copyright (c) 2001,2002 SGB Software All Rights Reserved. *************** *** 26,35 **** {$I JVCL.INC} - unit JvPrgrss; interface ! uses SysUtils, Classes, Controls; procedure RegisterProgressControl(AClass: TControlClass; const MaxPropName, --- 26,35 ---- {$I JVCL.INC} unit JvPrgrss; interface ! uses ! SysUtils, Classes, Controls; procedure RegisterProgressControl(AClass: TControlClass; const MaxPropName, *************** *** 46,61 **** {$DEFINE USE_GAUGE} {$IFDEF WIN32} ! {$IFDEF BCB} ! {$DEFINE USE_PROGRESSBAR} ! {$ENDIF} ! {$IFDEF USE_PROGRESSBAR} ! {$UNDEF USE_GAUGE} ! {$ENDIF} {$ENDIF} ! uses TypInfo, {$IFDEF WIN32} {$IFDEF USE_GAUGE} Gauges, {$ENDIF} ComCtrls; ! {$ELSE} Gauges; {$ENDIF} ! ! { TJvProgressList } type --- 46,67 ---- {$DEFINE USE_GAUGE} {$IFDEF WIN32} ! {$IFDEF BCB} ! {$DEFINE USE_PROGRESSBAR} ! {$ENDIF} ! {$IFDEF USE_PROGRESSBAR} ! {$UNDEF USE_GAUGE} ! {$ENDIF} {$ENDIF} ! uses ! TypInfo, ! {$IFDEF WIN32} ! {$IFDEF USE_GAUGE} ! Gauges, ! {$ENDIF} ! ComCtrls; ! {$ELSE} ! Gauges; ! {$ENDIF} type *************** *** 85,94 **** begin inherited Create; ! {$IFDEF WIN32} Add(TProgressBar, 'Max', 'Min', 'Position'); ! {$ENDIF} ! {$IFDEF USE_GAUGE} Add(TGauge, 'MaxValue', 'MinValue', 'Progress'); ! {$ENDIF} end; --- 91,100 ---- begin inherited Create; ! {$IFDEF WIN32} Add(TProgressBar, 'Max', 'Min', 'Position'); ! {$ENDIF} ! {$IFDEF USE_GAUGE} Add(TGauge, 'MaxValue', 'MinValue', 'Progress'); ! {$ENDIF} end; *************** *** 97,101 **** I: Integer; begin ! for I := 0 to Count - 1 do Dispose(PProgressData(Items[I])); inherited Destroy; end; --- 103,108 ---- I: Integer; begin ! for I := 0 to Count - 1 do ! Dispose(PProgressData(Items[I])); inherited Destroy; end; *************** *** 107,111 **** begin New(NewRec); ! with NewRec^ do begin ControlClass := AClass; MaxProperty := MaxPropName; --- 114,119 ---- begin New(NewRec); ! with NewRec^ do ! begin ControlClass := AClass; MaxProperty := MaxPropName; *************** *** 120,126 **** P: PProgressData; begin ! for Result := Count - 1 downto 0 do begin P := PProgressData(Items[Result]); ! if AClass.InheritsFrom(P^.ControlClass) then Exit; end; Result := -1; --- 128,136 ---- P: PProgressData; begin ! for Result := Count - 1 downto 0 do ! begin P := PProgressData(Items[Result]); ! if AClass.InheritsFrom(P^.ControlClass) then ! Exit; end; Result := -1; *************** *** 132,138 **** P: PProgressData; begin ! for I := Count - 1 downto 0 do begin P := PProgressData(Items[I]); ! if P^.ControlClass.InheritsFrom(AClass) then begin Dispose(P); Delete(I); --- 142,150 ---- P: PProgressData; begin ! for I := Count - 1 downto 0 do ! begin P := PProgressData(Items[I]); ! if P^.ControlClass.InheritsFrom(AClass) then ! begin Dispose(P); Delete(I); *************** *** 149,160 **** begin Result := False; ! if (Control <> nil) then begin I := FindClass(TControlClass(Control.ClassType)); ! if I >= 0 then begin case Prop of ! ppMax: PropName := PProgressData(Items[I])^.MaxProperty; ! ppMin: PropName := PProgressData(Items[I])^.MinProperty; ! else {ppProgress} ! PropName := PProgressData(Items[I])^.ProgressProperty; end; PropInfo := GetPropInfo(Control.ClassInfo, PropName); --- 161,176 ---- begin Result := False; ! if Control <> nil then ! begin I := FindClass(TControlClass(Control.ClassType)); ! if I >= 0 then ! begin case Prop of ! ppMax: ! PropName := PProgressData(Items[I])^.MaxProperty; ! ppMin: ! PropName := PProgressData(Items[I])^.MinProperty; ! else {ppProgress} ! PropName := PProgressData(Items[I])^.ProgressProperty; end; PropInfo := GetPropInfo(Control.ClassInfo, PropName); *************** *** 169,178 **** end; ! const ProgressList: TJvProgressList = nil; function GeTJvProgressList: TJvProgressList; begin ! if ProgressList = nil then ProgressList := TJvProgressList.Create; Result := ProgressList; end; --- 185,196 ---- end; ! // (rom) changed to var ! var ProgressList: TJvProgressList = nil; function GeTJvProgressList: TJvProgressList; begin ! if ProgressList = nil then ! ProgressList := TJvProgressList.Create; Result := ProgressList; end; *************** *** 182,190 **** if Control <> nil then Result := GeTJvProgressList.FindClass(TControlClass(Control.ClassType)) >= 0 ! else Result := False; end; ! procedure RegisterProgressControl(AClass: TControlClass; const MaxPropName, ! MinPropName, ProgressPropName: string); begin GeTJvProgressList.Add(AClass, MaxPropName, MinPropName, ProgressPropName); --- 200,209 ---- if Control <> nil then Result := GeTJvProgressList.FindClass(TControlClass(Control.ClassType)) >= 0 ! else ! Result := False; end; ! procedure RegisterProgressControl(AClass: TControlClass; ! const MaxPropName, MinPropName, ProgressPropName: string); begin GeTJvProgressList.Add(AClass, MaxPropName, MinPropName, ProgressPropName); *************** *** 193,197 **** procedure UnRegisterProgressControl(AClass: TControlClass); begin ! if ProgressList <> nil then ProgressList.Remove(AClass); end; --- 212,217 ---- procedure UnRegisterProgressControl(AClass: TControlClass); begin ! if ProgressList <> nil then ! ProgressList.Remove(AClass); end; *************** *** 218,222 **** {$ENDIF} - initialization {$IFDEF WIN32} finalization --- 238,241 ---- *************** *** 225,227 **** --- 244,248 ---- AddExitProc(Finalize); {$ENDIF} + end. + Index: JvPrint.pas =================================================================== RCS file: /cvsroot/jvcl... [truncated message content] |