mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 15:21:26 +01:00 
			
		
		
		
	IDE: fixed AV in Editor->FileSettings->Encoding. Issue #28930
git-svn-id: trunk@50200 -
This commit is contained in:
		
							parent
							
								
									a49c8b7c1d
								
							
						
					
					
						commit
						e022bfe9e8
					
				| @ -813,7 +813,7 @@ procedure CreateStandardIDECommandScopes; | |||||||
| 
 | 
 | ||||||
| function CompareIDEShortCuts(Data1, Data2: Pointer): integer; | function CompareIDEShortCuts(Data1, Data2: Pointer): integer; | ||||||
| function CompareIDEShortCutKey1s(Data1, Data2: Pointer): integer; | function CompareIDEShortCutKey1s(Data1, Data2: Pointer): integer; | ||||||
| 
 | function CompareEvents(Event1, Event2: TNotifyEvent): Integer; | ||||||
| function IdentToIDECommand(const Ident: string; var Cmd: longint): boolean; | function IdentToIDECommand(const Ident: string; var Cmd: longint): boolean; | ||||||
| function IDECommandToIdent(Cmd: longint; var Ident: string): boolean; | function IDECommandToIdent(Cmd: longint; var Ident: string): boolean; | ||||||
| procedure GetIDEEditorCommandValues(Proc: TGetStrProc); | procedure GetIDEEditorCommandValues(Proc: TGetStrProc); | ||||||
| @ -1287,7 +1287,7 @@ procedure TIDECommand.SetOnExecute(const aOnExecute: TNotifyEvent); | |||||||
| var | var | ||||||
|   xUser: TIDESpecialCommand; |   xUser: TIDESpecialCommand; | ||||||
| begin | begin | ||||||
|   if FOnExecute = aOnExecute then Exit; |   if CompareEvents(FOnExecute, aOnExecute) = 0 then Exit; | ||||||
|   FOnExecute := aOnExecute; |   FOnExecute := aOnExecute; | ||||||
|   for xUser in FUsers do |   for xUser in FUsers do | ||||||
|     xUser.OnClick := FOnExecute; |     xUser.OnClick := FOnExecute; | ||||||
| @ -1694,7 +1694,7 @@ end; | |||||||
| 
 | 
 | ||||||
| procedure TIDESpecialCommand.SetOnClickMethod(const aOnClick: TNotifyEvent); | procedure TIDESpecialCommand.SetOnClickMethod(const aOnClick: TNotifyEvent); | ||||||
| begin | begin | ||||||
|   if FOnClickMethod = aOnClick then Exit; |   if CompareEvents(FOnClickMethod, aOnClick) = 0 then Exit; | ||||||
|   FOnClickMethod := aOnClick; |   FOnClickMethod := aOnClick; | ||||||
|   if FCommand<> nil then |   if FCommand<> nil then | ||||||
|     FCommand.OnExecute:=aOnClick; |     FCommand.OnExecute:=aOnClick; | ||||||
| @ -2180,6 +2180,16 @@ const | |||||||
|     (Value: ecIdePSyncroEdSelStart; Name: 'ecIdePSyncroEdSelStart') |     (Value: ecIdePSyncroEdSelStart; Name: 'ecIdePSyncroEdSelStart') | ||||||
|   ); |   ); | ||||||
| 
 | 
 | ||||||
|  | function CompareEvents(Event1, Event2: TNotifyEvent): Integer; | ||||||
|  | var | ||||||
|  |   xMethod1: TMethod absolute Event1; | ||||||
|  |   xMethod2: TMethod absolute Event2; | ||||||
|  | begin | ||||||
|  |   Result := ComparePointers(xMethod1.Code, xMethod2.Code); | ||||||
|  |   if Result<>0 then Exit; | ||||||
|  |   Result := ComparePointers(xMethod1.Data, xMethod2.Data); | ||||||
|  | end; | ||||||
|  | 
 | ||||||
| function IdentToIDECommand(const Ident: string; var Cmd: longint): boolean; | function IdentToIDECommand(const Ident: string; var Cmd: longint): boolean; | ||||||
| begin | begin | ||||||
|   Result := IdentToInt(Ident, Cmd, IDEEditorCommandStrs); |   Result := IdentToInt(Ident, Cmd, IDEEditorCommandStrs); | ||||||
|  | |||||||
| @ -209,8 +209,6 @@ type | |||||||
|     procedure SetRightJustify(const AValue: boolean); virtual; |     procedure SetRightJustify(const AValue: boolean); virtual; | ||||||
|     procedure SetShowAlwaysCheckable(const AValue: boolean); virtual; |     procedure SetShowAlwaysCheckable(const AValue: boolean); virtual; | ||||||
|     procedure SetMenuItem(const AValue: TMenuItem); override; |     procedure SetMenuItem(const AValue: TMenuItem); override; | ||||||
|     procedure SetOnClickMethod(const AValue: TNotifyEvent); override; |  | ||||||
|     procedure SetOnClickProc(const AValue: TNotifyProcedure); override; |  | ||||||
|   public |   public | ||||||
|     property AutoCheck: boolean read FAutoCheck write SetAutoCheck default False; |     property AutoCheck: boolean read FAutoCheck write SetAutoCheck default False; | ||||||
|     property Default: Boolean read FDefault write SetDefault default False; |     property Default: Boolean read FDefault write SetDefault default False; | ||||||
| @ -1676,26 +1674,6 @@ begin | |||||||
|   end; |   end; | ||||||
| end; | end; | ||||||
| 
 | 
 | ||||||
| procedure TIDEMenuCommand.SetOnClickMethod(const AValue: TNotifyEvent); |  | ||||||
| var |  | ||||||
|   OldClick: TNotifyEvent; |  | ||||||
| begin |  | ||||||
|   OldClick:=OnClick; |  | ||||||
|   inherited SetOnClickMethod(AValue); |  | ||||||
|   if Assigned(Command) and (Command.OnExecute = OldClick) then |  | ||||||
|     Command.OnExecute := OnClick; |  | ||||||
| end; |  | ||||||
| 
 |  | ||||||
| procedure TIDEMenuCommand.SetOnClickProc(const AValue: TNotifyProcedure); |  | ||||||
| var |  | ||||||
|   OldClick: TNotifyProcedure; |  | ||||||
| begin |  | ||||||
|   OldClick:=OnClickProc; |  | ||||||
|   inherited SetOnClickProc(AValue); |  | ||||||
|   if Assigned(Command) and (Command.OnExecuteProc = OldClick) then |  | ||||||
|     Command.OnExecuteProc := OnClickProc; |  | ||||||
| end; |  | ||||||
| 
 |  | ||||||
| { TIDEMenuRoots } | { TIDEMenuRoots } | ||||||
| 
 | 
 | ||||||
| function TIDEMenuRoots.GetItems(Index: integer): TIDEMenuSection; | function TIDEMenuRoots.GetItems(Index: integer): TIDEMenuSection; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 ondrej
						ondrej