mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-13 13:49:30 +02:00
TTextStrings improvements (Exchange, Put), clean ups
git-svn-id: trunk@6293 -
This commit is contained in:
parent
784cf31d12
commit
ff0abfca3e
@ -1753,7 +1753,7 @@ end;
|
||||
|
||||
procedure TDebugManager.ProcessCommand(Command: word; var Handled: boolean);
|
||||
begin
|
||||
debugln('TDebugManager.ProcessCommand ',dbgs(Command));
|
||||
//debugln('TDebugManager.ProcessCommand ',dbgs(Command));
|
||||
Handled:=true;
|
||||
case Command of
|
||||
ecPause: DoPauseProject;
|
||||
@ -1941,6 +1941,9 @@ end.
|
||||
|
||||
{ =============================================================================
|
||||
$Log$
|
||||
Revision 1.79 2004/11/24 08:18:13 mattias
|
||||
TTextStrings improvements (Exchange, Put), clean ups
|
||||
|
||||
Revision 1.78 2004/11/23 11:01:10 mattias
|
||||
added key handling for debug manager
|
||||
|
||||
|
372
ide/main.pp
372
ide/main.pp
@ -23,7 +23,7 @@
|
||||
top level functions of the IDE.
|
||||
|
||||
|
||||
Initial Revision : Sun Mar 28 23:15:32 CST 1999
|
||||
Initial Revision : Sun Mar 28 23:15:32 CST 1999
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
@ -115,31 +115,31 @@ type
|
||||
TMainIDE = class(TMainIDEBase)
|
||||
// event handlers
|
||||
|
||||
//procedure FormShow(Sender : TObject);
|
||||
procedure MainIDEFormClose(Sender : TObject; var CloseAction: TCloseAction);
|
||||
procedure MainIDEFormCloseQuery(Sender : TObject; var CanClose: boolean);
|
||||
//procedure FormPaint(Sender : TObject);
|
||||
//procedure FormShow(Sender: TObject);
|
||||
procedure MainIDEFormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
procedure MainIDEFormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
//procedure FormPaint(Sender: TObject);
|
||||
procedure OnApplicationUserInput(Sender: TObject; Msg: Cardinal);
|
||||
procedure OnApplicationIdle(Sender: TObject);
|
||||
procedure OnScreenRemoveForm(Sender: TObject; AForm: TCustomForm);
|
||||
|
||||
// file menu
|
||||
procedure mnuNewUnitClicked(Sender : TObject);
|
||||
procedure mnuNewFormClicked(Sender : TObject);
|
||||
procedure mnuNewOtherClicked(Sender : TObject);
|
||||
procedure mnuOpenClicked(Sender : TObject);
|
||||
procedure mnuOpenRecentClicked(Sender : TObject);
|
||||
procedure mnuRevertClicked(Sender : TObject);
|
||||
procedure mnuSaveClicked(Sender : TObject);
|
||||
procedure mnuSaveAsClicked(Sender : TObject);
|
||||
procedure mnuSaveAllClicked(Sender : TObject);
|
||||
procedure mnuCloseClicked(Sender : TObject);
|
||||
procedure mnuCloseAllClicked(Sender : TObject);
|
||||
procedure mnuCleanDirectoryClicked(Sender : TObject);
|
||||
procedure mnuNewUnitClicked(Sender: TObject);
|
||||
procedure mnuNewFormClicked(Sender: TObject);
|
||||
procedure mnuNewOtherClicked(Sender: TObject);
|
||||
procedure mnuOpenClicked(Sender: TObject);
|
||||
procedure mnuOpenRecentClicked(Sender: TObject);
|
||||
procedure mnuRevertClicked(Sender: TObject);
|
||||
procedure mnuSaveClicked(Sender: TObject);
|
||||
procedure mnuSaveAsClicked(Sender: TObject);
|
||||
procedure mnuSaveAllClicked(Sender: TObject);
|
||||
procedure mnuCloseClicked(Sender: TObject);
|
||||
procedure mnuCloseAllClicked(Sender: TObject);
|
||||
procedure mnuCleanDirectoryClicked(Sender: TObject);
|
||||
{$IFDEF UseStartLazarus}
|
||||
procedure mnuRestartClicked(Sender : TObject);
|
||||
procedure mnuRestartClicked(Sender: TObject);
|
||||
{$ENDIF}
|
||||
procedure mnuQuitClicked(Sender : TObject);
|
||||
procedure mnuQuitClicked(Sender: TObject);
|
||||
|
||||
// edit menu
|
||||
procedure mnuEditUndoClicked(Sender: TObject);
|
||||
@ -191,83 +191,84 @@ type
|
||||
procedure mnuSearchFindBlockOtherEnd(Sender: TObject);
|
||||
procedure mnuSearchFindBlockStart(Sender: TObject);
|
||||
procedure mnuSearchFindDeclaration(Sender: TObject);
|
||||
procedure mnuFindDeclarationClicked(Sender : TObject);
|
||||
procedure mnuOpenFileAtCursorClicked(Sender : TObject);
|
||||
procedure mnuGotoIncludeDirectiveClicked(Sender : TObject);
|
||||
procedure mnuFindDeclarationClicked(Sender: TObject);
|
||||
procedure mnuOpenFileAtCursorClicked(Sender: TObject);
|
||||
procedure mnuGotoIncludeDirectiveClicked(Sender: TObject);
|
||||
|
||||
// view menu
|
||||
procedure mnuViewInspectorClicked(Sender : TObject);
|
||||
procedure mnuViewSourceEditorClicked(Sender : TObject);
|
||||
procedure mnuViewUnitsClicked(Sender : TObject);
|
||||
procedure mnuViewFormsClicked(Sender : TObject);
|
||||
procedure mnuViewUnitDependenciesClicked(Sender : TObject);
|
||||
procedure mnuViewUnitInfoClicked(Sender : TObject);
|
||||
procedure mnuViewCodeExplorerClick(Sender : TObject);
|
||||
procedure mnuViewMessagesClick(Sender : TObject);
|
||||
procedure mnuViewSearchResultsClick(Sender : TObject);
|
||||
procedure mnuToggleFormUnitClicked(Sender : TObject);
|
||||
procedure mnuViewInspectorClicked(Sender: TObject);
|
||||
procedure mnuViewSourceEditorClicked(Sender: TObject);
|
||||
procedure mnuViewUnitsClicked(Sender: TObject);
|
||||
procedure mnuViewFormsClicked(Sender: TObject);
|
||||
procedure mnuViewUnitDependenciesClicked(Sender: TObject);
|
||||
procedure mnuViewUnitInfoClicked(Sender: TObject);
|
||||
procedure mnuViewCodeExplorerClick(Sender: TObject);
|
||||
procedure mnuViewMessagesClick(Sender: TObject);
|
||||
procedure mnuViewSearchResultsClick(Sender: TObject);
|
||||
procedure mnuToggleFormUnitClicked(Sender: TObject);
|
||||
|
||||
// project menu
|
||||
procedure mnuNewProjectClicked(Sender : TObject);
|
||||
procedure mnuNewProjectFromFileClicked(Sender : TObject);
|
||||
procedure mnuOpenProjectClicked(Sender : TObject);
|
||||
procedure mnuSaveProjectClicked(Sender : TObject);
|
||||
procedure mnuSaveProjectAsClicked(Sender : TObject);
|
||||
procedure mnuPublishProjectClicked(Sender : TObject);
|
||||
procedure mnuProjectInspectorClicked(Sender : TObject);
|
||||
procedure mnuAddToProjectClicked(Sender : TObject);
|
||||
procedure mnuRemoveFromProjectClicked(Sender : TObject);
|
||||
procedure mnuViewProjectSourceClicked(Sender : TObject);
|
||||
procedure mnuViewProjectTodosClicked(Sender : TObject);
|
||||
procedure mnuProjectOptionsClicked(Sender : TObject);
|
||||
procedure mnuNewProjectClicked(Sender: TObject);
|
||||
procedure mnuNewProjectFromFileClicked(Sender: TObject);
|
||||
procedure mnuOpenProjectClicked(Sender: TObject);
|
||||
procedure mnuSaveProjectClicked(Sender: TObject);
|
||||
procedure mnuSaveProjectAsClicked(Sender: TObject);
|
||||
procedure mnuPublishProjectClicked(Sender: TObject);
|
||||
procedure mnuProjectInspectorClicked(Sender: TObject);
|
||||
procedure mnuAddToProjectClicked(Sender: TObject);
|
||||
procedure mnuRemoveFromProjectClicked(Sender: TObject);
|
||||
procedure mnuViewProjectSourceClicked(Sender: TObject);
|
||||
procedure mnuViewProjectTodosClicked(Sender: TObject);
|
||||
procedure mnuProjectOptionsClicked(Sender: TObject);
|
||||
|
||||
// run menu
|
||||
procedure mnuBuildProjectClicked(Sender : TObject);
|
||||
procedure mnuBuildAllProjectClicked(Sender : TObject);
|
||||
procedure mnuAbortBuildProjectClicked(Sender : TObject);
|
||||
procedure mnuRunProjectClicked(Sender : TObject);
|
||||
procedure mnuPauseProjectClicked(Sender : TObject);
|
||||
procedure mnuStepIntoProjectClicked(Sender : TObject);
|
||||
procedure mnuStepOverProjectClicked(Sender : TObject);
|
||||
procedure mnuRunToCursorProjectClicked(Sender : TObject);
|
||||
procedure mnuStopProjectClicked(Sender : TObject);
|
||||
procedure mnuRunParametersClicked(Sender : TObject);
|
||||
procedure mnuProjectCompilerSettingsClicked(Sender : TObject);
|
||||
procedure mnuBuildFileClicked(Sender : TObject);
|
||||
procedure mnuRunFileClicked(Sender : TObject);
|
||||
procedure mnuConfigBuildFileClicked(Sender : TObject);
|
||||
procedure mnuBuildProjectClicked(Sender: TObject);
|
||||
procedure mnuBuildAllProjectClicked(Sender: TObject);
|
||||
procedure mnuAbortBuildProjectClicked(Sender: TObject);
|
||||
procedure mnuRunProjectClicked(Sender: TObject);
|
||||
procedure mnuPauseProjectClicked(Sender: TObject);
|
||||
procedure mnuStepIntoProjectClicked(Sender: TObject);
|
||||
procedure mnuStepOverProjectClicked(Sender: TObject);
|
||||
procedure mnuRunToCursorProjectClicked(Sender: TObject);
|
||||
procedure mnuStopProjectClicked(Sender: TObject);
|
||||
procedure mnuRunParametersClicked(Sender: TObject);
|
||||
procedure mnuProjectCompilerSettingsClicked(Sender: TObject);
|
||||
procedure mnuBuildFileClicked(Sender: TObject);
|
||||
procedure mnuRunFileClicked(Sender: TObject);
|
||||
procedure mnuConfigBuildFileClicked(Sender: TObject);
|
||||
|
||||
// components menu
|
||||
// see pkgmanager.pas
|
||||
|
||||
// tools menu
|
||||
procedure mnuToolConfigureClicked(Sender : TObject);
|
||||
procedure mnuToolSyntaxCheckClicked(Sender : TObject);
|
||||
procedure mnuToolGuessUnclosedBlockClicked(Sender : TObject);
|
||||
procedure mnuToolGuessMisplacedIFDEFClicked(Sender : TObject);
|
||||
procedure mnuToolMakeResourceStringClicked(Sender : TObject);
|
||||
procedure mnuToolDiffClicked(Sender : TObject);
|
||||
procedure mnuToolConvertDFMtoLFMClicked(Sender : TObject);
|
||||
procedure mnuToolConfigureClicked(Sender: TObject);
|
||||
procedure mnuToolSyntaxCheckClicked(Sender: TObject);
|
||||
procedure mnuToolGuessUnclosedBlockClicked(Sender: TObject);
|
||||
procedure mnuToolGuessMisplacedIFDEFClicked(Sender: TObject);
|
||||
procedure mnuToolMakeResourceStringClicked(Sender: TObject);
|
||||
procedure mnuToolDiffClicked(Sender: TObject);
|
||||
procedure mnuToolConvertDFMtoLFMClicked(Sender: TObject);
|
||||
procedure mnuToolCheckLFMClicked(Sender: TObject);
|
||||
procedure mnuToolConvertDelphiUnitClicked(Sender: TObject);
|
||||
procedure mnuToolConvertDelphiProjectClicked(Sender: TObject);
|
||||
procedure mnuToolBuildLazarusClicked(Sender : TObject);
|
||||
procedure mnuToolConfigBuildLazClicked(Sender : TObject);
|
||||
procedure mnuCustomExtToolClick(Sender : TObject);
|
||||
procedure mnuToolBuildLazarusClicked(Sender: TObject);
|
||||
procedure mnuToolConfigBuildLazClicked(Sender: TObject);
|
||||
procedure mnuCustomExtToolClick(Sender: TObject);
|
||||
|
||||
// environment menu
|
||||
procedure mnuEnvGeneralOptionsClicked(Sender : TObject);
|
||||
procedure mnuEnvEditorOptionsClicked(Sender : TObject);
|
||||
procedure mnuEnvCodeToolsOptionsClicked(Sender : TObject);
|
||||
procedure mnuEnvCodeToolsDefinesEditorClicked(Sender : TObject);
|
||||
procedure mnuEnvRescanFPCSrcDirClicked(Sender : TObject);
|
||||
procedure mnuEnvGeneralOptionsClicked(Sender: TObject);
|
||||
procedure mnuEnvEditorOptionsClicked(Sender: TObject);
|
||||
procedure mnuEnvCodeToolsOptionsClicked(Sender: TObject);
|
||||
procedure mnuEnvCodeToolsDefinesEditorClicked(Sender: TObject);
|
||||
procedure mnuEnvRescanFPCSrcDirClicked(Sender: TObject);
|
||||
|
||||
// windows menu
|
||||
|
||||
// help menu
|
||||
// see HelpManager.pas
|
||||
// see helpmanager.pas
|
||||
|
||||
procedure OpenFileDownArrowClicked(Sender : TObject);
|
||||
procedure mnuOpenFilePopupClick(Sender : TObject);
|
||||
procedure OpenFileDownArrowClicked(Sender: TObject);
|
||||
procedure mnuOpenFilePopupClick(Sender: TObject);
|
||||
|
||||
public
|
||||
// Global IDE events
|
||||
@ -284,31 +285,31 @@ type
|
||||
procedure DoShowEnvGeneralOptions(StartPage: TEnvOptsDialogPage);
|
||||
|
||||
// SourceNotebook events
|
||||
procedure OnSrcNoteBookActivated(Sender : TObject);
|
||||
procedure OnSrcNoteBookActivated(Sender: TObject);
|
||||
procedure OnSrcNoteBookAddJumpPoint(ACaretXY: TPoint; ATopLine: integer;
|
||||
APageIndex: integer; DeleteForwardHistory: boolean);
|
||||
procedure OnSrcNoteBookCtrlMouseUp(Sender : TObject;
|
||||
Button : TMouseButton; Shift: TShiftstate; X, Y: Integer);
|
||||
procedure OnSrcNoteBookCtrlMouseUp(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftstate; X, Y: Integer);
|
||||
procedure OnSrcNotebookDeleteLastJumPoint(Sender: TObject);
|
||||
procedure OnSrcNotebookEditorVisibleChanged(Sender : TObject);
|
||||
procedure OnSrcNotebookEditorChanged(Sender : TObject);
|
||||
procedure OnSrcNotebookFileNew(Sender : TObject);
|
||||
procedure OnSrcNotebookFileOpen(Sender : TObject);
|
||||
procedure OnSrcNotebookFileOpenAtCursor(Sender : TObject);
|
||||
procedure OnSrcNotebookFileSave(Sender : TObject);
|
||||
procedure OnSrcNotebookFileSaveAs(Sender : TObject);
|
||||
procedure OnSrcNotebookFileClose(Sender : TObject);
|
||||
procedure OnSrcNotebookFindDeclaration(Sender : TObject);
|
||||
procedure OnSrcNotebookEditorVisibleChanged(Sender: TObject);
|
||||
procedure OnSrcNotebookEditorChanged(Sender: TObject);
|
||||
procedure OnSrcNotebookFileNew(Sender: TObject);
|
||||
procedure OnSrcNotebookFileOpen(Sender: TObject);
|
||||
procedure OnSrcNotebookFileOpenAtCursor(Sender: TObject);
|
||||
procedure OnSrcNotebookFileSave(Sender: TObject);
|
||||
procedure OnSrcNotebookFileSaveAs(Sender: TObject);
|
||||
procedure OnSrcNotebookFileClose(Sender: TObject);
|
||||
procedure OnSrcNotebookFindDeclaration(Sender: TObject);
|
||||
procedure OnSrcNotebookInitIdentCompletion(Sender: TObject;
|
||||
var Handled, Abort: boolean);
|
||||
procedure OnSrcNotebookJumpToHistoryPoint(var NewCaretXY: TPoint;
|
||||
var NewTopLine, NewPageIndex: integer; JumpAction: TJumpHistoryAction);
|
||||
procedure OnSrcNotebookMovingPage(Sender: TObject;
|
||||
OldPageIndex, NewPageIndex: integer);
|
||||
procedure OnSrcNotebookReadOnlyChanged(Sender : TObject);
|
||||
procedure OnSrcNotebookSaveAll(Sender : TObject);
|
||||
procedure OnSrcNotebookReadOnlyChanged(Sender: TObject);
|
||||
procedure OnSrcNotebookSaveAll(Sender: TObject);
|
||||
procedure OnSrcNotebookShowHintForSource(SrcEdit: TSourceEditor;
|
||||
ClientPos: TPoint; CaretPos: TPoint);
|
||||
ClientPos: TPoint; CaretPos: TPoint);
|
||||
procedure OnSrcNoteBookShowUnitInfo(Sender: TObject);
|
||||
procedure OnSrcNotebookToggleFormUnit(Sender: TObject);
|
||||
procedure OnSrcNotebookToggleObjectInsp(Sender: TObject);
|
||||
@ -322,8 +323,9 @@ type
|
||||
Shift: TShiftState);
|
||||
procedure OnPropHookGetMethods(TypeData:PTypeData; Proc:TGetStringProc);
|
||||
function OnPropHookMethodExists(const AMethodName:ShortString;
|
||||
TypeData: PTypeData;
|
||||
var MethodIsCompatible,MethodIsPublished,IdentIsMethod: boolean):boolean;
|
||||
TypeData: PTypeData;
|
||||
var MethodIsCompatible, MethodIsPublished,
|
||||
IdentIsMethod: boolean): boolean;
|
||||
function OnPropHookCreateMethod(const AMethodName:ShortString;
|
||||
ATypeInfo:PTypeInfo): TMethod;
|
||||
procedure OnPropHookShowMethod(const AMethodName:ShortString);
|
||||
@ -338,7 +340,7 @@ type
|
||||
|
||||
// designer events
|
||||
procedure OnDesignerGetSelectedComponentClass(Sender: TObject;
|
||||
var RegisteredComponent: TRegisteredComponent);
|
||||
var RegisteredComponent: TRegisteredComponent);
|
||||
procedure OnDesignerUnselectComponentClass(Sender: TObject);
|
||||
procedure OnDesignerSetDesigning(Sender: TObject; Component: TComponent;
|
||||
Value: boolean);
|
||||
@ -363,14 +365,14 @@ type
|
||||
procedure OnControlSelectionChanged(Sender: TObject);
|
||||
procedure OnControlSelectionPropsChanged(Sender: TObject);
|
||||
procedure OnControlSelectionFormChanged(Sender: TObject; OldForm,
|
||||
NewForm: TCustomForm);
|
||||
NewForm: TCustomForm);
|
||||
|
||||
// project inspector
|
||||
procedure ProjInspectorOpen(Sender: TObject);
|
||||
function ProjInspectorAddUnitToProject(Sender: TObject;
|
||||
AnUnitInfo: TUnitInfo): TModalresult;
|
||||
AnUnitInfo: TUnitInfo): TModalresult;
|
||||
function ProjInspectorRemoveFile(Sender: TObject;
|
||||
AnUnitInfo: TUnitInfo): TModalresult;
|
||||
AnUnitInfo: TUnitInfo): TModalresult;
|
||||
|
||||
// compiler options dialog events
|
||||
procedure OnCompilerOptionsDialogTest(Sender: TObject);
|
||||
@ -379,9 +381,9 @@ type
|
||||
// unit dependencies events
|
||||
procedure UnitDependenciesViewAccessingSources(Sender: TObject);
|
||||
function UnitDependenciesViewGetProjectMainFilename(
|
||||
Sender: TObject): string;
|
||||
Sender: TObject): string;
|
||||
procedure UnitDependenciesViewOpenFile(Sender: TObject;
|
||||
const Filename: string);
|
||||
const Filename: string);
|
||||
|
||||
// code explorer events
|
||||
procedure OnCodeExplorerGetCodeTree(Sender: TObject;
|
||||
@ -413,10 +415,10 @@ type
|
||||
procedure OnCompilerGraphStampIncreased;
|
||||
|
||||
// MessagesView events
|
||||
procedure MessagesViewSelectionChanged(sender : TObject);
|
||||
procedure MessagesViewSelectionChanged(sender: TObject);
|
||||
|
||||
//SearchResultsView events
|
||||
procedure SearchResultsViewSelectionChanged(sender : TObject);
|
||||
procedure SearchResultsViewSelectionChanged(sender: TObject);
|
||||
|
||||
// External Tools events
|
||||
procedure OnExtToolNeedsOutputFilter(var OutputFilter: TOutputFilter;
|
||||
@ -424,9 +426,9 @@ type
|
||||
procedure OnExtToolFreeOutputFilter(OutputFilter: TOutputFilter;
|
||||
ErrorOccurred: boolean);
|
||||
private
|
||||
FDisplayState : TDisplayState;
|
||||
FLastFormActivated : TCustomForm;// used to find the last form so you can
|
||||
// display the correct tab
|
||||
FDisplayState: TDisplayState;
|
||||
FLastFormActivated: TCustomForm;// used to find the last form so you can
|
||||
// display the correct tab
|
||||
FOpenEditorsOnCodeToolChange: boolean;
|
||||
|
||||
FRunProcess: TProcess; // temp solution, will be replaced by dummydebugger
|
||||
@ -523,9 +525,9 @@ type
|
||||
|
||||
// methods for publish project
|
||||
procedure OnCopyFile(const Filename: string; var Copy: boolean;
|
||||
Data: TObject);
|
||||
Data: TObject);
|
||||
procedure OnCopyError(const ErrorData: TCopyErrorData;
|
||||
var Handled: boolean; Data: TObject);
|
||||
var Handled: boolean; Data: TObject);
|
||||
|
||||
public
|
||||
CustomExtToolMenuSeparator: TMenuItem;
|
||||
@ -746,7 +748,7 @@ type
|
||||
procedure DoBringToFrontFormOrInspector;
|
||||
procedure DoShowDesignerFormOfCurrentSrc;
|
||||
procedure DoShowSourceOfActiveDesignerForm;
|
||||
procedure SetDesigning(AComponent: TComponent; Value : Boolean);
|
||||
procedure SetDesigning(AComponent: TComponent; Value: Boolean);
|
||||
procedure CreateDesignerForComponent(AComponent: TComponent);
|
||||
procedure InvalidateAllDesignerForms;
|
||||
procedure UpdateIDEComponentPalette;
|
||||
@ -1112,14 +1114,14 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.ToolButtonClick(Sender : TObject);
|
||||
Procedure TMainIDE.ToolButtonClick(Sender: TObject);
|
||||
Begin
|
||||
Assert(False, 'Trace:TOOL BUTTON CLICK!');
|
||||
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
procedure TMainIDE.MainIDEFormClose(Sender : TObject;
|
||||
procedure TMainIDE.MainIDEFormClose(Sender: TObject;
|
||||
var CloseAction: TCloseAction);
|
||||
begin
|
||||
SaveEnvironment;
|
||||
@ -1130,7 +1132,7 @@ begin
|
||||
if SourceNoteBook<>nil then SourceNoteBook.ClearUnUsedEditorComponents(true);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.MainIDEFormCloseQuery(Sender : TObject;
|
||||
procedure TMainIDE.MainIDEFormCloseQuery(Sender: TObject;
|
||||
var CanClose: boolean);
|
||||
var
|
||||
MsgResult: integer;
|
||||
@ -1179,7 +1181,7 @@ procedure TMainIDE.SetupSpeedButtons;
|
||||
|
||||
function CreateButton(const AName, APixName: String; ANumGlyphs: Integer;
|
||||
var ALeft, ATop: Integer; const AMoveFlags: TMoveFlags;
|
||||
const AOnClick: TNotifyEvent; const AHint : String): TSpeedButton;
|
||||
const AOnClick: TNotifyEvent; const AHint: String): TSpeedButton;
|
||||
begin
|
||||
Result := TSpeedButton.Create(OwningComponent);
|
||||
with Result do
|
||||
@ -1786,30 +1788,30 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
|
||||
procedure TMainIDE.mnuToggleFormUnitClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToggleFormUnitClicked(Sender: TObject);
|
||||
begin
|
||||
DoBringToFrontFormOrUnit;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.SetDesigning(AComponent: TComponent; Value : Boolean);
|
||||
Procedure TMainIDE.SetDesigning(AComponent: TComponent; Value: Boolean);
|
||||
Begin
|
||||
AComponent.SetDesigning(Value);
|
||||
if Value then InterfaceObject.SetDesigning(AComponent);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
procedure TMainIDE.mnuFindDeclarationClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuFindDeclarationClicked(Sender: TObject);
|
||||
begin
|
||||
if SourceNoteBook.NoteBook=nil then exit;
|
||||
DoFindDeclarationAtCursor;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuNewUnitClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuNewUnitClicked(Sender: TObject);
|
||||
begin
|
||||
DoNewEditorFile(FileDescriptorUnit,'','',[nfOpenInEditor,nfCreateDefaultSrc]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuNewFormClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuNewFormClicked(Sender: TObject);
|
||||
begin
|
||||
DoNewEditorFile(FileDescriptorForm,'','',[nfOpenInEditor,nfCreateDefaultSrc]);
|
||||
end;
|
||||
@ -1819,7 +1821,7 @@ begin
|
||||
DoNewOther;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuOpenClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuOpenClicked(Sender: TObject);
|
||||
|
||||
procedure UpdateEnvironment;
|
||||
begin
|
||||
@ -1885,42 +1887,42 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuRevertClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuRevertClicked(Sender: TObject);
|
||||
begin
|
||||
if SourceNoteBook.NoteBook=nil then exit;
|
||||
DoOpenEditorFile('',SourceNoteBook.NoteBook.PageIndex,[ofRevert]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuOpenFileAtCursorClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuOpenFileAtCursorClicked(Sender: TObject);
|
||||
begin
|
||||
if SourceNoteBook.NoteBook=nil then exit;
|
||||
DoOpenFileAtCursor(Sender);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuGotoIncludeDirectiveClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuGotoIncludeDirectiveClicked(Sender: TObject);
|
||||
begin
|
||||
DoGotoIncludeDirective;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuSaveClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuSaveClicked(Sender: TObject);
|
||||
begin
|
||||
if SourceNoteBook.NoteBook=nil then exit;
|
||||
DoSaveEditorFile(SourceNoteBook.NoteBook.PageIndex,[sfCheckAmbigiousFiles]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuSaveAsClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuSaveAsClicked(Sender: TObject);
|
||||
begin
|
||||
if SourceNoteBook.NoteBook=nil then exit;
|
||||
DoSaveEditorFile(SourceNoteBook.NoteBook.PageIndex,
|
||||
[sfSaveAs,sfCheckAmbigiousFiles]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuSaveAllClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuSaveAllClicked(Sender: TObject);
|
||||
begin
|
||||
DoSaveAll([sfCheckAmbigiousFiles]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuCloseClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuCloseClicked(Sender: TObject);
|
||||
var PageIndex: integer;
|
||||
begin
|
||||
if SourceNoteBook.NoteBook=nil then exit;
|
||||
@ -1934,7 +1936,7 @@ begin
|
||||
DoCloseEditorFile(PageIndex,[cfSaveFirst]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuCloseAllClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuCloseAllClicked(Sender: TObject);
|
||||
begin
|
||||
DoSaveAll([]);
|
||||
while (SourceNoteBook.NoteBook<>nil)
|
||||
@ -1947,37 +1949,37 @@ begin
|
||||
ShowCleanDirectoryDialog(Project1.ProjectDirectory,MacroList);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookFileNew(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookFileNew(Sender: TObject);
|
||||
begin
|
||||
mnuNewFormClicked(Sender);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookFileClose(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookFileClose(Sender: TObject);
|
||||
begin
|
||||
mnuCloseClicked(Sender);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookFileOpen(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookFileOpen(Sender: TObject);
|
||||
begin
|
||||
mnuOpenClicked(Sender);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNoteBookFileOpenAtCursor(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNoteBookFileOpenAtCursor(Sender: TObject);
|
||||
begin
|
||||
mnuOpenFileAtCursorClicked(Sender);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookFileSave(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookFileSave(Sender: TObject);
|
||||
begin
|
||||
mnuSaveClicked(Sender);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookFileSaveAs(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookFileSaveAs(Sender: TObject);
|
||||
begin
|
||||
mnuSaveAsClicked(Sender);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNoteBookFindDeclaration(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNoteBookFindDeclaration(Sender: TObject);
|
||||
begin
|
||||
mnuFindDeclarationClicked(Sender);
|
||||
end;
|
||||
@ -1989,12 +1991,12 @@ begin
|
||||
Abort:=not DoInitIdentCompletion;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookSaveAll(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookSaveAll(Sender: TObject);
|
||||
begin
|
||||
mnuSaveAllClicked(Sender);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNotebookToggleFormUnit(Sender : TObject);
|
||||
procedure TMainIDE.OnSrcNotebookToggleFormUnit(Sender: TObject);
|
||||
begin
|
||||
mnuToggleFormUnitClicked(Sender);
|
||||
end;
|
||||
@ -2179,7 +2181,7 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
|
||||
Procedure TMainIDE.OpenFileDownArrowClicked(Sender : TObject);
|
||||
Procedure TMainIDE.OpenFileDownArrowClicked(Sender: TObject);
|
||||
var
|
||||
CurIndex: integer;
|
||||
PopupPos: TPoint;
|
||||
@ -2382,7 +2384,7 @@ begin
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
procedure TMainIDE.mnuQuitClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuQuitClicked(Sender: TObject);
|
||||
var CanClose: boolean;
|
||||
begin
|
||||
CanClose:=true;
|
||||
@ -2397,7 +2399,7 @@ begin
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
procedure TMainIDE.mnuViewInspectorClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuViewInspectorClicked(Sender: TObject);
|
||||
begin
|
||||
DoBringToFrontFormOrInspector;
|
||||
end;
|
||||
@ -2409,17 +2411,17 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
|
||||
Procedure TMainIDE.mnuViewUnitsClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuViewUnitsClicked(Sender: TObject);
|
||||
begin
|
||||
DoViewUnitsAndForms(false);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuViewFormsClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuViewFormsClicked(Sender: TObject);
|
||||
Begin
|
||||
DoViewUnitsAndForms(true);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuViewUnitDependenciesClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuViewUnitDependenciesClicked(Sender: TObject);
|
||||
begin
|
||||
DoViewUnitDependencies;
|
||||
end;
|
||||
@ -2429,17 +2431,17 @@ begin
|
||||
DoViewUnitInfo;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuViewCodeExplorerClick(Sender : TObject);
|
||||
Procedure TMainIDE.mnuViewCodeExplorerClick(Sender: TObject);
|
||||
begin
|
||||
DoShowCodeExplorer;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuViewMessagesClick(Sender : TObject);
|
||||
Procedure TMainIDE.mnuViewMessagesClick(Sender: TObject);
|
||||
Begin
|
||||
MessagesView.ShowOnTop;
|
||||
End;
|
||||
|
||||
Procedure TMainIDE.mnuViewSearchResultsClick(Sender : TObject);
|
||||
Procedure TMainIDE.mnuViewSearchResultsClick(Sender: TObject);
|
||||
Begin
|
||||
CreateSearchResultWindow;
|
||||
SearchResultsView.ShowOnTop;
|
||||
@ -2449,7 +2451,7 @@ End;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
|
||||
Procedure TMainIDE.mnuNewProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuNewProjectClicked(Sender: TObject);
|
||||
var
|
||||
NewProjectDesc: TProjectDescriptor;
|
||||
Begin
|
||||
@ -2491,7 +2493,7 @@ Begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuOpenProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuOpenProjectClicked(Sender: TObject);
|
||||
var
|
||||
OpenDialog:TOpenDialog;
|
||||
AFileName: string;
|
||||
@ -2524,12 +2526,12 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuSaveProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuSaveProjectClicked(Sender: TObject);
|
||||
Begin
|
||||
DoSaveProject([]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuSaveProjectAsClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuSaveProjectAsClicked(Sender: TObject);
|
||||
begin
|
||||
DoSaveProject([sfSaveAs]);
|
||||
end;
|
||||
@ -2544,17 +2546,17 @@ begin
|
||||
DoShowProjectInspector;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuAddToProjectClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuAddToProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DoAddActiveUnitToProject;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuRemoveFromProjectClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuRemoveFromProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DoRemoveFromProjectDialog;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuViewProjectSourceClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuViewProjectSourceClicked(Sender: TObject);
|
||||
begin
|
||||
DoOpenMainUnit(false);
|
||||
end;
|
||||
@ -2564,7 +2566,7 @@ begin
|
||||
DoShowToDoList;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuProjectOptionsClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuProjectOptionsClicked(Sender: TObject);
|
||||
var
|
||||
ActiveSrcEdit: TSourceEditor;
|
||||
ActiveUnitInfo: TUnitInfo;
|
||||
@ -2575,52 +2577,52 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuBuildProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuBuildProjectClicked(Sender: TObject);
|
||||
Begin
|
||||
DoBuildProject(crCompile);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuBuildAllProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuBuildAllProjectClicked(Sender: TObject);
|
||||
Begin
|
||||
DoBuildProject(crBuild);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender: TObject);
|
||||
Begin
|
||||
DoAbortBuild;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuRunProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuRunProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DoRunProject;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuPauseProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuPauseProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DebugBoss.DoPauseProject;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuStepIntoProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuStepIntoProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DebugBoss.DoStepIntoProject;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuStepOverProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuStepOverProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DebugBoss.DoStepOverProject;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuRunToCursorProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuRunToCursorProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DebugBoss.DoRunToCursor;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.mnuStopProjectClicked(Sender : TObject);
|
||||
Procedure TMainIDE.mnuStopProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DebugBoss.DoStopProject;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuProjectCompilerSettingsClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuProjectCompilerSettingsClicked(Sender: TObject);
|
||||
var
|
||||
frmCompilerOptions: TfrmCompilerOptions;
|
||||
NewCaption: String;
|
||||
@ -2660,14 +2662,14 @@ begin
|
||||
DoConfigBuildFile;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuRunParametersClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuRunParametersClicked(Sender: TObject);
|
||||
begin
|
||||
ShowRunParamsOptsDlg(Project1.RunParameterOptions);
|
||||
end;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
procedure TMainIDE.mnuToolConfigureClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolConfigureClicked(Sender: TObject);
|
||||
begin
|
||||
if ShowExtToolDialog(EnvironmentOptions.ExternalTools,MacroList)=mrOk then
|
||||
begin
|
||||
@ -2682,32 +2684,32 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolSyntaxCheckClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolSyntaxCheckClicked(Sender: TObject);
|
||||
begin
|
||||
DoCheckSyntax;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolGuessUnclosedBlockClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolGuessUnclosedBlockClicked(Sender: TObject);
|
||||
begin
|
||||
DoJumpToGuessedUnclosedBlock(true);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolGuessMisplacedIFDEFClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolGuessMisplacedIFDEFClicked(Sender: TObject);
|
||||
begin
|
||||
DoJumpToGuessedMisplacedIFDEF(true);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolMakeResourceStringClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolMakeResourceStringClicked(Sender: TObject);
|
||||
begin
|
||||
DoMakeResourceString;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolDiffClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolDiffClicked(Sender: TObject);
|
||||
begin
|
||||
DoDiff;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolConvertDFMtoLFMClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolConvertDFMtoLFMClicked(Sender: TObject);
|
||||
begin
|
||||
DoConvertDFMtoLFM;
|
||||
end;
|
||||
@ -2779,12 +2781,12 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolBuildLazarusClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolBuildLazarusClicked(Sender: TObject);
|
||||
begin
|
||||
DoBuildLazarus([]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuToolConfigBuildLazClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuToolConfigBuildLazClicked(Sender: TObject);
|
||||
var
|
||||
CmdLineDefines: TDefineTemplate;
|
||||
LazSrcTemplate: TDefineTemplate;
|
||||
@ -2976,7 +2978,7 @@ Begin
|
||||
end;
|
||||
End;
|
||||
|
||||
procedure TMainIDE.mnuEnvEditorOptionsClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuEnvEditorOptionsClicked(Sender: TObject);
|
||||
var EditorOptionsForm: TEditorOptionsForm;
|
||||
Begin
|
||||
EditorOptionsForm:=TEditorOptionsForm.Create(Application);
|
||||
@ -2990,12 +2992,12 @@ Begin
|
||||
end;
|
||||
End;
|
||||
|
||||
procedure TMainIDE.mnuEnvCodeToolsOptionsClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuEnvCodeToolsOptionsClicked(Sender: TObject);
|
||||
begin
|
||||
ShowCodeToolsOptions(CodeToolsOpts,@SourceNoteBook.GetSynEditPreviewSettings);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuEnvCodeToolsDefinesEditorClicked(Sender : TObject);
|
||||
procedure TMainIDE.mnuEnvCodeToolsDefinesEditorClicked(Sender: TObject);
|
||||
begin
|
||||
ShowCodeToolsDefinesEditor(CodeToolBoss,CodeToolsOpts,MacroList);
|
||||
end;
|
||||
@ -3049,7 +3051,7 @@ end;
|
||||
function TMainIDE.CreateNewForm(NewUnitInfo: TUnitInfo;
|
||||
AncestorType: TPersistentClass; ResourceCode: TCodeBuffer): TModalResult;
|
||||
var
|
||||
CInterface : TComponentInterface;
|
||||
CInterface: TComponentInterface;
|
||||
NewComponent: TComponent;
|
||||
begin
|
||||
if not AncestorType.InheritsFrom(TComponent) then
|
||||
@ -5353,6 +5355,7 @@ Begin
|
||||
ProjectDesc.CreateStartFiles(Project1);
|
||||
|
||||
// rebuild codetools defines
|
||||
RescanCompilerDefines(true);
|
||||
// (i.e. remove old project specific things and create new)
|
||||
IncreaseCompilerParseStamp;
|
||||
Project1.DefineTemplates.AllChanged;
|
||||
@ -9856,19 +9859,19 @@ end;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
procedure TMainIDE.MessagesViewSelectionChanged(sender : TObject);
|
||||
procedure TMainIDE.MessagesViewSelectionChanged(sender: TObject);
|
||||
begin
|
||||
DoJumpToCompilerMessage(TMessagesView(Sender).SelectedMessageIndex,True);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.SearchResultsViewSelectionChanged(sender : TObject);
|
||||
procedure TMainIDE.SearchResultsViewSelectionChanged(sender: TObject);
|
||||
begin
|
||||
DoJumpToSearchResult(True);
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookEditorVisibleChanged(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookEditorVisibleChanged(Sender: TObject);
|
||||
var
|
||||
ActiveUnitInfo : TUnitInfo;
|
||||
ActiveUnitInfo: TUnitInfo;
|
||||
begin
|
||||
if SourceNotebook.Notebook = nil then Exit;
|
||||
|
||||
@ -9882,7 +9885,7 @@ begin
|
||||
end;
|
||||
|
||||
//this is fired when the editor is focused, changed, ?. Anything that causes the status change
|
||||
Procedure TMainIDE.OnSrcNotebookEditorChanged(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookEditorChanged(Sender: TObject);
|
||||
begin
|
||||
if SourceNotebook.Notebook = nil then Exit;
|
||||
MainIDEBar.SaveSpeedBtn.Enabled := SourceNotebook.GetActiveSE.Modified;
|
||||
@ -9949,13 +9952,13 @@ begin
|
||||
SrcEdit.ActivateHint(ClientPos,SmartHintStr);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.OnSrcNoteBookActivated(Sender : TObject);
|
||||
procedure TMainIDE.OnSrcNoteBookActivated(Sender: TObject);
|
||||
begin
|
||||
FDisplayState:= dsSource;
|
||||
DoCheckFilesOnDisk;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnDesignerActivated(Sender : TObject);
|
||||
Procedure TMainIDE.OnDesignerActivated(Sender: TObject);
|
||||
begin
|
||||
FDisplayState:= dsForm;
|
||||
FLastFormActivated := TDesigner(Sender).Form;
|
||||
@ -10246,7 +10249,7 @@ begin
|
||||
ActiveUnitInfo.UserReadOnly:=ActiveSourceEditor.ReadOnly;
|
||||
end;
|
||||
|
||||
Procedure TMainIDE.OnSrcNotebookViewJumpHistory(Sender : TObject);
|
||||
Procedure TMainIDE.OnSrcNotebookViewJumpHistory(Sender: TObject);
|
||||
begin
|
||||
// ToDo
|
||||
MessageDlg(ueNotImplCap, lisSorryNotImplementedYet, mtInformation,
|
||||
@ -10962,6 +10965,9 @@ end.
|
||||
|
||||
{ =============================================================================
|
||||
$Log$
|
||||
Revision 1.798 2004/11/24 08:18:13 mattias
|
||||
TTextStrings improvements (Exchange, Put), clean ups
|
||||
|
||||
Revision 1.797 2004/11/23 11:01:10 mattias
|
||||
added key handling for debug manager
|
||||
|
||||
|
@ -44,7 +44,7 @@ type
|
||||
function GetCount: integer; virtual; abstract;
|
||||
function GetItems(Index: integer): TNewIDEItemTemplate; virtual; abstract;
|
||||
public
|
||||
constructor Create(const AName: string); virtual; {$IFNDEF VER1_0}abstract;{$ENDIF}
|
||||
constructor Create(const AName: string); virtual;
|
||||
procedure Clear; virtual; abstract;
|
||||
procedure Add(ATemplate: TNewIDEItemTemplate); virtual; abstract;
|
||||
function LocalizedName: string; virtual; abstract;
|
||||
@ -131,16 +131,13 @@ begin
|
||||
NewIDEItems.UnregisterItem(NewItem);
|
||||
end;
|
||||
|
||||
{ TNewIDEItemCategory }
|
||||
|
||||
{$IFDEF VER1_0}
|
||||
constructor TNewIDEItemCategory.Create(const AName: string);
|
||||
//fpc 1.0 doesn't support virtual abstract constructors,
|
||||
//so we just make it virtual
|
||||
|
||||
{ TNewIDEItemCategory }
|
||||
constructor TNewIDEItemCategory.Create(const AName: string);
|
||||
begin
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
{ TNewIDEItemTemplate }
|
||||
|
||||
|
@ -26,13 +26,9 @@
|
||||
UNDER CONSTRUCTION by Mattias Gaertner
|
||||
|
||||
ToDo:
|
||||
- Exchange
|
||||
- Put
|
||||
- Sort
|
||||
- CustomSort
|
||||
- Find
|
||||
- Index
|
||||
- Add
|
||||
- Move
|
||||
- IndexOf
|
||||
}
|
||||
unit TextStrings;
|
||||
|
||||
@ -50,7 +46,7 @@ type
|
||||
StartPos: integer; // start of line in Text
|
||||
EndPos: integer; // end of line in Text (= start of newline character(s))
|
||||
Line: string; // cached line as string
|
||||
TheObject: TObject;
|
||||
TheObject: TObject; // user data
|
||||
end;
|
||||
|
||||
TTextStrings = class(TStrings)
|
||||
@ -64,6 +60,7 @@ type
|
||||
FLineRanges: ^TTextLineRange;// array of TTextLineRange
|
||||
FText: string;
|
||||
FUpdateCount: integer;
|
||||
FChangedWhileUpdate: boolean;
|
||||
function GetTextStr: string; override;
|
||||
procedure SetTextStr(const AValue: string); override;
|
||||
procedure BuildArrays; virtual;
|
||||
@ -73,6 +70,7 @@ type
|
||||
function Get(Index: Integer): string; override;
|
||||
procedure ClearArrays;
|
||||
function GetObject(Index: Integer): TObject; override;
|
||||
procedure Put(Index: Integer; const S: string); override;
|
||||
procedure PutObject(Index: Integer; AnObject: TObject); override;
|
||||
function GetLineLen(Index: integer; IncludeNewLineChars: boolean): integer;
|
||||
public
|
||||
@ -82,7 +80,14 @@ type
|
||||
procedure Insert(Index: Integer; const S: string); override;
|
||||
procedure Delete(Index: Integer); override;
|
||||
procedure Exchange(Index1, Index2: Integer); override;
|
||||
procedure Move(CurIndex, NewIndex: Integer); override;
|
||||
procedure MakeTextBufferUnique;
|
||||
procedure BeginUpdate;
|
||||
procedure EndUpdate;
|
||||
function GetText: PChar; override;
|
||||
function IndexOf(const S: string): Integer; override;
|
||||
function Add(const S: string): Integer; override;
|
||||
procedure AddStrings(TheStrings: TStrings); override;
|
||||
public
|
||||
property Text: string read FText write SetTextStr;
|
||||
property OnChange: TNotifyEvent read FOnChange write FOnChange;
|
||||
@ -167,10 +172,14 @@ begin
|
||||
end;
|
||||
|
||||
procedure TTextStrings.Changed;
|
||||
// called after text changed
|
||||
begin
|
||||
if (FUpdateCount=0) then
|
||||
if Assigned(FOnChange) then
|
||||
FOnChange(Self);
|
||||
if (FUpdateCount>0) then begin
|
||||
FChangedWhileUpdate:=true;
|
||||
exit;
|
||||
end;
|
||||
if Assigned(FOnChange) then
|
||||
FOnChange(Self);
|
||||
end;
|
||||
|
||||
procedure TTextStrings.Changing;
|
||||
@ -215,6 +224,48 @@ begin
|
||||
Result:=nil;
|
||||
end;
|
||||
|
||||
procedure TTextStrings.Put(Index: Integer; const S: string);
|
||||
var
|
||||
OldLineLen: Integer;
|
||||
NewLineLen: Integer;
|
||||
Movement: Integer;
|
||||
OldStartPos: LongInt;
|
||||
OldEndPos: LongInt;
|
||||
MoveLen: Integer;
|
||||
i: Integer;
|
||||
NewEndPos: Integer;
|
||||
begin
|
||||
if not FArraysValid then BuildArrays;
|
||||
OldStartPos:=FLineRanges[Index].StartPos;
|
||||
OldEndPos:=FLineRanges[Index].EndPos;
|
||||
NewLineLen:=length(s);
|
||||
OldLineLen:=OldEndPos-OldStartPos;
|
||||
Movement:=NewLineLen-OldLineLen;
|
||||
NewEndPos:=OldEndPos+Movement;
|
||||
// move text behind
|
||||
MoveLen:=length(FText)-OldEndPos;
|
||||
if (Movement<>0) and (MoveLen>0) then begin
|
||||
SetLength(FText,length(FText)+Movement);
|
||||
System.Move(FText[OldEndPos],FText[NewEndPos],MoveLen);
|
||||
for i:=Index+1 to FLineCount-1 do begin
|
||||
inc(FLineRanges[i].StartPos,Movement);
|
||||
inc(FLineRanges[i].EndPos,Movement);
|
||||
end;
|
||||
end;
|
||||
FLineRanges[Index].EndPos:=NewEndPos;
|
||||
// copy text
|
||||
if NewLineLen>0 then
|
||||
System.Move(S[1],FText[OldStartPos],NewLineLen);
|
||||
FLineRanges[Index].Line:=S;
|
||||
// check if arrays need rebuild
|
||||
i:=NewLineLen;
|
||||
while (i>0) and (not (S[i] in [#10,#13])) do dec(i);
|
||||
if i>0 then begin
|
||||
// S contains new line chars => rebuild needed
|
||||
FArraysValid:=false;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTextStrings.PutObject(Index: Integer; AnObject: TObject);
|
||||
begin
|
||||
if not FArraysValid then BuildArrays;
|
||||
@ -262,23 +313,29 @@ var
|
||||
NewLineCharCount: Integer;
|
||||
NewLineLen: Integer;
|
||||
i: Integer;
|
||||
SEndsInNewLine: boolean;
|
||||
begin
|
||||
if not FArraysValid then BuildArrays;
|
||||
NewLineLen:=length(S);
|
||||
SEndsInNewLine:=(S<>'') and (S[NewLineLen] in [#10,#13]);
|
||||
if Index<FLineCount then
|
||||
NewStartPos:=FLineRanges[Index].StartPos
|
||||
else
|
||||
NewStartPos:=length(FText);
|
||||
NewLineCharCount:=0;
|
||||
if (NewLineLen>0) and (S[NewLineLen] in [#10,#13]) then begin
|
||||
if SEndsInNewLine then begin
|
||||
inc(NewLineCharCount);
|
||||
if (NewLineLen>1)
|
||||
and (S[NewLineLen-1] in [#10,#13])
|
||||
and (S[NewLineLen-1]<>S[NewLineLen]) then
|
||||
inc(NewLineCharCount);
|
||||
System.Insert(S,FText,NewStartPos);
|
||||
end else begin
|
||||
// append missing newline char
|
||||
System.Insert(S+LineEnding,FText,NewStartPos);
|
||||
NewLineCharCount:=length(LineEnding);
|
||||
inc(NewLineLen,NewLineCharCount);
|
||||
end;
|
||||
// adjust text
|
||||
System.Insert(S,FText,NewStartPos);
|
||||
// adjust arrays
|
||||
if FLineCount=FLineCapacity then begin
|
||||
if FLineCapacity<8 then
|
||||
@ -289,7 +346,7 @@ begin
|
||||
end;
|
||||
if Index<FLineCount then begin
|
||||
System.Move(FLineRanges[Index],FLineRanges[Index+1],
|
||||
(FLineCount-Index)*SizeOf(TTextLineRange));
|
||||
(FLineCount-Index)*SizeOf(TTextLineRange));
|
||||
for i:=Index+1 to FLineCount do begin
|
||||
inc(FLineRanges[i].StartPos,NewLineLen);
|
||||
inc(FLineRanges[i].EndPos,NewLineLen);
|
||||
@ -327,19 +384,113 @@ begin
|
||||
end;
|
||||
|
||||
procedure TTextStrings.Exchange(Index1, Index2: Integer);
|
||||
|
||||
procedure RaiseIndex1Neg;
|
||||
begin
|
||||
raise Exception.Create('TTextStrings.Exchange Index1<=0');
|
||||
end;
|
||||
|
||||
procedure RaiseIndex2Neg;
|
||||
begin
|
||||
raise Exception.Create('TTextStrings.Exchange Index2<=0');
|
||||
end;
|
||||
|
||||
procedure RaiseIndex1Big;
|
||||
begin
|
||||
raise Exception.Create('TTextStrings.Exchange Index1>=FLineCount');
|
||||
end;
|
||||
|
||||
procedure RaiseIndex2Big;
|
||||
begin
|
||||
raise Exception.Create('TTextStrings.Exchange Index2>=FLineCount');
|
||||
end;
|
||||
|
||||
var
|
||||
LineLen1: Integer;
|
||||
LineLen2: Integer;
|
||||
buf: Pointer;
|
||||
Dummy: Integer;
|
||||
OldBetweenStart: Integer;
|
||||
NewBetweenStart: Integer;
|
||||
BetweenLength: Integer;
|
||||
StartPos1: LongInt;
|
||||
StartPos2: LongInt;
|
||||
DummyRange: TTextLineRange;
|
||||
i: Integer;
|
||||
Movement: Integer;
|
||||
begin
|
||||
// check values
|
||||
if Index1=Index2 then exit;
|
||||
if Index1<=0 then RaiseIndex1Neg;
|
||||
if Index2<=0 then RaiseIndex2Neg;
|
||||
if Index1>=FLineCount then RaiseIndex1Big;
|
||||
if Index2>=FLineCount then RaiseIndex2Big;
|
||||
|
||||
// make sure Index1<Index2
|
||||
if Index1>Index2 then begin
|
||||
Dummy:=Index1;
|
||||
Index1:=Index2;
|
||||
Index2:=Dummy;
|
||||
end;
|
||||
|
||||
// get line lengths including new line chars
|
||||
if not FArraysValid then BuildArrays;
|
||||
LineLen1:=GetLineLen(Index1,true);
|
||||
LineLen2:=GetLineLen(Index2,true);
|
||||
if (LineLen1<1) and (LineLen2<1) then exit;
|
||||
|
||||
// adjust text
|
||||
MakeTextBufferUnique;
|
||||
|
||||
|
||||
// save the bigger line
|
||||
StartPos1:=FLineRanges[Index1].StartPos;
|
||||
StartPos2:=FLineRanges[Index2].StartPos;
|
||||
if LineLen1>=LineLen2 then begin
|
||||
GetMem(buf,LineLen1);
|
||||
System.Move(FText[StartPos1],buf^,LineLen1);
|
||||
end else begin
|
||||
GetMem(buf,LineLen2);
|
||||
System.Move(FText[StartPos2],buf^,LineLen2);
|
||||
end;
|
||||
|
||||
// move text in between
|
||||
OldBetweenStart:=StartPos1+LineLen1;
|
||||
BetweenLength:=StartPos2-OldBetweenStart;
|
||||
NewBetweenStart:=StartPos1+LineLen2;
|
||||
if (BetweenLength>0) and (OldBetweenStart<>NewBetweenStart) then
|
||||
System.Move(FText[OldBetweenStart],FText[NewBetweenStart],BetweenLength);
|
||||
|
||||
// move both lines
|
||||
if LineLen1>=LineLen2 then begin
|
||||
System.Move(FText[StartPos2],FText[StartPos1],LineLen2);
|
||||
System.Move(buf^,FText[StartPos2],LineLen1);
|
||||
end else begin
|
||||
System.Move(FText[StartPos1],FText[StartPos2],LineLen1);
|
||||
System.Move(buf^,FText[StartPos1],LineLen2);
|
||||
end;
|
||||
|
||||
// adjust line ranges
|
||||
if LineLen1<>LineLen2 then begin
|
||||
System.Move(FLineRanges[Index1],DummyRange,SizeOf(TTextLineRange));
|
||||
System.Move(FLineRanges[Index2],FLineRanges[Index1],SizeOf(TTextLineRange));
|
||||
System.Move(DummyRange,FLineRanges[Index2],SizeOf(TTextLineRange));
|
||||
if (BetweenLength>0) and (OldBetweenStart<>NewBetweenStart) then begin
|
||||
Movement:=NewBetweenStart-OldBetweenStart;
|
||||
for i:=Index1+1 to Index2-1 do begin
|
||||
inc(FLineRanges[i].StartPos,Movement);
|
||||
inc(FLineRanges[i].EndPos,Movement);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// clean up
|
||||
FreeMem(buf);
|
||||
end;
|
||||
|
||||
procedure TTextStrings.Move(CurIndex, NewIndex: Integer);
|
||||
begin
|
||||
// TODO
|
||||
inherited Move(CurIndex, NewIndex);
|
||||
end;
|
||||
|
||||
procedure TTextStrings.MakeTextBufferUnique;
|
||||
@ -348,5 +499,49 @@ begin
|
||||
UniqueString(FText);
|
||||
end;
|
||||
|
||||
procedure TTextStrings.BeginUpdate;
|
||||
begin
|
||||
inc(FUpdateCount);
|
||||
end;
|
||||
|
||||
procedure TTextStrings.EndUpdate;
|
||||
begin
|
||||
if FUpdateCount<=0 then
|
||||
raise Exception.Create('TTextStrings.EndUpdate');
|
||||
dec(FUpdateCount);
|
||||
if FUpdateCount=0 then begin
|
||||
if FChangedWhileUpdate then
|
||||
Changed;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TTextStrings.GetText: PChar;
|
||||
begin
|
||||
Result:=PChar(FText);
|
||||
end;
|
||||
|
||||
function TTextStrings.IndexOf(const S: string): Integer;
|
||||
begin
|
||||
// TODO
|
||||
Result:=inherited IndexOf(S);
|
||||
end;
|
||||
|
||||
function TTextStrings.Add(const S: string): Integer;
|
||||
begin
|
||||
// TODO
|
||||
Result:=inherited Add(S);
|
||||
end;
|
||||
|
||||
procedure TTextStrings.AddStrings(TheStrings: TStrings);
|
||||
var
|
||||
s: String;
|
||||
begin
|
||||
if (FText<>'') and (not (FText[length(FText)] in [#10,#13])) then
|
||||
s:=LineEnding
|
||||
else
|
||||
s:='';
|
||||
Text:=Text+s+TheStrings.Text;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user