You can subscribe to this list here.
2001 |
Jan
|
Feb
(32) |
Mar
(98) |
Apr
(26) |
May
(33) |
Jun
(50) |
Jul
(82) |
Aug
(197) |
Sep
(187) |
Oct
(186) |
Nov
(99) |
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(31) |
Feb
(32) |
Mar
(16) |
Apr
(7) |
May
(10) |
Jun
(6) |
Jul
(11) |
Aug
(39) |
Sep
(24) |
Oct
(54) |
Nov
(13) |
Dec
(135) |
2003 |
Jan
(22) |
Feb
(9) |
Mar
(29) |
Apr
(4) |
May
(40) |
Jun
(52) |
Jul
(8) |
Aug
(33) |
Sep
(111) |
Oct
(25) |
Nov
(40) |
Dec
(47) |
2004 |
Jan
(19) |
Feb
(87) |
Mar
(105) |
Apr
(30) |
May
(40) |
Jun
(11) |
Jul
(88) |
Aug
(23) |
Sep
(16) |
Oct
(16) |
Nov
(13) |
Dec
(13) |
2005 |
Jan
(42) |
Feb
(3) |
Mar
(55) |
Apr
(46) |
May
(74) |
Jun
(23) |
Jul
(10) |
Aug
(69) |
Sep
(15) |
Oct
(49) |
Nov
(148) |
Dec
(168) |
2006 |
Jan
(64) |
Feb
(14) |
Mar
(26) |
Apr
(25) |
May
(26) |
Jun
(9) |
Jul
(21) |
Aug
(5) |
Sep
(11) |
Oct
(25) |
Nov
(8) |
Dec
|
2007 |
Jan
(5) |
Feb
(4) |
Mar
(50) |
Apr
(22) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Erik B. <eb...@us...> - 2006-07-05 13:54:48
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/EditorExperts In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv12115/Src/EditorExperts Modified Files: GX_eAlign.pas Log Message: Minor uses clause tweaks Change one default checkbox value Index: GX_eAlign.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/EditorExperts/GX_eAlign.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- GX_eAlign.pas 6 Feb 2006 23:52:35 -0000 1.5 +++ GX_eAlign.pas 5 Jul 2006 13:54:31 -0000 1.6 @@ -7,7 +7,7 @@ interface uses - Classes, Controls, StdCtrls, ExtCtrls, Forms, Menus; + Classes, Controls, StdCtrls, Forms, Menus; type TfmAlign = class(TForm) @@ -27,7 +27,7 @@ {$R *.dfm} uses - SysUtils, Dialogs, + SysUtils, GX_OtaUtils, GX_GenericUtils, GX_ConfigurationInfo, GX_EditorExpert, GX_eSelectionEditorExpert, GX_eAlignOptions; |
From: Erik B. <eb...@us...> - 2006-06-30 07:07:34
|
Update of /cvsroot/gexperts/gexperts/unstable/Src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv31630/Src Modified Files: GX_Configure.dfm GX_Configure.pas Log Message: Add debug ability to dump application window contents/details Index: GX_Configure.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_Configure.pas,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- GX_Configure.pas 16 May 2006 02:06:13 -0000 1.43 +++ GX_Configure.pas 30 Jun 2006 07:07:11 -0000 1.44 @@ -83,6 +83,7 @@ udMinutes: TUpDown; btnEumerateActions: TButton; btnGetFonts: TButton; + btnAppBuilder: TButton; procedure btnEnumerateModulesClick(Sender: TObject); procedure chkEditorKeyTracingClick(Sender: TObject); procedure sbVCLDirClick(Sender: TObject); @@ -118,6 +119,7 @@ procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure btnEumerateActionsClick(Sender: TObject); procedure btnGetFontsClick(Sender: TObject); + procedure btnAppBuilderClick(Sender: TObject); private FOIFont: TFont; FCPFont: TFont; @@ -977,5 +979,10 @@ ShowMessage(Fonts); end; +procedure TfmConfiguration.btnAppBuilderClick(Sender: TObject); +begin + OutputComponentList(GetIdeMainForm, False); +end; + end. Index: GX_Configure.dfm =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_Configure.dfm,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- GX_Configure.dfm 16 May 2006 02:06:13 -0000 1.31 +++ GX_Configure.dfm 30 Jun 2006 07:07:11 -0000 1.32 @@ -613,6 +613,15 @@ TabOrder = 3 OnClick = btnGetFontsClick end + object btnAppBuilder: TButton + Left = 16 + Top = 135 + Width = 137 + Height = 25 + Caption = 'Application Window' + TabOrder = 4 + OnClick = btnAppBuilderClick + end end end end |
From: Erik B. <eb...@us...> - 2006-06-30 07:02:44
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/SetComponentProps In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv29681/Src/SetComponentProps Modified Files: GX_SetComponentPropsConfig.dfm GX_SetComponentPropsConfig.pas Log Message: Fix captions and a comment only Index: GX_SetComponentPropsConfig.dfm =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/SetComponentProps/GX_SetComponentPropsConfig.dfm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- GX_SetComponentPropsConfig.dfm 28 Nov 2005 07:37:16 -0000 1.3 +++ GX_SetComponentPropsConfig.dfm 30 Jun 2006 07:02:42 -0000 1.4 @@ -261,7 +261,7 @@ end object actnAddPropertyType: TAction Category = 'Property Types' - Caption = '&Add' + Caption = '&Add...' OnExecute = actnAddPropertyTypeExecute end object actnDeletePropertyType: TAction @@ -271,7 +271,7 @@ end object actnModifyPropertyType: TAction Category = 'Property Types' - Caption = '&Modify' + Caption = '&Modify...' OnExecute = actnModifyPropertyTypeExecute end object actnDefaultPropertyTypes: TAction Index: GX_SetComponentPropsConfig.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/SetComponentProps/GX_SetComponentPropsConfig.pas,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- GX_SetComponentPropsConfig.pas 17 Apr 2006 06:06:38 -0000 1.6 +++ GX_SetComponentPropsConfig.pas 30 Jun 2006 07:02:42 -0000 1.7 @@ -150,7 +150,7 @@ // Default rules procedure TfmSetComponentPropsConfig.actnDefaultRulesExecute(Sender: TObject); begin - if MessageDlg('This will delete all rules and set them to default values. Are you sure?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) = mrYes then + if MessageDlg('This will delete all rules and set them to default values. Are you sure?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) = mrYes then SetDefaultComponents; end; @@ -173,7 +173,7 @@ ComponentName := Copy(cbxComponents.Text + #$20, 1, Pos(#$20, cbxComponents.Text + #$20) - 1); ComponentProperty := Copy(cbxProperty.Text + #$20, 1, Pos(#$20, cbxProperty.Text + #$20) - 1); - // look for component name and property in grid + // Look for component name/property in the grid RowIndex := GetRowIndex(ComponentName, ComponentProperty); if RowIndex > -1 then |
From: Erik B. <eb...@us...> - 2006-06-30 07:02:02
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Utils In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv29296/Src/Utils Modified Files: GX_OtaUtils.pas Log Message: Add Assert message Index: GX_OtaUtils.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Utils/GX_OtaUtils.pas,v retrieving revision 1.190 retrieving revision 1.191 diff -u -d -r1.190 -r1.191 --- GX_OtaUtils.pas 17 Apr 2006 06:06:38 -0000 1.190 +++ GX_OtaUtils.pas 30 Jun 2006 07:01:57 -0000 1.191 @@ -3851,7 +3851,7 @@ List := TStringList.Create; try Project := GxOtaGetCurrentProject; - Assert(Assigned(Project)); + Assert(Assigned(Project), 'No project open'); List.Add(Format('Project: %s (Personality: %s):', [Project.FileName, GxOtaGetCurrentProjectPersonality])); AddEditorDetails(Project); List.Add(''); |
From: Thomas M. <tw...@us...> - 2006-06-21 11:16:25
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv18638/unstable/Src/Formatter Modified Files: GX_Formatter.pas GX_eCodeFormatter.pas Added Files: Readme-CodeFormatter.txt Log Message: * added a readme describing how to include the code formatter in GExperts * corrected the comment regarding that only one of the experts should be included Index: GX_Formatter.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_Formatter.pas,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- GX_Formatter.pas 20 Jun 2006 11:52:42 -0000 1.26 +++ GX_Formatter.pas 21 Jun 2006 11:16:15 -0000 1.27 @@ -1,5 +1,5 @@ // the code formatter expert as a regular expert -// (only use one of GX_Formatter or GXeCodeFormatter) +// (only use one of GX_Formatter or GX_eCodeFormatter) // Original Author: Thomas Mueller (http://www.dummzeuch.de) unit GX_Formatter; Index: GX_eCodeFormatter.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_eCodeFormatter.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- GX_eCodeFormatter.pas 27 May 2006 17:54:50 -0000 1.2 +++ GX_eCodeFormatter.pas 21 Jun 2006 11:16:15 -0000 1.3 @@ -1,5 +1,5 @@ // the code formatter expert as an editor expert -// (only use one of GX_Formatter or GXeCodeFormatter) +// (only use one of GX_Formatter or GX_eCodeFormatter) // Original Author: Thomas Mueller (http://www.dummzeuch.de) unit GX_eCodeFormatter; --- NEW FILE: Readme-CodeFormatter.txt --- To enable the code formatter in GExperts: * Add all files from this directory and the subdirectories "common" and "engine" to the GExperts project * If you want it to be a regular expert, remove GX_eCodeFormatter from the project * if you want it to be an editor expert, remove GX_Formatter from the project (only one of these units should be included) * recompile and replace your gexperts*.dll with the newly compiled one. * If you included GX_eCodeFormatter, you will find the expert listed on the "Editor Experts" tab. There you can call the configuration dialog and set the keyboard shortcut * if you included GX_Formatter, you will find the expert listed as a regular expert. |
From: Erik B. <eb...@us...> - 2006-06-20 20:03:37
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Utils In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv27417/Src/Utils Modified Files: GX_GxUtils.pas Log Message: Consolidate some code Index: GX_GxUtils.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Utils/GX_GxUtils.pas,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- GX_GxUtils.pas 21 Jan 2006 20:13:10 -0000 1.18 +++ GX_GxUtils.pas 20 Jun 2006 20:03:34 -0000 1.19 @@ -30,7 +30,7 @@ function GxLoadBitmapFromResource(ResName: string; var TargetBitmap: Graphics.TBitmap): Boolean; function GxLoadBitmapFromFile(FileName: string; var TargetBitmap: Graphics.TBitmap): Boolean; -procedure GxContextHelp(const HelpOwner: TWinControl; const ContextId: Integer); +procedure GxContextHelp(const HelpOwner: TWinControl; const ContextID: Integer); procedure GxContextHelpContents(const HelpOwner: TWinControl); // Determine what runtime features are available to be exposed or disabled @@ -47,7 +47,7 @@ uses Windows, SysUtils, Forms, DdeMan, // Needed to test for linking against VCLX package. - GX_VerDepConst, GX_GenericUtils, GX_ConfigurationInfo; + GX_VerDepConst, GX_GenericUtils, GX_ConfigurationInfo, GX_IdeUtils; function BuiltWithPackages: Boolean; var @@ -125,7 +125,7 @@ end; end; -procedure GxContextHelpContents(const HelpOwner: TWinControl); +procedure CallWinHelp(const Command, ContextID: Integer; const HelpOwner: TWinControl); var ControlHandle: HWND; begin @@ -134,37 +134,27 @@ else ControlHandle := 0; - WinHelp(ControlHandle, PChar(ConfigInfo.HelpFile), HELP_CONTENTS, 0); + WinHelp(ControlHandle, PChar(ConfigInfo.HelpFile), Command, ContextID); end; -procedure GxContextHelp(const HelpOwner: TWinControl; const ContextId: Integer); -var - ControlHandle: HWND; +procedure GxContextHelpContents(const HelpOwner: TWinControl); begin - if Assigned(HelpOwner) then - ControlHandle := HelpOwner.Handle - else - ControlHandle := 0; + CallWinHelp(HELP_CONTENTS, 0, HelpOwner); +end; - WinHelp(ControlHandle, PChar(ConfigInfo.HelpFile), HELP_CONTEXT, ContextId); +procedure GxContextHelp(const HelpOwner: TWinControl; const ContextID: Integer); +begin + CallWinHelp(HELP_CONTEXT, ContextID, HelpOwner); end; function ComponentPaletteAvailable: Boolean; begin - {$IFDEF GX_VER160_up} - Result := False; - {$ELSE not GX_VER160_up} - Result := True; - {$ENDIF GX_VER160_up} + Result := not RunningDelphi8OrGreater; end; function MultilineTabDockHostPossible: Boolean; begin - {$IFDEF GX_VER160_up} - Result := False; - {$ELSE not GX_VER160_up} - Result := True; - {$ENDIF GX_VER160_up} + Result := not RunningDelphi8OrGreater; end; function EditorEnhancementsPossible: Boolean; |
From: Thomas M. <tw...@us...> - 2006-06-20 11:53:00
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2196/unstable/Src/Formatter Modified Files: GX_Formatter.pas Log Message: re-added RegisterExpert Index: GX_Formatter.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_Formatter.pas,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- GX_Formatter.pas 27 May 2006 17:54:50 -0000 1.25 +++ GX_Formatter.pas 20 Jun 2006 11:52:42 -0000 1.26 @@ -99,6 +99,6 @@ end; initialization -// RegisterGX_Expert(TGxCodeFormatterExpert); + RegisterGX_Expert(TGxCodeFormatterExpert); end. |
From: Erik B. <eb...@us...> - 2006-06-06 20:09:44
|
Update of /cvsroot/gexperts/gexperts/unstable/Src In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv9931/Src Modified Files: GX_MessageDialog.dfm GX_MessageDialog.pas Log Message: Upper case C++ function results Index: GX_MessageDialog.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_MessageDialog.pas,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- GX_MessageDialog.pas 17 Apr 2006 06:10:26 -0000 1.60 +++ GX_MessageDialog.pas 6 Jun 2006 17:00:00 -0000 1.61 @@ -1022,11 +1022,11 @@ if FunctionResults.Count > 1 then // complex compare to set begin for i := 0 to FunctionResults.Count - 1 do - FunctionText := FunctionText + ' << ' + FunctionResults[i]; + FunctionText := FunctionText + ' << ' + AnsiUpperCase(FunctionResults[i]); Result := Format('(Set<int, mrNone, mrYesToAll>()%s).Contains(%s)', [FunctionText, Condition]); end else // simple: use '... == ...' - Result := Format('%s == %s', [Condition, FunctionResults.CommaText]); + Result := Format('%s == %s', [Condition, AnsiUpperCase(FunctionResults.CommaText)]); end; function BuildSwitchStatement(const Condition: string): string; @@ -1044,7 +1044,7 @@ for i := 0 to FunctionResults.Count - 1 do Result := Result + Format('%s case %s : ;' + sLineBreak + '%s break;' + - sLineBreak, [Indent, FunctionResults[i], Indent]); + sLineBreak, [Indent, AnsiUpperCase(FunctionResults[i]), Indent]); Result := Result + Indent + '}'; end; Index: GX_MessageDialog.dfm =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_MessageDialog.dfm,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- GX_MessageDialog.dfm 16 Apr 2006 20:08:03 -0000 1.22 +++ GX_MessageDialog.dfm 6 Jun 2006 17:00:00 -0000 1.23 @@ -934,8 +934,8 @@ Top = 5 Width = 267 Height = 261 - ActivePage = tabAdvanced - TabIndex = 1 + ActivePage = tabOptions + TabIndex = 0 TabOrder = 1 object tabOptions: TTabSheet Caption = 'Options' |
From: Erik B. <eb...@us...> - 2006-06-02 00:50:42
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Utils In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv11324/Src/Utils Modified Files: GX_GenericUtils.pas Log Message: Try to support more multi-monitor systems with nagative window positions Index: GX_GenericUtils.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Utils/GX_GenericUtils.pas,v retrieving revision 1.149 retrieving revision 1.150 diff -u -d -r1.149 -r1.150 --- GX_GenericUtils.pas 16 May 2006 01:25:15 -0000 1.149 +++ GX_GenericUtils.pas 1 Jun 2006 23:41:44 -0000 1.150 @@ -1679,33 +1679,34 @@ var Monitor: TMonitor; begin - Result.Top := 0; - Result.Left := 0; - Result.Right := Screen.Width; - Result.Bottom := Screen.Height; - if Assigned(Form) then - begin - Monitor := Screen.MonitorFromWindow(Form.Handle, mdNearest); - if Assigned(Monitor) then - Result := Monitor.WorkareaRect; - end - else - SystemParametersInfo(SPI_GETWORKAREA, 0, @Result, 0); + Result.Top := Screen.DesktopTop; + Result.Left := Screen.DesktopLeft; + Result.Right := Screen.DesktopWidth; + Result.Bottom := Screen.DesktopHeight; + + if Assigned(Form) then + begin + Monitor := Screen.MonitorFromWindow(Form.Handle, mdNearest); + if Assigned(Monitor) then + Result := Monitor.WorkareaRect; + end + else + SystemParametersInfo(SPI_GETWORKAREA, 0, @Result, 0); end; procedure EnsureFormVisible(const Form: TCustomForm); var - Rect: TRect; + Rect: TRect; begin - Rect := GetScreenWorkArea(Form); - if (Form.Left + Form.Width > Rect.Right) then - Form.Left := Form.Left - ((Form.Left + Form.Width) - Rect.Right); - if (Form.Top + Form.Height > Rect.Bottom) then - Form.Top := Form.Top - ((Form.Top + Form.Height) - Rect.Bottom); - if Form.Left < 0 then - Form.Left := 0; - if Form.Top < 0 then - Form.Top := 0; + Rect := GetScreenWorkArea(Form); + if (Form.Left + Form.Width > Rect.Right) then + Form.Left := Form.Left - ((Form.Left + Form.Width) - Rect.Right); + if (Form.Top + Form.Height > Rect.Bottom) then + Form.Top := Form.Top - ((Form.Top + Form.Height) - Rect.Bottom); + if Form.Left < Rect.Left then + Form.Left := Rect.Left; + if Form.Top < Rect.Top then + Form.Top := Rect.Top; end; procedure ConvertBitmapToIcon(const Bitmap: Graphics.TBitmap; Icon: TIcon); |
From: Thomas M. <tw...@us...> - 2006-06-01 08:20:00
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv3699/unstable/Src/Formatter Added Files: GX_CodeFormatterExpert.pas Log Message: missing file added --- NEW FILE: GX_CodeFormatterExpert.pas --- // the actual code formatter expert, called either from GX_Formatter or GX_eCodeFormatter // Original Author: Thomas Mueller (http://www.dummzeuch.de) unit GX_CodeFormatterExpert; {$I GX_CondDefine.inc} interface uses SysUtils, GX_ConfigurationInfo, GX_CodeFormatterEngine; type TCodeFormatterExpert = class private FEngine: TCodeFormatterEngine; function ShowDoneDialog(ShowDone: Boolean): boolean; protected public constructor Create; destructor Destroy; override; procedure Configure; procedure Execute; procedure InternalLoadSettings(const ConfigurationKey: string; Settings: TGExpertsSettings); procedure InternalSaveSettings(const ConfigurationKey: string; Settings: TGExpertsSettings); end; implementation uses Classes, ToolsApi, GX_OtaUtils, GX_GenericUtils, GX_CodeFormatterGXConfigWrapper, GX_CodeFormatterTypes, GX_CodeFormatterConfig, GX_CodeFormatterBookmarks, GX_CodeFormatterBreakpoints, GX_CodeFormatterDefaultSettings, GX_CodeFormatterConfigHandler, GX_CodeFormatterDone, GX_CodeFormatterSettings, GX_CodeFormatterSaveList; { TCodeFormatterExpert } procedure TCodeFormatterExpert.Configure; begin TfmCodeFormatterConfig.Execute(FEngine.Settings); end; constructor TCodeFormatterExpert.Create; var Settings: TCodeFormatterEngineSettings; begin inherited Create; Settings := BorlandDefaults; FEngine := TCodeFormatterEngine.Create; FEngine.Settings.Settings := Settings; end; destructor TCodeFormatterExpert.Destroy; begin FreeAndNil(FEngine); inherited; end; procedure TCodeFormatterExpert.Execute; resourcestring str_NoEditor = 'No source editor'; str_UnsupportedFileTypeS = 'Unsupported file type: %s'; str_UnableToGetContentsS = 'Unable to get contents of %s'; var SourceEditor: IOTASourceEditor; FileName: string; FullText: TStringList; Bookmarks: ICodeFormatterSaveList; Breakpoints: ICodeFormatterSaveList; WasBinary: Boolean; i: integer; TempSettings: TCodeFormatterSettings; OrigSettings: TCodeFormatterEngineSettings; FirstLine: string; begin SourceEditor := GxOtaGetCurrentSourceEditor; if not Assigned(SourceEditor) then raise ECodeFormatter.Create(str_NoEditor); FileName := SourceEditor.FileName; if not (IsPascalSourceFile(FileName) or IsDelphiPackage(FileName) or FileMatchesExtension(FileName, '.tpl')) then raise ECodeFormatter.CreateFmt(str_UnsupportedFileTypeS, [ExtractFileName(FileName)]); TempSettings := nil; FullText := TStringList.Create; try if not GxOtaGetFileAsText(Filename, FullText, WasBinary) then raise ECodeFormatter.CreateFmt(str_UnableToGetContentsS, [FileName]); if FullText.Count = 0 then exit; Bookmarks := TBookmarkHandler.Create; Breakpoints := TBreakpointHandler.Create; FirstLine := FullText[0]; if SameText(Copy(FirstLine, 1, 20), '{GXFormatter.config=') then begin FirstLine := Trim(Copy(FirstLine, 21, Length(FirstLine) - 21)); TempSettings := TCodeFormatterSettings.Create; if TCodeFormatterConfigHandler.GetDefaultConfig(FirstLine, TempSettings) then begin OrigSettings := FEngine.Settings.Settings; FEngine.Settings.Settings := TempSettings.Settings; end else FreeAndNil(TempSettings); end; if FEngine.Execute(FullText) then begin GxOtaReplaceEditorText(SourceEditor, FullText.Text); for i := 0 to SourceEditor.EditViewCount - 1 do SourceEditor.EditViews[i].Paint; FEngine.Settings.ShowDoneDialog := ShowDoneDialog(FEngine.Settings.ShowDoneDialog); end; finally FreeAndNil(FullText); if Assigned(TempSettings) then begin FreeAndNil(TempSettings); FEngine.Settings.Settings := OrigSettings; end; end; end; procedure TCodeFormatterExpert.InternalLoadSettings(const ConfigurationKey: string; Settings: TGExpertsSettings); var Reader: IConfigReader; begin Reader := TGxConfigWrapper.Create(Settings, ConfigurationKey); TCodeFormatterConfigHandler.ReadSettings(Reader, FEngine.Settings); end; procedure TCodeFormatterExpert.InternalSaveSettings(const ConfigurationKey: string; Settings: TGExpertsSettings); var Writer: IConfigWriter; begin Writer := TGxConfigWrapper.Create(Settings, ConfigurationKey); TCodeFormatterConfigHandler.WriteSettings(Writer, FEngine.Settings); end; function TCodeFormatterExpert.ShowDoneDialog(ShowDone: Boolean): boolean; var DoneForm: TfmCodeFormatterDone; begin Result := ShowDone; if not Result then exit; DoneForm := TfmCodeFormatterDone.Create(nil); try DoneForm.ShowModal; Result := not DoneForm.chk_DontShowAgain.Checked; finally DoneForm.Free; end; end; end. |
From: Erik B. <eb...@us...> - 2006-05-29 22:13:09
|
Update of /cvsroot/gexperts/gexperts/unstable/Src In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv17322/Src Modified Files: GX_FeedbackWizard.dfm GX_FeedbackWizard.pas Log Message: Fix outdated example text Index: GX_FeedbackWizard.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_FeedbackWizard.pas,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- GX_FeedbackWizard.pas 17 Apr 2006 06:13:41 -0000 1.25 +++ GX_FeedbackWizard.pas 29 May 2006 22:12:56 -0000 1.26 @@ -250,8 +250,8 @@ const TypeExample = ' Some examples of features we do NOT have any plans to ' + - 'implement include method folding, a code formatter, and support for ' + - 'Visual C++, Java, etc.'; + 'implement include method folding, custom painting inside the editor, support for ' + + 'Visual C++ and Java, etc.'; BugDescriptionExample = 'The editor toolbar is shown without the separators when the toolbar ' + 'is aligned to the left or right of the editor window. The ' + Index: GX_FeedbackWizard.dfm =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_FeedbackWizard.dfm,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- GX_FeedbackWizard.dfm 6 Dec 2005 01:43:30 -0000 1.8 +++ GX_FeedbackWizard.dfm 29 May 2006 22:12:56 -0000 1.9 @@ -101,6 +101,7 @@ Top = 0 Width = 5 Height = 287 + Cursor = crHSplit Align = alRight AutoSnap = False Beveled = True @@ -114,6 +115,7 @@ ActivePage = tshInfoHelp Align = alRight MultiLine = True + TabIndex = 0 TabOrder = 0 object tshInfoHelp: TTabSheet Caption = 'Help' @@ -173,6 +175,7 @@ Height = 283 ActivePage = tshType Align = alClient + TabIndex = 0 TabOrder = 0 OnResize = pgeMainResize object tshType: TTabSheet |
From: Thomas M. <tw...@us...> - 2006-05-27 18:15:27
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter/engine In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv4109/unstable/Src/Formatter/engine Modified Files: GX_CodeFormatterEngine.pas Log Message: Added a more intelligent check whether the source actually has been changed which handles the case that either the IDE or the Formatter added or removed a trailing CRLF to/from the file. This prevents changing the IDE buffer if nothing has actually changed. Index: GX_CodeFormatterEngine.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/engine/GX_CodeFormatterEngine.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- GX_CodeFormatterEngine.pas 27 May 2006 17:54:51 -0000 1.5 +++ GX_CodeFormatterEngine.pas 27 May 2006 18:15:24 -0000 1.6 @@ -40,8 +40,7 @@ TCodeFormatterEngine = class(TObject) private FSettings: TCodeFormatterSettings; - FTokens: TOCollection; - function GetLine(var TokenNo: Integer): string; + function GetLine(Tokens: TOCollection; var TokenNo: Integer): string; public constructor Create; destructor Destroy; override; @@ -66,7 +65,6 @@ destructor TCodeFormatterEngine.Destroy; begin FreeAndNil(FSettings); - FreeAndNil(FTokens); inherited; end; @@ -76,24 +74,46 @@ TokenNo: Integer; LB: string; OrigSource: string; + Tokens: TOCollection; + s: string; + OrigLen: integer; + NewLen: integer; begin try OrigSource := SourceCode.Text; - if Assigned(FTokens) then - FTokens.Free; - FTokens := TCodeFormatterParser.Execute(SourceCode, FSettings); - TCodeFormatterFormatter.Execute(FTokens, FSettings); - SourceCode.Clear; - LB := sLineBreak; - if Assigned(FTokens) then begin - TokenNo := 0; - while TokenNo < FTokens.Count do begin - Line := GetLine(TokenNo); - SourceCode.Add(Line); + Tokens := TCodeFormatterParser.Execute(SourceCode, FSettings); + try + TCodeFormatterFormatter.Execute(Tokens, FSettings); + + SourceCode.Clear; + LB := sLineBreak; + if Assigned(Tokens) then begin + TokenNo := 0; + while TokenNo < Tokens.Count do begin + Line := GetLine(Tokens, TokenNo); + SourceCode.Add(Line); + end; end; + finally + Tokens.Free; end; - Result := (OrigSource <> SourceCode.Text + #13#10) and (OrigSource <> SourceCode.Text); + + // this checks for the case that either the formatter or the IDE + // removed or added a CRLF at the end of the file + // checking the length first prevents costly multiple + // comparisons of potentially large strings + s := SourceCode.Text; + OrigLen := Length(OrigSource); + NewLen := Length(s); + if OrigLen = NewLen then + Result := (OrigSource <> s) + else if OrigLen = NewLen + 2 then + Result := (OrigSource <> s + #13#10) + else if OrigLen + 2 = NewLen then + Result := (OrigSource + #13#10 <> s) + else + Result := true; except on E: Exception do begin Result := False; @@ -102,23 +122,23 @@ end; end; -function TCodeFormatterEngine.GetLine(var TokenNo: Integer): string; +function TCodeFormatterEngine.GetLine(Tokens: TOCollection; var TokenNo: Integer): string; var Token: TPascalToken; i: Integer; begin Result := ''; - if not Assigned(FTokens) then + if not Assigned(Tokens) then Exit; - if (TokenNo >= 0) and (TokenNo < FTokens.Count) then begin - Token := FTokens.Items[TokenNo]; + if (TokenNo >= 0) and (TokenNo < Tokens.Count) then begin + Token := Tokens.Items[TokenNo]; repeat Result := Result + Token.GetString; Inc(TokenNo); - if TokenNo >= FTokens.Count then + if TokenNo >= Tokens.Count then break; - Token := TPascalToken(FTokens.Items[TokenNo]); + Token := TPascalToken(Tokens.Items[TokenNo]); until Token.ReservedType = rtLineFeed; end; |
From: Thomas M. <tw...@us...> - 2006-05-27 18:01:38
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter/unittests In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv32143/unstable/Src/Formatter/unittests Modified Files: DelForExTestFiles.pas DelForExTestOldNew.pas Log Message: adapted unit tests to new formatter interface Index: DelForExTestOldNew.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/unittests/DelForExTestOldNew.pas,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- DelForExTestOldNew.pas 9 Dec 2005 16:20:35 -0000 1.22 +++ DelForExTestOldNew.pas 27 May 2006 18:01:28 -0000 1.23 @@ -132,11 +132,18 @@ end; procedure TTestCompareOldNew.CompareOldNew(const _Input, _Expected, _Description: string); +var + st: TStringList; begin - FNewFormatter.Sourcecode := _Input; - Check(FNewFormatter.Execute, 'Error in formatter engine'); - FLastActual := FNewFormatter.Sourcecode; - CheckEquals(_Expected, FLastActual, _Description + ' had unexpected differences') + st := TStringList.Create; + try + st.Text := _Input; + Check(FNewFormatter.Execute(st), 'Error in formatter engine'); + FLastActual := st.Text; + CheckEquals(_Expected, FLastActual, _Description + ' had unexpected differences') + finally + st.Free; + end; end; procedure TTestCompareOldNew.testJustOpeningComment; Index: DelForExTestFiles.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/unittests/DelForExTestFiles.pas,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- DelForExTestFiles.pas 1 May 2006 12:12:41 -0000 1.30 +++ DelForExTestFiles.pas 27 May 2006 18:01:28 -0000 1.31 @@ -127,33 +127,28 @@ Filename: string; InFile: string; ExpectedFile: string; - InString: string; - ExpectedStr: string; - OutString: string; + ExpectedText: TStringList; st: TStringList; begin Filename := 'testfile_' + _Filename + '.pas'; InFile := 'unittests\testcases\input\' + Filename; ExpectedFile := 'unittests\testcases\expected-' + GetResultDir + '\' + Filename; + ExpectedText := nil; st := TStringList.Create; try st.LoadFromFile(InFile); - InString := st.Text; - st.Clear; - st.LoadFromFile(ExpectedFile); - ExpectedStr := st.Text; - FFormatter.Sourcecode := InString; - Check(FFormatter.Execute, 'error in formatter'); - OutString := FFormatter.Sourcecode; + ExpectedText := TStringList.Create; + ExpectedText.LoadFromFile(ExpectedFile); + FFormatter.Execute(st); try - CheckEquals(ExpectedStr, OutString, 'error in output'); + CheckEquals(ExpectedText.Text, st.Text, 'error in output'); except - st.Text := OutString; st.SaveToFile('unittests\testcases\output-' + GetResultDir + '\' + Filename); if not _AllowFaiure then raise; end; finally + ExpectedText.Free; st.Free; end; end; |
From: Thomas M. <tw...@us...> - 2006-05-27 17:55:03
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv29931/unstable/Src/Formatter Modified Files: GX_CodeFormatterConfig.pas GX_Formatter.pas GX_eCodeFormatter.pas Log Message: * moved the formatter expert code to yet another object which is called by the plain expert and the editor expert, so the code isn't duplicated. * added a help string to the editor expert * formatter engine now takes a string list Index: GX_Formatter.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_Formatter.pas,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- GX_Formatter.pas 27 May 2006 14:38:40 -0000 1.24 +++ GX_Formatter.pas 27 May 2006 17:54:50 -0000 1.25 @@ -1,4 +1,5 @@ -// the code formatter expert +// the code formatter expert as a regular expert +// (only use one of GX_Formatter or GXeCodeFormatter) // Original Author: Thomas Mueller (http://www.dummzeuch.de) unit GX_Formatter; @@ -13,31 +14,15 @@ {$ENDIF} SysUtils, Classes, - Dialogs, Menus, - ToolsApi, - GX_OtaUtils, - GX_GenericUtils, GX_Experts, - GX_GExperts, GX_ConfigurationInfo, - GX_CodeFormatterGXConfigWrapper, - GX_CodeFormatterTypes, - GX_CodeFormatterConfig, - GX_CodeFormatterEngine, - GX_CodeFormatterBookmarks, - GX_CodeFormatterBreakpoints, - GX_CodeFormatterDefaultSettings, - GX_CodeFormatterConfigHandler, - GX_CodeFormatterDone, - GX_CodeFormatterSettings, - GX_CodeFormatterSaveList; + GX_CodeFormatterExpert; type - TCodeFormatterExpert = class(TGX_Expert) + TGxCodeFormatterExpert = class(TGX_Expert) private - FFormatter: TCodeFormatterEngine; - procedure ShowDoneDialog(out ShowDone: Boolean); + FExpert: TCodeFormatterExpert; protected procedure InternalLoadSettings(Settings: TGExpertsSettings); override; procedure InternalSaveSettings(Settings: TGExpertsSettings); override; @@ -54,157 +39,66 @@ { TCodeFormatterExpert } -procedure TCodeFormatterExpert.Click(Sender: TObject); -resourcestring - str_NoEditor = 'No source editor'; - str_UnsupportedFileTypeS = 'Unsupported file type: %s'; - str_UnableToGetContentsS = 'Unable to get contents of %s'; -var - SourceEditor: IOTASourceEditor; - FileName: string; - FullText: TStringList; - ShowDone: Boolean; - Bookmarks: ICodeFormatterSaveList; - Breakpoints: ICodeFormatterSaveList; - WasBinary: Boolean; - i: integer; - TempSettings: TCodeFormatterSettings; - OrigSettings: TCodeFormatterEngineSettings; - FirstLine: string; +procedure TGxCodeFormatterExpert.Click(Sender: TObject); begin - SourceEditor := GxOtaGetCurrentSourceEditor; - if not Assigned(SourceEditor) then - raise ECodeFormatter.Create(str_NoEditor); - FileName := SourceEditor.FileName; - if not (IsPascalSourceFile(FileName) or IsDelphiPackage(FileName)) then - raise ECodeFormatter.CreateFmt(str_UnsupportedFileTypeS, [ExtractFileName(FileName)]); - - TempSettings := nil; - FullText := TStringList.Create; - try - if not GxOtaGetFileAsText(Filename, FullText, WasBinary) then - raise ECodeFormatter.CreateFmt(str_UnableToGetContentsS, [FileName]); - if FullText.Count = 0 then - exit; - - Bookmarks := TBookmarkHandler.Create; - Breakpoints := TBreakpointHandler.Create; - - FirstLine := FullText[0]; - if SameText(Copy(FirstLine, 1, 20), '{GXFormatter.config=') then begin - FirstLine := Trim(Copy(FirstLine, 21, Length(FirstLine) - 21)); - TempSettings := TCodeFormatterSettings.Create; - if TCodeFormatterConfigHandler.GetDefaultConfig(FirstLine, TempSettings) then begin - OrigSettings := FFormatter.Settings.Settings; - FFormatter.Settings.Settings := TempSettings.Settings; - end else - FreeAndNil(TempSettings); - end; - - FFormatter.Sourcecode := FullText.Text; - if FFormatter.Execute then begin - if FullText.Text <> FFormatter.Sourcecode then begin - GxOtaReplaceEditorText(SourceEditor, FFormatter.Sourcecode); - for i := 0 to SourceEditor.EditViewCount - 1 do - SourceEditor.EditViews[i].Paint; - end; - if FFormatter.Settings.ShowDoneDialog then begin - ShowDoneDialog(ShowDone); - if Showdone <> FFormatter.Settings.ShowDoneDialog then begin - FFormatter.Settings.ShowDoneDialog := ShowDone; - end; - end; - end; - - finally - FreeAndNil(FullText); - if Assigned(TempSettings) then begin - FreeAndNil(TempSettings); - FFormatter.Settings.Settings := OrigSettings; - end; - end; + FExpert.Execute; end; -procedure TCodeFormatterExpert.Configure; +procedure TGxCodeFormatterExpert.Configure; begin - TfmCodeFormatterConfig.Execute(FFormatter.Settings); + FExpert.Configure; end; -constructor TCodeFormatterExpert.Create; -var - Settings: TCodeFormatterEngineSettings; +constructor TGxCodeFormatterExpert.Create; begin inherited Create; - Settings := BorlandDefaults; - FFormatter := TCodeFormatterEngine.Create; - FFormatter.Settings.Settings := Settings; + FExpert := TCodeFormatterExpert.Create; ShortCut := Menus.ShortCut(Word('F'), [ssCtrl, ssAlt]); end; -destructor TCodeFormatterExpert.Destroy; +destructor TGxCodeFormatterExpert.Destroy; begin - FreeAndNil(FFormatter); + FreeAndNil(FExpert); inherited; end; -function TCodeFormatterExpert.GetActionCaption: string; +function TGxCodeFormatterExpert.GetActionCaption: string; resourcestring SMenuCaption = 'Code &Formatter'; begin Result := SMenuCaption; end; -class function TCodeFormatterExpert.GetName: string; +class function TGxCodeFormatterExpert.GetName: string; begin Result := 'CodeFormatter'; end; -function TCodeFormatterExpert.HasConfigOptions: Boolean; +function TGxCodeFormatterExpert.HasConfigOptions: Boolean; begin Result := True; end; -function TCodeFormatterExpert.HasMenuItem: Boolean; +function TGxCodeFormatterExpert.HasMenuItem: Boolean; begin Result := True; end; -procedure TCodeFormatterExpert.InternalLoadSettings(Settings: TGExpertsSettings); -var - Reader: IConfigReader; +procedure TGxCodeFormatterExpert.InternalLoadSettings(Settings: TGExpertsSettings); begin inherited; - - Reader := TGxConfigWrapper.Create(Settings, ConfigurationKey); - TCodeFormatterConfigHandler.ReadSettings(Reader, FFormatter.Settings); + FExpert.InternalLoadSettings(ConfigurationKey, Settings); end; -procedure TCodeFormatterExpert.InternalSaveSettings(Settings: TGExpertsSettings); -var - Writer: IConfigWriter; +procedure TGxCodeFormatterExpert.InternalSaveSettings(Settings: TGExpertsSettings); begin inherited; - - Writer := TGxConfigWrapper.Create(Settings, ConfigurationKey); - TCodeFormatterConfigHandler.WriteSettings(Writer, FFormatter.Settings); -end; - -procedure TCodeFormatterExpert.ShowDoneDialog(out ShowDone: Boolean); -var - DoneForm: TfmCodeFormatterDone; -begin - DoneForm := TfmCodeFormatterDone.Create(nil); - try - DoneForm.ShowModal; - ShowDone := not DoneForm.chk_DontShowAgain.Checked; - finally - DoneForm.Free; - end; + FExpert.InternalSaveSettings(ConfigurationKey, Settings); end; initialization - RegisterGX_Expert(TCodeFormatterExpert); +// RegisterGX_Expert(TGxCodeFormatterExpert); end. Index: GX_CodeFormatterConfig.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_CodeFormatterConfig.pas,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- GX_CodeFormatterConfig.pas 19 Feb 2006 21:26:49 -0000 1.14 +++ GX_CodeFormatterConfig.pas 27 May 2006 17:54:50 -0000 1.15 @@ -459,20 +459,24 @@ procedure TfmCodeFormatterConfig.ts_PreviewShow(Sender: TObject); var Formatter: TCodeFormatterEngine; + st: TStringList; begin + st := nil; Formatter := TCodeFormatterEngine.Create; try + // this temporary string list is necessary to prevent an infinite loop (whose reason I don't really understand :-( ) + st := TStringList.Create; + st.Assign(m_PreviewAfter.Lines); FormToSettings(Formatter.Settings); - Formatter.Sourcecode := m_PreviewBefore.Lines.Text; - if Formatter.Execute then begin + if Formatter.Execute(st) then begin m_PreviewAfter.Lines.BeginUpdate; - m_PreviewAfter.Lines.Clear; - m_PreviewAfter.Lines.Text := Formatter.Sourcecode; + m_PreviewAfter.Lines.Assign(st); m_PreviewAfter.Lines.EndUpdate; m_PreviewBeforeClick(nil); end; finally Formatter.Free; + st.Free; end; end; Index: GX_eCodeFormatter.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_eCodeFormatter.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- GX_eCodeFormatter.pas 27 May 2006 14:38:40 -0000 1.1 +++ GX_eCodeFormatter.pas 27 May 2006 17:54:50 -0000 1.2 @@ -1,3 +1,6 @@ +// the code formatter expert as an editor expert +// (only use one of GX_Formatter or GXeCodeFormatter) +// Original Author: Thomas Mueller (http://www.dummzeuch.de) unit GX_eCodeFormatter; {$I GX_CondDefine.inc} @@ -11,34 +14,20 @@ {$ENDIF} SysUtils, Classes, - Dialogs, Menus, - ToolsAPI, - GX_OtaUtils, - GX_GenericUtils, GX_EditorExpert, GX_ConfigurationInfo, - GX_CodeFormatterGXConfigWrapper, - GX_CodeFormatterTypes, - GX_CodeFormatterConfig, - GX_CodeFormatterEngine, - GX_CodeFormatterBookmarks, - GX_CodeFormatterBreakpoints, - GX_CodeFormatterDefaultSettings, - GX_CodeFormatterConfigHandler, - GX_CodeFormatterDone, - GX_CodeFormatterSettings, - GX_CodeFormatterSaveList; + GX_CodeFormatterExpert; type TeCodeFormatterExpert = class(TEditorExpert) private - FFormatter: TCodeFormatterEngine; - procedure ShowDoneDialog(out ShowDone: Boolean); + FExpert: TCodeFormatterExpert; protected function GetDisplayName: string; override; class function GetName: string; override; function GetBitmapFileName: string; override; + procedure GetHelpString(List: TStrings); override; procedure InternalLoadSettings(Settings: TGExpertsSettings); override; procedure InternalSaveSettings(Settings: TGExpertsSettings); override; public @@ -53,97 +42,27 @@ procedure TeCodeFormatterExpert.Configure; begin - TfmCodeFormatterConfig.Execute(FFormatter.Settings); + FExpert.Configure; end; constructor TeCodeFormatterExpert.Create; -var - Settings: TCodeFormatterEngineSettings; begin inherited Create; - Settings := BorlandDefaults; - FFormatter := TCodeFormatterEngine.Create; - FFormatter.Settings.Settings := Settings; + FExpert := TCodeFormatterExpert.Create; ShortCut := Menus.ShortCut(Word('F'), [ssCtrl, ssAlt]); end; destructor TeCodeFormatterExpert.Destroy; begin - FreeAndNil(FFormatter); + FreeAndNil(FExpert); inherited; end; procedure TeCodeFormatterExpert.Execute(Sender: TObject); -resourcestring - str_NoEditor = 'No source editor'; - str_UnsupportedFileTypeS = 'Unsupported file type: %s'; - str_UnableToGetContentsS = 'Unable to get contents of %s'; -var - SourceEditor: IOTASourceEditor; - FileName: string; - FullText: TStringList; - ShowDone: Boolean; - Bookmarks: ICodeFormatterSaveList; - Breakpoints: ICodeFormatterSaveList; - WasBinary: Boolean; - i: integer; - TempSettings: TCodeFormatterSettings; - OrigSettings: TCodeFormatterEngineSettings; - FirstLine: string; begin - SourceEditor := GxOtaGetCurrentSourceEditor; - if not Assigned(SourceEditor) then - raise ECodeFormatter.Create(str_NoEditor); - FileName := SourceEditor.FileName; - if not (IsPascalSourceFile(FileName) or IsDelphiPackage(FileName)) then - raise ECodeFormatter.CreateFmt(str_UnsupportedFileTypeS, [ExtractFileName(FileName)]); - - TempSettings := nil; - FullText := TStringList.Create; - try - if not GxOtaGetFileAsText(Filename, FullText, WasBinary) then - raise ECodeFormatter.CreateFmt(str_UnableToGetContentsS, [FileName]); - if FullText.Count = 0 then - exit; - - Bookmarks := TBookmarkHandler.Create; - Breakpoints := TBreakpointHandler.Create; - - FirstLine := FullText[0]; - if SameText(Copy(FirstLine, 1, 20), '{GXFormatter.config=') then begin - FirstLine := Trim(Copy(FirstLine, 21, Length(FirstLine) - 21)); - TempSettings := TCodeFormatterSettings.Create; - if TCodeFormatterConfigHandler.GetDefaultConfig(FirstLine, TempSettings) then begin - OrigSettings := FFormatter.Settings.Settings; - FFormatter.Settings.Settings := TempSettings.Settings; - end else - FreeAndNil(TempSettings); - end; - - FFormatter.Sourcecode := FullText.Text; - if FFormatter.Execute then begin - if FullText.Text <> FFormatter.Sourcecode then begin - GxOtaReplaceEditorText(SourceEditor, FFormatter.Sourcecode); - for i := 0 to SourceEditor.EditViewCount - 1 do - SourceEditor.EditViews[i].Paint; - end; - if FFormatter.Settings.ShowDoneDialog then begin - ShowDoneDialog(ShowDone); - if Showdone <> FFormatter.Settings.ShowDoneDialog then begin - FFormatter.Settings.ShowDoneDialog := ShowDone; - end; - end; - end; - - finally - FreeAndNil(FullText); - if Assigned(TempSettings) then begin - FreeAndNil(TempSettings); - FFormatter.Settings.Settings := OrigSettings; - end; - end; + FExpert.Execute; end; function TeCodeFormatterExpert.GetBitmapFileName: string; @@ -156,9 +75,22 @@ Result := 'Code Formatter'; end; +procedure TeCodeFormatterExpert.GetHelpString(List: TStrings); +resourcestring + SFormatterHelp = + ' This expert is the source code formatter formerly known as' + + ' DelForEx. It can handle different configuration sets between which' + + ' you can switch using the tools button.' + sLineBreak + + ' To force a configuration set for a particular unit, add' + sLineBreak + sLineBreak + + ' {GXFormatter.config=<name>}' + sLineBreak + sLineBreak + + ' as the first line to the unit.'; +begin + List.Text := SFormatterHelp; +end; + class function TeCodeFormatterExpert.GetName: string; begin - Result := self.ClassName; + Result := 'CodeFormatter'; end; function TeCodeFormatterExpert.HasConfigOptions: Boolean; @@ -167,36 +99,15 @@ end; procedure TeCodeFormatterExpert.InternalLoadSettings(Settings: TGExpertsSettings); -var - Reader: IConfigReader; begin inherited; - - Reader := TGxConfigWrapper.Create(Settings, ConfigurationKey); - TCodeFormatterConfigHandler.ReadSettings(Reader, FFormatter.Settings); + FExpert.InternalLoadSettings(ConfigurationKey, Settings); end; procedure TeCodeFormatterExpert.InternalSaveSettings(Settings: TGExpertsSettings); -var - Writer: IConfigWriter; begin inherited; - - Writer := TGxConfigWrapper.Create(Settings, ConfigurationKey); - TCodeFormatterConfigHandler.WriteSettings(Writer, FFormatter.Settings); -end; - -procedure TeCodeFormatterExpert.ShowDoneDialog(out ShowDone: Boolean); -var - DoneForm: TfmCodeFormatterDone; -begin - DoneForm := TfmCodeFormatterDone.Create(nil); - try - DoneForm.ShowModal; - ShowDone := not DoneForm.chk_DontShowAgain.Checked; - finally - DoneForm.Free; - end; + FExpert.InternalSaveSettings(ConfigurationKey, Settings); end; initialization |
From: Thomas M. <tw...@us...> - 2006-05-27 17:55:00
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter/engine In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv29931/unstable/Src/Formatter/engine Modified Files: GX_CodeFormatterEngine.pas Log Message: * moved the formatter expert code to yet another object which is called by the plain expert and the editor expert, so the code isn't duplicated. * added a help string to the editor expert * formatter engine now takes a string list Index: GX_CodeFormatterEngine.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/engine/GX_CodeFormatterEngine.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- GX_CodeFormatterEngine.pas 19 Feb 2006 21:26:50 -0000 1.4 +++ GX_CodeFormatterEngine.pas 27 May 2006 17:54:51 -0000 1.5 @@ -41,16 +41,12 @@ private FSettings: TCodeFormatterSettings; FTokens: TOCollection; - FText: TStringList; function GetLine(var TokenNo: Integer): string; - function GetSourcecode: string; - procedure SetSourcecode(const Value: string); public constructor Create; destructor Destroy; override; - - function Execute: Boolean; - property Sourcecode: string read GetSourcecode write SetSourcecode; + {: @returns true if the formatting succeeded and the source code has changed } + function Execute(SourceCode: TStrings): Boolean; property Settings: TCodeFormatterSettings read FSettings write FSettings; end; @@ -65,26 +61,39 @@ begin inherited; FSettings := TCodeFormatterSettings.Create; - FText := TStringList.Create; end; destructor TCodeFormatterEngine.Destroy; begin - FreeAndNil(FText); FreeAndNil(FSettings); FreeAndNil(FTokens); inherited; end; -function TCodeFormatterEngine.Execute: Boolean; +function TCodeFormatterEngine.Execute(SourceCode: TStrings): Boolean; +var + Line: string; + TokenNo: Integer; + LB: string; + OrigSource: string; begin try + OrigSource := SourceCode.Text; if Assigned(FTokens) then FTokens.Free; - FTokens := TCodeFormatterParser.Execute(FText, FSettings); - FText.Clear; // we can free some memory since the text is now stored in the tokens + FTokens := TCodeFormatterParser.Execute(SourceCode, FSettings); TCodeFormatterFormatter.Execute(FTokens, FSettings); - Result := True; + + SourceCode.Clear; + LB := sLineBreak; + if Assigned(FTokens) then begin + TokenNo := 0; + while TokenNo < FTokens.Count do begin + Line := GetLine(TokenNo); + SourceCode.Add(Line); + end; + end; + Result := (OrigSource <> SourceCode.Text + #13#10) and (OrigSource <> SourceCode.Text); except on E: Exception do begin Result := False; @@ -121,31 +130,5 @@ SetLength(Result, i); end; -function TCodeFormatterEngine.GetSourcecode: string; -var - Line: string; - TokenNo: Integer; - LB: string; -begin - FText.Clear; - - LB := sLineBreak; - if Assigned(FTokens) then begin - TokenNo := 0; - while TokenNo < FTokens.Count do begin - Line := GetLine(TokenNo); - FText.Add(Line); - end; - end; - - Result := FText.Text; - FText.Clear; -end; - -procedure TCodeFormatterEngine.SetSourcecode(const Value: string); -begin - FText.Text := Value; -end; - end. |
From: Thomas M. <tw...@us...> - 2006-05-27 14:38:53
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter/unittests In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv24751/unstable/Src/Formatter/unittests Modified Files: GX_FormatterUnitTests.bdsproj Log Message: * now also available as editor expert Index: GX_FormatterUnitTests.bdsproj =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/unittests/GX_FormatterUnitTests.bdsproj,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- GX_FormatterUnitTests.bdsproj 20 Dec 2005 14:46:22 -0000 1.2 +++ GX_FormatterUnitTests.bdsproj 27 May 2006 14:38:40 -0000 1.3 @@ -101,6 +101,9 @@ <Compiler Name="OptionTruncated">True</Compiler> <Compiler Name="WideCharReduced">True</Compiler> <Compiler Name="DuplicatesIgnored">True</Compiler> + <Compiler Name="UnitInitSeq">True</Compiler> + <Compiler Name="LocalPInvoke">True</Compiler> + <Compiler Name="CodePage"></Compiler> </Compiler> <Linker> <Linker Name="MapFile">0</Linker> @@ -113,6 +116,7 @@ <Linker Name="MaxStackSize">1048576</Linker> <Linker Name="ImageBase">4194304</Linker> <Linker Name="ExeDescription"></Linker> + <Linker Name="GenerateHpps">False</Linker> </Linker> <Directories> <Directories Name="OutputDir">..\</Directories> @@ -136,6 +140,9 @@ <Parameters Name="RemoteLauncher"></Parameters> <Parameters Name="RemoteCWD"></Parameters> <Parameters Name="RemoteDebug">False</Parameters> + <Parameters Name="Debug Symbols Search Path"></Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> </Parameters> <VersionInfo> <VersionInfo Name="IncludeVerInfo">True</VersionInfo> @@ -162,8 +169,12 @@ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> <VersionInfoKeys Name="ProductName"></VersionInfoKeys> - </VersionInfoKeys> - <Excluded_Packages> + </VersionInfoKeys> + <Language> + <Language Name="ActiveLang"></Language> + <Language Name="ProjectLang">$00000000</Language> + <Language Name="RootDir"></Language> + </Language> <Excluded_Packages> <Excluded_Packages Name="c:\program files\borland\bds\3.0\Bin\dbwebxprt.bpl">Borland Web Wizard Package</Excluded_Packages> <Excluded_Packages Name="c:\program files\borland\bds\3.0\Bin\dcltee90.bpl">TeeChart Components</Excluded_Packages> </Excluded_Packages> |
From: Thomas M. <tw...@us...> - 2006-05-27 14:38:51
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Formatter In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv24751/unstable/Src/Formatter Modified Files: GX_CodeFormatterConfig.dfm GX_Formatter.pas Added Files: GX_eCodeFormatter.pas Log Message: * now also available as editor expert Index: GX_Formatter.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_Formatter.pas,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- GX_Formatter.pas 1 May 2006 12:12:41 -0000 1.23 +++ GX_Formatter.pas 27 May 2006 14:38:40 -0000 1.24 @@ -6,37 +6,50 @@ interface -uses - SysUtils, Classes, Controls, Forms, Dialogs, StdCtrls, ToolsApi, - GX_Experts, GX_CodeFormatterGXConfigWrapper; - implementation uses -{$IFOPT D+}GX_DbugIntf, {$ENDIF} - Registry, Menus, - GX_GExperts, GX_ConfigurationInfo, GX_OtaUtils, - GX_CodeFormatterTypes, GX_CodeFormatterConfig, GX_CodeFormatterEngine, - GX_CodeFormatterBookmarks, GX_CodeFormatterBreakpoints, - GX_CodeFormatterDefaultSettings, GX_CodeFormatterConfigHandler, GX_CodeFormatterDone, - GX_GenericUtils, GX_CodeFormatterSettings, GX_CodeFormatterSaveList; +{$IFOPT D+}GX_DbugIntf, +{$ENDIF} + SysUtils, + Classes, + Dialogs, + Menus, + ToolsApi, + GX_OtaUtils, + GX_GenericUtils, + GX_Experts, + GX_GExperts, + GX_ConfigurationInfo, + GX_CodeFormatterGXConfigWrapper, + GX_CodeFormatterTypes, + GX_CodeFormatterConfig, + GX_CodeFormatterEngine, + GX_CodeFormatterBookmarks, + GX_CodeFormatterBreakpoints, + GX_CodeFormatterDefaultSettings, + GX_CodeFormatterConfigHandler, + GX_CodeFormatterDone, + GX_CodeFormatterSettings, + GX_CodeFormatterSaveList; type TCodeFormatterExpert = class(TGX_Expert) private FFormatter: TCodeFormatterEngine; procedure ShowDoneDialog(out ShowDone: Boolean); + protected + procedure InternalLoadSettings(Settings: TGExpertsSettings); override; + procedure InternalSaveSettings(Settings: TGExpertsSettings); override; public constructor Create; override; destructor Destroy; override; + procedure Click(Sender: TObject); override; + procedure Configure; override; function GetActionCaption: string; override; class function GetName: string; override; function HasConfigOptions: Boolean; override; function HasMenuItem: Boolean; override; - procedure Configure; override; - procedure InternalLoadSettings(Settings: TGExpertsSettings); override; - procedure InternalSaveSettings(Settings: TGExpertsSettings); override; - procedure Click(Sender: TObject); override; end; { TCodeFormatterExpert } @@ -79,7 +92,7 @@ FirstLine := FullText[0]; if SameText(Copy(FirstLine, 1, 20), '{GXFormatter.config=') then begin - FirstLine := Trim(Copy(FirstLine, 21, Length(FirstLine)-21)); + FirstLine := Trim(Copy(FirstLine, 21, Length(FirstLine) - 21)); TempSettings := TCodeFormatterSettings.Create; if TCodeFormatterConfigHandler.GetDefaultConfig(FirstLine, TempSettings) then begin OrigSettings := FFormatter.Settings.Settings; @@ -105,11 +118,10 @@ finally FreeAndNil(FullText); - if Assigned(TempSettings) then - begin - FreeAndNil(TempSettings); - FFormatter.Settings.Settings := OrigSettings; - end; + if Assigned(TempSettings) then begin + FreeAndNil(TempSettings); + FFormatter.Settings.Settings := OrigSettings; + end; end; end; --- NEW FILE: GX_eCodeFormatter.pas --- unit GX_eCodeFormatter; {$I GX_CondDefine.inc} interface implementation uses {$IFOPT D+}GX_DbugIntf, {$ENDIF} SysUtils, Classes, Dialogs, Menus, ToolsAPI, GX_OtaUtils, GX_GenericUtils, GX_EditorExpert, GX_ConfigurationInfo, GX_CodeFormatterGXConfigWrapper, GX_CodeFormatterTypes, GX_CodeFormatterConfig, GX_CodeFormatterEngine, GX_CodeFormatterBookmarks, GX_CodeFormatterBreakpoints, GX_CodeFormatterDefaultSettings, GX_CodeFormatterConfigHandler, GX_CodeFormatterDone, GX_CodeFormatterSettings, GX_CodeFormatterSaveList; type TeCodeFormatterExpert = class(TEditorExpert) private FFormatter: TCodeFormatterEngine; procedure ShowDoneDialog(out ShowDone: Boolean); protected function GetDisplayName: string; override; class function GetName: string; override; function GetBitmapFileName: string; override; procedure InternalLoadSettings(Settings: TGExpertsSettings); override; procedure InternalSaveSettings(Settings: TGExpertsSettings); override; public constructor Create; override; destructor Destroy; override; procedure Configure; override; procedure Execute(Sender: TObject); override; function HasConfigOptions: Boolean; override; end; { TeCodeFormatterExpert } procedure TeCodeFormatterExpert.Configure; begin TfmCodeFormatterConfig.Execute(FFormatter.Settings); end; constructor TeCodeFormatterExpert.Create; var Settings: TCodeFormatterEngineSettings; begin inherited Create; Settings := BorlandDefaults; FFormatter := TCodeFormatterEngine.Create; FFormatter.Settings.Settings := Settings; ShortCut := Menus.ShortCut(Word('F'), [ssCtrl, ssAlt]); end; destructor TeCodeFormatterExpert.Destroy; begin FreeAndNil(FFormatter); inherited; end; procedure TeCodeFormatterExpert.Execute(Sender: TObject); resourcestring str_NoEditor = 'No source editor'; str_UnsupportedFileTypeS = 'Unsupported file type: %s'; str_UnableToGetContentsS = 'Unable to get contents of %s'; var SourceEditor: IOTASourceEditor; FileName: string; FullText: TStringList; ShowDone: Boolean; Bookmarks: ICodeFormatterSaveList; Breakpoints: ICodeFormatterSaveList; WasBinary: Boolean; i: integer; TempSettings: TCodeFormatterSettings; OrigSettings: TCodeFormatterEngineSettings; FirstLine: string; begin SourceEditor := GxOtaGetCurrentSourceEditor; if not Assigned(SourceEditor) then raise ECodeFormatter.Create(str_NoEditor); FileName := SourceEditor.FileName; if not (IsPascalSourceFile(FileName) or IsDelphiPackage(FileName)) then raise ECodeFormatter.CreateFmt(str_UnsupportedFileTypeS, [ExtractFileName(FileName)]); TempSettings := nil; FullText := TStringList.Create; try if not GxOtaGetFileAsText(Filename, FullText, WasBinary) then raise ECodeFormatter.CreateFmt(str_UnableToGetContentsS, [FileName]); if FullText.Count = 0 then exit; Bookmarks := TBookmarkHandler.Create; Breakpoints := TBreakpointHandler.Create; FirstLine := FullText[0]; if SameText(Copy(FirstLine, 1, 20), '{GXFormatter.config=') then begin FirstLine := Trim(Copy(FirstLine, 21, Length(FirstLine) - 21)); TempSettings := TCodeFormatterSettings.Create; if TCodeFormatterConfigHandler.GetDefaultConfig(FirstLine, TempSettings) then begin OrigSettings := FFormatter.Settings.Settings; FFormatter.Settings.Settings := TempSettings.Settings; end else FreeAndNil(TempSettings); end; FFormatter.Sourcecode := FullText.Text; if FFormatter.Execute then begin if FullText.Text <> FFormatter.Sourcecode then begin GxOtaReplaceEditorText(SourceEditor, FFormatter.Sourcecode); for i := 0 to SourceEditor.EditViewCount - 1 do SourceEditor.EditViews[i].Paint; end; if FFormatter.Settings.ShowDoneDialog then begin ShowDoneDialog(ShowDone); if Showdone <> FFormatter.Settings.ShowDoneDialog then begin FFormatter.Settings.ShowDoneDialog := ShowDone; end; end; end; finally FreeAndNil(FullText); if Assigned(TempSettings) then begin FreeAndNil(TempSettings); FFormatter.Settings.Settings := OrigSettings; end; end; end; function TeCodeFormatterExpert.GetBitmapFileName: string; begin Result := ''; end; function TeCodeFormatterExpert.GetDisplayName: string; begin Result := 'Code Formatter'; end; class function TeCodeFormatterExpert.GetName: string; begin Result := self.ClassName; end; function TeCodeFormatterExpert.HasConfigOptions: Boolean; begin Result := True; end; procedure TeCodeFormatterExpert.InternalLoadSettings(Settings: TGExpertsSettings); var Reader: IConfigReader; begin inherited; Reader := TGxConfigWrapper.Create(Settings, ConfigurationKey); TCodeFormatterConfigHandler.ReadSettings(Reader, FFormatter.Settings); end; procedure TeCodeFormatterExpert.InternalSaveSettings(Settings: TGExpertsSettings); var Writer: IConfigWriter; begin inherited; Writer := TGxConfigWrapper.Create(Settings, ConfigurationKey); TCodeFormatterConfigHandler.WriteSettings(Writer, FFormatter.Settings); end; procedure TeCodeFormatterExpert.ShowDoneDialog(out ShowDone: Boolean); var DoneForm: TfmCodeFormatterDone; begin DoneForm := TfmCodeFormatterDone.Create(nil); try DoneForm.ShowModal; ShowDone := not DoneForm.chk_DontShowAgain.Checked; finally DoneForm.Free; end; end; initialization RegisterEditorExpert(TeCodeFormatterExpert); end. Index: GX_CodeFormatterConfig.dfm =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Formatter/GX_CodeFormatterConfig.dfm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- GX_CodeFormatterConfig.dfm 19 Feb 2006 21:26:49 -0000 1.6 +++ GX_CodeFormatterConfig.dfm 27 May 2006 14:38:40 -0000 1.7 @@ -1,8 +1,6 @@ object fmCodeFormatterConfig: TfmCodeFormatterConfig Left = 339 Top = 175 - Width = 486 - Height = 450 HelpContext = 100 Caption = 'Delphi Code Formatter Configuration' ClientHeight = 426 @@ -27,6 +25,10 @@ TabOrder = 0 object ts_Indent: TTabSheet Caption = 'Indent' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 object Label1: TLabel Left = 8 Top = 22 @@ -118,6 +120,10 @@ end object ts_Spacing: TTabSheet Caption = 'Spacing' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 DesignSize = ( 470 357) @@ -142,6 +148,10 @@ end object ts_LineBreaks: TTabSheet Caption = 'Line Breaks' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 object Label4: TLabel Left = 240 Top = 104 @@ -322,6 +332,10 @@ end object ts_Capitalization: TTabSheet Caption = 'Capitalization' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 object Label7: TLabel Left = 8 Top = 74 @@ -422,6 +436,10 @@ end object ts_Align: TTabSheet Caption = 'Align' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 object Label16: TLabel Left = 12 Top = 35 @@ -487,6 +505,10 @@ end object ts_Misc: TTabSheet Caption = 'Misc.' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 object Label8: TLabel Left = 8 Top = 8 @@ -538,6 +560,10 @@ ImageIndex = 6 OnResize = ts_PreviewResize OnShow = ts_PreviewShow + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 DesignSize = ( 470 357) @@ -648,7 +674,12 @@ Top = 8 Width = 75 Height = 25 + Hint = + 'You can add {GXFormatter.config=<name>} as the first line to a u' + + 'nit to force a configuration for that particular unit.' Caption = 'Tools >' + ParentShowHint = False + ShowHint = True TabOrder = 1 OnClick = b_ToolsClick end |
From: Erik B. <eb...@us...> - 2006-05-16 02:06:17
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Grep In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv32660/Src/Grep Modified Files: GX_GrepResults.pas GX_GrepSearch.pas Log Message: Better default fonts (for ClearType systems) for a few forms Index: GX_GrepResults.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Grep/GX_GrepResults.pas,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- GX_GrepResults.pas 17 Apr 2006 06:06:37 -0000 1.60 +++ GX_GrepResults.pas 16 May 2006 02:06:13 -0000 1.61 @@ -933,6 +933,7 @@ begin inherited Create(AOwner); SetToolbarGradient(ToolBar); + SetDefaultFont(Self); FSearchInProgress := False; lbResults.DoubleBuffered := True; Index: GX_GrepSearch.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Grep/GX_GrepSearch.pas,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- GX_GrepSearch.pas 21 Jan 2006 21:03:41 -0000 1.41 +++ GX_GrepSearch.pas 16 May 2006 02:06:13 -0000 1.42 @@ -300,6 +300,7 @@ begin if not Assigned(fmGrepResults) then raise Exception.Create(SGrepResultsNotActive); + SetDefaultFont(Self); FGrepExpert := fmGrepResults.GrepExpert; cbText.Items.Assign(FGrepExpert.SearchList); |
From: Erik B. <eb...@us...> - 2006-05-16 02:06:16
|
Update of /cvsroot/gexperts/gexperts/unstable/Src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv32660/Src Modified Files: GX_About.dfm GX_About.pas GX_AsciiChart.pas GX_Configure.dfm GX_Configure.pas GX_ProcedureList.pas Log Message: Better default fonts (for ClearType systems) for a few forms Index: GX_Configure.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_Configure.pas,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- GX_Configure.pas 14 Feb 2006 12:29:35 -0000 1.42 +++ GX_Configure.pas 16 May 2006 02:06:13 -0000 1.43 @@ -82,6 +82,7 @@ edtMinutes: TEdit; udMinutes: TUpDown; btnEumerateActions: TButton; + btnGetFonts: TButton; procedure btnEnumerateModulesClick(Sender: TObject); procedure chkEditorKeyTracingClick(Sender: TObject); procedure sbVCLDirClick(Sender: TObject); @@ -116,6 +117,7 @@ procedure lvEditorExpertsDblClick(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure btnEumerateActionsClick(Sender: TObject); + procedure btnGetFontsClick(Sender: TObject); private FOIFont: TFont; FCPFont: TFont; @@ -176,6 +178,7 @@ begin inherited Create(AOwner); + SetDefaultFont(Self); FOIFont := TFont.Create; FCPFont := TFont.Create; @@ -955,5 +958,24 @@ end; end; +type TControlCracker = class(TControl); + +procedure TfmConfiguration.btnGetFontsClick(Sender: TObject); +var + Fonts: string; + + procedure AddControl(Control: TControl); + begin + if Assigned(Control) then + Fonts := Fonts + Control.Name +': ' + TControlCracker(Control).Font.Name + ' ' + IntToStr(TControlCracker(COntrol).Font.Size) + sLineBreak; + end; + +begin + AddControl(GetIdeMainForm); + AddControl(GetComponentPaletteTabControl); + AddControl(GetObjectInspectorForm); + ShowMessage(Fonts); +end; + end. Index: GX_AsciiChart.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_AsciiChart.pas,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- GX_AsciiChart.pas 8 Dec 2005 05:39:42 -0000 1.25 +++ GX_AsciiChart.pas 16 May 2006 02:06:13 -0000 1.26 @@ -152,7 +152,7 @@ 'Record Separator', 'Unit Separator'); DefaultDisplayFontSize = 8; - DefaultFontName = 'MS Sans Serif'; + DefaultFontName = 'Tahoma'; procedure TfmAsciiChart.FormClose(Sender: TObject; var Action: TCloseAction); var @@ -193,7 +193,7 @@ VertMult := (Self.ClientHeight - ToolBar.Height) div 16; Canvas.Brush.Style := bsClear; { draw the character value as Int or Hex on screen } - Canvas.Font.Name := 'MS Sans Serif'; // do not localize + Canvas.Font.Name := 'Tahoma'; // do not localize Canvas.Font.Size := 8; Canvas.Font.Color := clGrayText; { Only do the if check once for improved speed rather than every iteration } Index: GX_Configure.dfm =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_Configure.dfm,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- GX_Configure.dfm 14 Feb 2006 12:29:34 -0000 1.30 +++ GX_Configure.dfm 16 May 2006 02:06:13 -0000 1.31 @@ -604,6 +604,15 @@ TabOrder = 2 OnClick = btnEumerateActionsClick end + object btnGetFonts: TButton + Left = 16 + Top = 103 + Width = 137 + Height = 25 + Caption = 'IDE Fonts' + TabOrder = 3 + OnClick = btnGetFontsClick + end end end end Index: GX_About.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_About.pas,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- GX_About.pas 16 May 2004 17:38:27 -0000 1.12 +++ GX_About.pas 16 May 2006 02:06:13 -0000 1.13 @@ -54,6 +54,21 @@ constructor TfmAbout.Create(AOwner: TComponent); begin inherited Create(AOwner); + SetDefaultFont(Self); + SetFontBold(lblContributors); + SetFontBold(lblProjectLeader); + SetFontBold(lblWebSite); + SetFontBold(lblVersion); + SetFontBold(lblGExperts); + SetFontColor(lblPreRelease1, clRed); + SetFontColor(lblPreRelease2, clRed); + SetFontSize(lblGExperts, +4); + SetFontSize(lblVersion, +4); + SetFontUnderline(lblErik); + SetFontUnderline(lblWebPage); + SetFontColor(lblErik, clBlue); + SetFontColor(lblWebPage, clBlue); + imgLogo.Picture.Bitmap.LoadFromResourceName(HInstance, 'ABOUT_WIZ'); InitVersionInfoControls; Index: GX_About.dfm =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_About.dfm,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- GX_About.dfm 25 Apr 2006 22:41:29 -0000 1.18 +++ GX_About.dfm 16 May 2006 02:06:13 -0000 1.19 @@ -27,12 +27,6 @@ Alignment = taCenter AutoSize = False Caption = 'GExperts' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False end object lblVersion: TLabel Left = 317 @@ -42,87 +36,49 @@ Alignment = taCenter AutoSize = False Caption = 'Version ?.??' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False end object lblWebPage: TLabel Left = 350 Top = 79 - Width = 121 + Width = 127 Height = 13 Cursor = crHandPoint Alignment = taCenter Caption = 'http://www.gexperts.org/' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlue - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsUnderline] - ParentColor = False - ParentFont = False OnClick = lblWebPageClick end object lblProjectLeader: TLabel - Left = 252 + Left = 266 Top = 99 - Width = 88 + Width = 74 Height = 13 Alignment = taRightJustify Caption = 'Project Leader:' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False end object lblContributors: TLabel - Left = 232 + Left = 246 Top = 121 - Width = 108 + Width = 94 Height = 13 Alignment = taRightJustify Caption = 'Major Contributors:' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False end object lblErik: TLabel Left = 350 Top = 99 - Width = 158 + Width = 170 Height = 13 Cursor = crHandPoint Caption = 'Erik Berry <eb...@ge...>' - Font.Charset = DEFAULT_CHARSET - Font.Color = clBlue - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsUnderline] - ParentFont = False OnClick = btnEmailClick end object lblWebSite: TLabel - Left = 283 + Left = 293 Top = 79 - Width = 57 + Width = 47 Height = 13 Alignment = taRightJustify Caption = 'Web Site:' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [fsBold] - ParentFont = False end object lblPreRelease1: TLabel Left = 212 @@ -132,14 +88,6 @@ Alignment = taCenter AutoSize = False Caption = 'Pre-Release' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clRed - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ParentColor = False - ParentFont = False Visible = False end object lblPreRelease2: TLabel @@ -150,14 +98,6 @@ Alignment = taCenter AutoSize = False Caption = 'Pre-Release' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clRed - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ParentColor = False - ParentFont = False Visible = False end object pnlContributors: TPanel @@ -176,7 +116,6 @@ TabStop = False Align = alClient BorderStyle = bsNone - Color = clBtnFace Columns = 2 ItemHeight = 13 Items.Strings = ( @@ -196,6 +135,7 @@ 'Alex Petrov' 'Puthoon' 'Martin Waldenburg') + ParentColor = True TabOrder = 0 end end Index: GX_ProcedureList.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_ProcedureList.pas,v retrieving revision 1.68 retrieving revision 1.69 diff -u -d -r1.68 -r1.69 --- GX_ProcedureList.pas 17 Apr 2006 06:10:27 -0000 1.68 +++ GX_ProcedureList.pas 16 May 2006 02:06:13 -0000 1.69 @@ -614,6 +614,7 @@ procedure TfmProcedureList.InitializeForm; begin SetupSyntaxHighlightingControl; + SetDefaultFont(Self); FObjectStrings := TStringList.Create; FObjectStrings.Sorted := True; |
From: Erik B. <eb...@us...> - 2006-05-16 01:25:18
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/Utils In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv18428/Src/Utils Modified Files: GX_GenericUtils.pas Log Message: // Set a control's font to the default for this system function SetDefaultFont(Control: TControl): string; // Set a control's font to bold procedure SetFontBold(Control: TControl); // Set a control's font to underline procedure SetFontUnderline(Control: TControl); // Change a font size relative to the current size procedure SetFontSize(Control: TControl; SizeChange: Integer); // Change a font size relative to the current size procedure SetFontColor(Control: TControl; Color: TColor); Index: GX_GenericUtils.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/Utils/GX_GenericUtils.pas,v retrieving revision 1.148 retrieving revision 1.149 diff -u -d -r1.148 -r1.149 --- GX_GenericUtils.pas 17 Apr 2006 06:06:38 -0000 1.148 +++ GX_GenericUtils.pas 16 May 2006 01:25:15 -0000 1.149 @@ -239,6 +239,17 @@ // Enable/disable a control and all children procedure SetEnabledOnControlAndChildren(Control: TControl; Value: Boolean); +// Set a control's font to the default for this system +function SetDefaultFont(Control: TControl): string; +// Set a control's font to bold +procedure SetFontBold(Control: TControl); +// Set a control's font to underline +procedure SetFontUnderline(Control: TControl); +// Change a font size relative to the current size +procedure SetFontSize(Control: TControl; SizeChange: Integer); +// Change a font size relative to the current size +procedure SetFontColor(Control: TControl; Color: TColor); + // Sets the ParentBackground property, if supported by the current VCL version // This needs to be false for colored TPanels that can appear in a themed app procedure SetParentBackgroundValue(Panel: TCustomPanel; Value: Boolean); @@ -1520,6 +1531,41 @@ end; end; +type + TControlCracker = class(TControl); + +function SetDefaultFont(Control: TControl): string; +begin + Result := ''; + if Assigned(Control) then begin + if (Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion >= 5) then + TControlCracker(Control).Font.Name := 'MS Shell Dlg 2' + else + TControlCracker(Control).Font.Name := 'MS Shell Dlg'; + Result := TControlCracker(Control).Font.Name; + end; +end; + +procedure SetFontBold(Control: TControl); +begin + TControlCracker(Control).Font.Style := TControlCracker(Control).Font.Style + [fsBold]; +end; + +procedure SetFontUnderline(Control: TControl); +begin + TControlCracker(Control).Font.Style := TControlCracker(Control).Font.Style + [fsUnderline]; +end; + +procedure SetFontSize(Control: TControl; SizeChange: Integer); +begin + TControlCracker(Control).Font.Size := TControlCracker(Control).Font.Size + SizeChange; +end; + +procedure SetFontColor(Control: TControl; Color: TColor); +begin + TControlCracker(Control).Font.Color := Color; +end; + procedure SetParentBackgroundValue(Panel: TCustomPanel; Value: Boolean); begin {$IFDEF GX_VER150_up} // Delphi 7+ |
From: Erik B. <eb...@us...> - 2006-05-13 22:21:24
|
Update of /cvsroot/gexperts/gexperts/unstable In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2978 Modified Files: GExpertsBDS2006.bdsproj Log Message: Minor options tweaks Index: GExpertsBDS2006.bdsproj =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/GExpertsBDS2006.bdsproj,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- GExpertsBDS2006.bdsproj 6 Dec 2005 03:35:31 -0000 1.1 +++ GExpertsBDS2006.bdsproj 13 May 2006 22:21:21 -0000 1.2 @@ -106,7 +106,7 @@ <Compiler Name="CodePage"></Compiler> </Compiler> <Linker> - <Linker Name="MapFile" Type="Integer">0</Linker> + <Linker Name="MapFile" Type="Integer">3</Linker> <Linker Name="OutputObjs" Type="Integer">0</Linker> <Linker Name="ConsoleApp" Type="Integer">1</Linker> <Linker Name="DebugInfo" Type="Boolean">False</Linker> @@ -130,8 +130,8 @@ <Directories Name="UsePackages" Type="Boolean">True</Directories> </Directories> <Parameters> - <Parameters Name="RunParams" Type="String">-np</Parameters> - <Parameters Name="HostApplication" Type="String">D:\Borland\Dexter\Bin\bds.exe</Parameters> + <Parameters Name="RunParams" Type="String">-np -ns</Parameters> + <Parameters Name="HostApplication" Type="String">D:\Borland\Delphi10\Bin\bds.exe</Parameters> <Parameters Name="Launcher" Type="String"></Parameters> <Parameters Name="UseLauncher" Type="Boolean">False</Parameters> <Parameters Name="DebugCWD" Type="String"></Parameters> @@ -172,8 +172,8 @@ <VersionInfoKeys Name="ProductName" Type="String">GExperts for BDS 2006</VersionInfoKeys> <VersionInfoKeys Name="ProductVersion" Type="String">1.3.0.0</VersionInfoKeys> <VersionInfoKeys Name="Comments">Open Source</VersionInfoKeys> - <VersionInfoKeys Name="Compile Date">Thursday, November 10, 2005 8:29 PM</VersionInfoKeys> - </VersionInfoKeys> + <VersionInfoKeys Name="Compile Date">Saturday, October 06, 2001 3:07 PM</VersionInfoKeys> <VersionInfoKeys Name="CompileDate">Wednesday, April 26, 2006 4:23 AM</VersionInfoKeys> + </VersionInfoKeys> <Language> <Language Name="ActiveLang" Type="String"></Language> <Language Name="ProjectLang" Type="String">$00000000</Language> |
From: Erik B. <eb...@us...> - 2006-05-13 22:19:12
|
Update of /cvsroot/gexperts/gexperts/unstable In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv2179 Modified Files: GExperts.iss Log Message: Remove output name specifier Index: GExperts.iss =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/GExperts.iss,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- GExperts.iss 12 May 2006 17:43:00 -0000 1.16 +++ GExperts.iss 13 May 2006 22:19:04 -0000 1.17 @@ -93,7 +93,7 @@ VersionInfoDescription={#FullName} Setup VersionInfoTextVersion={#Version} SolidCompression=yes -OutputBaseFilename=Setup{#DLLSuffix} +;OutputBaseFilename=Setup{#DLLSuffix} [Files] Source: Binaries\{#BinaryDir}\ExpMgr.exe; DestDir: {app}; Flags: ignoreversion |
From: Erik B. <eb...@us...> - 2006-05-12 17:43:04
|
Update of /cvsroot/gexperts/gexperts/unstable In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv5577 Modified Files: GExperts.iss Log Message: Add OutputBaseFilename=Setup{#DLLSuffix} Index: GExperts.iss =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/GExperts.iss,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- GExperts.iss 16 Apr 2006 19:21:06 -0000 1.15 +++ GExperts.iss 12 May 2006 17:43:00 -0000 1.16 @@ -93,6 +93,7 @@ VersionInfoDescription={#FullName} Setup VersionInfoTextVersion={#Version} SolidCompression=yes +OutputBaseFilename=Setup{#DLLSuffix} [Files] Source: Binaries\{#BinaryDir}\ExpMgr.exe; DestDir: {app}; Flags: ignoreversion |
From: Erik B. <eb...@us...> - 2006-05-12 17:42:05
|
Update of /cvsroot/gexperts/gexperts/unstable/Comps In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv4594/Comps Modified Files: RplWizInfo.pas Log Message: TWideStrings read/assignment support for D2005+ Index: RplWizInfo.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Comps/RplWizInfo.pas,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- RplWizInfo.pas 20 Nov 2005 00:41:13 -0000 1.29 +++ RplWizInfo.pas 12 May 2006 17:39:45 -0000 1.30 @@ -282,6 +282,7 @@ uses GX_OtaUtils, ComCtrls, Windows, Variants, {$IFOPT D+} GX_DbugIntf, {$ENDIF} + {$IFDEF GX_VER170_up} WideStrings, {$ENDIF} GX_GenericUtils, GX_ReplaceCompUtils; const @@ -778,70 +779,74 @@ resourcestring SRODest = 'Invalid destination - read-only: %s.%s'; var - SourceSList, SList: TStrings; + SourceObj: TObject; + DestObj: TObject; + SourceType, DestType: TTypeKind; begin - if SourceInfo.PropType^.Kind = DestInfo.PropType^.Kind then + SourceType := SourceInfo.PropType^.Kind; + DestType := DestInfo.PropType^.Kind; + // Same property types + if SourceType = DestType then begin - case SourceInfo.PropType^.Kind of + case SourceType of tkClass: begin + SourceObj := GetObjectProp(SourceObject, SourceInfo.Name); + DestObj := GetObjectProp(DestObject, DestInfo.Name); + if DestInfo.SetProc = nil then - begin // setter is nil - only TStrings is handled here - if (ClassLevel(TStrings, - GetObjectPropClass(DestObject, DestInfo.Name))>=0) - and - (ClassLevel(TStrings, - GetObjectPropClass(SourceObject, SourceInfo.Name))>=0) - then - begin // both sides are TStrings - SourceSList := GetObjectProp(SourceObject, SourceInfo.Name) - as TStrings; - SList := GetObjectProp(DestObject, DestInfo.Name) as TStrings; - if Assigned(SList) and Assigned(SourceSList) then - SList.Text := SourceSList.Text; - end - else // impossible case (no setter & not TStrings) - raise Exception.Create(Format(SRODest, - [DestObject.ClassName, DestInfo.Name])); + begin // Setter is nil - only TStrings is handled here + if (SourceObj is TStrings) and (DestObj is TStrings) then // Both TStrings + (DestObj as TStrings).Text := (SourceObj as TStrings).Text + else // Impossible case (no setter & not TStrings) + raise Exception.Create(Format(SRODest, [DestObject.ClassName, DestInfo.Name])); end - else // setter is available - SetObjectProp(DestObject, DestInfo.Name, - GetObjectProp(SourceObject, SourceInfo.Name)); + else // Setter is available + begin + {$IFDEF GX_VER170_up} // Tested as working in BDS 2006 + if (SourceObj is TStrings) and (DestObj is TWideStrings) then // TStrings -> TWideStrings + (DestObj as TWideStrings).Text := (SourceObj as TStrings).Text + else if (SourceObj is TWideStrings) and (DestObj is TStrings) then // TWideStrings -> TStrings + (DestObj as TStrings).Text := (SourceObj as TWideStrings).Text + else + {$ENDIF GX_VER170_up} + SetObjectProp(DestObject, DestInfo.Name, GetObjectProp(SourceObject, SourceInfo.Name)); + end; end; // tkClass tkMethod: - SetMethodProp(DestObject, DestInfo.Name, - GetMethodProp(SourceObject, SourceInfo.Name)); + SetMethodProp(DestObject, DestInfo.Name, GetMethodProp(SourceObject, SourceInfo.Name)); else - SetPropValue(DestObject, DestInfo.Name, - GetPropValue(SourceObject, SourceInfo.Name)); - end // case - end // same type - else // different property types + SetPropValue(DestObject, DestInfo.Name, GetPropValue(SourceObject, SourceInfo.Name)); + end // case + end // Same type + else // Different property types begin - if not (SourceInfo.PropType^.Kind in [tkClass]) and - not (DestInfo.PropType^.Kind in [tkClass]) - then // different types but both can be a variant - SetPropValue(DestObject, DestInfo.Name, - GetPropValue(SourceObject, SourceInfo.Name)) - else // class somewhere (not on both sides) + // Different types but both can be a variant + if (SourceType <> tkClass) and (DestType <> tkClass) then + SetPropValue(DestObject, DestInfo.Name, GetPropValue(SourceObject, SourceInfo.Name)) + else // Class on one side only begin - // test for TStrings on source side - if (SourceInfo.PropType^.Kind in [tkClass]) and - (ClassLevel(TStrings, - GetObjectPropClass(SourceObject, SourceInfo.Name))>=0) - then - SetPropValue(DestObject, DestInfo.Name, - (GetObjectProp(SourceObject, SourceInfo.Name) as TStrings).Text) - else - // test for TStrings on dest side - if (DestInfo.PropType^.Kind in [tkClass]) and - (ClassLevel(TStrings, - GetObjectPropClass(DestObject, DestInfo.Name))>=0) - then + // Test for TStrings on source side + if (SourceType = tkClass) then begin - SList := GetObjectProp(DestObject, DestInfo.Name) as TStrings; - if Assigned(SList) then - SList.Text := VarToStr(GetPropValue(SourceObject, SourceInfo.Name)); + SourceObj := GetObjectProp(SourceObject, SourceInfo.Name); + if SourceObj is TStrings then + SetPropValue(DestObject, DestInfo.Name, (SourceObj as TStrings).Text) + {$IFDEF GX_VER170_up} + else if SourceObj is TWideStrings then + SetPropValue(DestObject, DestInfo.Name, (SourceObj as TWideStrings).Text) + {$ENDIF GX_VER170_up} + end + // Test for T[Wide]Strings on dest side + else if DestType = tkClass then + begin + DestObj := GetObjectProp(DestObject, DestInfo.Name); + if DestObj is TStrings then + (DestObj as TStrings).Text := GetPropValue(SourceObject, SourceInfo.Name) + {$IFDEF GX_VER170_up} + else if DestObj is TWideStrings then + (DestObj as TWideStrings).Text := GetPropValue(SourceObject, SourceInfo.Name) + {$ENDIF GX_VER170_up} end; end; end; |
From: Erik B. <eb...@us...> - 2006-05-12 17:41:27
|
Update of /cvsroot/gexperts/gexperts/unstable/Src In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv5250/Src Modified Files: GX_GExperts.pas GX_PackageSource.pas Log Message: Debug message logging tweaks Index: GX_PackageSource.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_PackageSource.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- GX_PackageSource.pas 22 Feb 2004 04:25:21 -0000 1.3 +++ GX_PackageSource.pas 12 May 2006 17:41:20 -0000 1.4 @@ -10,17 +10,20 @@ implementation uses + {$IFOPT D+} GX_DbugIntf, {$ENDIF} ToolsAPI, GX_GExperts; // Under Delphi 8+ we need to delay register with the IDE so the OTA is ready procedure IDERegister; begin + {$IFOPT D+} SendDebug('GX_PackageSource.IDERegister'); {$ENDIF} TGExperts.DelayedRegister; end; procedure Register; begin + {$IFOPT D+} SendDebug('GX_PackageSource.Register'); {$ENDIF} RegisterPackageWizard(TGExperts.Create as IOTAWizard); end; Index: GX_GExperts.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/GX_GExperts.pas,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- GX_GExperts.pas 11 Nov 2005 02:07:24 -0000 1.53 +++ GX_GExperts.pas 12 May 2006 17:41:20 -0000 1.54 @@ -116,6 +116,7 @@ constructor TGExperts.Create; begin + {$IFOPT D+} SendDebug('TGExperts.Create'); {$ENDIF} inherited Create; FStartingUp := True; InitializeGExperts; @@ -124,6 +125,7 @@ class procedure TGExperts.DelayedRegister; begin + {$IFOPT D+} SendDebug('TGExperts.DelayedRegister'); {$ENDIF} TInitHelper.Create(DoInitialize); // One time leak end; @@ -134,10 +136,10 @@ FExpertList := TList.Create; GExpertsInst := Self; + InitSharedResources; + // Create the action manager. {$IFOPT D+} SendDebug('Creating GXActionManager'); {$ENDIF} - - InitSharedResources; CreateGXMenuActionManager; try {$IFOPT D+} SendDebug('Installing AddIn'); {$ENDIF} @@ -323,6 +325,7 @@ class procedure TGExperts.DoInitialize(Sender: TObject); begin + {$IFOPT D+} SendDebug('TGExperts.DoInitialize'); {$ENDIF} (BorlandIDEServices as IOTAWizardServices).AddWizard(TGExperts.Create as IOTAWizard); end; |