mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 03:21:28 +01:00 
			
		
		
		
	Calculator: Add menu for copy/paste. Issue #28551, patch from Alexey Torgashin
git-svn-id: trunk@49706 -
This commit is contained in:
		
							parent
							
								
									f2ebd5c2bf
								
							
						
					
					
						commit
						a7bc23443e
					
				| @ -23,7 +23,7 @@ interface | |||||||
| 
 | 
 | ||||||
| uses | uses | ||||||
|   Classes, SysUtils, Forms, Controls, Graphics, |   Classes, SysUtils, Forms, Controls, Graphics, | ||||||
|   StdCtrls, ExtCtrls, Buttons; |   StdCtrls, ExtCtrls, Buttons, Menus, Clipbrd; | ||||||
| 
 | 
 | ||||||
| const | const | ||||||
|   CalcDefPrecision = 15; |   CalcDefPrecision = 15; | ||||||
| @ -104,6 +104,7 @@ type | |||||||
|     FDisplayLabel: TLabel; |     FDisplayLabel: TLabel; | ||||||
|     FOnCalcKey: TCalculatorCalcKeyEvent; |     FOnCalcKey: TCalculatorCalcKeyEvent; | ||||||
|     FOnDisplayChange: TCalculatorDispChangeEvent; |     FOnDisplayChange: TCalculatorDispChangeEvent; | ||||||
|  |     FMenu: TPopupMenu; | ||||||
|     procedure FormKeyPress(Sender: TObject; var Key: char); |     procedure FormKeyPress(Sender: TObject; var Key: char); | ||||||
|     procedure CopyItemClick(Sender: TObject); |     procedure CopyItemClick(Sender: TObject); | ||||||
|     function GetValue: Double; |     function GetValue: Double; | ||||||
| @ -651,19 +652,19 @@ end; | |||||||
| 
 | 
 | ||||||
| procedure TCalculatorPanel.Copy; | procedure TCalculatorPanel.Copy; | ||||||
| begin | begin | ||||||
|   // Clipboard.AsText:=FText; |   Clipboard.AsText:=FText; | ||||||
| end; | end; | ||||||
| 
 | 
 | ||||||
| procedure TCalculatorPanel.Paste; | procedure TCalculatorPanel.Paste; | ||||||
|  | var | ||||||
|  |   S: string; | ||||||
| begin | begin | ||||||
| {  if Clipboard.HasFormat(CF_TEXT) then |   if Clipboard.HasFormat(CF_TEXT) then | ||||||
|     try |   begin | ||||||
|       SetDisplay(StrToFloat(Trim(ReplaceStr(Clipboard.AsText, |     S:=Clipboard.AsText; | ||||||
|         CurrencyString, '')))); |     S:=Trim(StringReplace(S, CurrencyString, '', [])); | ||||||
|     except |     SetDisplay(StrToFloatDef(S, 0.0)); | ||||||
|       SetCalcText('0'); |   end; | ||||||
|     end; |  | ||||||
| } |  | ||||||
| end; | end; | ||||||
| 
 | 
 | ||||||
| { TCalculatorForm } | { TCalculatorForm } | ||||||
| @ -677,6 +678,8 @@ begin | |||||||
| end; | end; | ||||||
| 
 | 
 | ||||||
| procedure TCalculatorForm.InitForm(ALayout: TCalculatorLayout); | procedure TCalculatorForm.InitForm(ALayout: TCalculatorLayout); | ||||||
|  | var | ||||||
|  |   mi: TMenuItem; | ||||||
| begin | begin | ||||||
|   BorderStyle:=bsDialog; |   BorderStyle:=bsDialog; | ||||||
|   Caption:=rsCalculator; |   Caption:=rsCalculator; | ||||||
| @ -733,6 +736,17 @@ begin | |||||||
|     OnDisplayChange:=@Self.DisplayChange; |     OnDisplayChange:=@Self.DisplayChange; | ||||||
|     FControl:=FDisplayLabel; |     FControl:=FDisplayLabel; | ||||||
|   end; |   end; | ||||||
|  |   { Menu } | ||||||
|  |   FMenu:=TPopupMenu.Create(Self); | ||||||
|  |   DisplayPanel.PopupMenu:=FMenu; | ||||||
|  |   mi:=TMenuItem.Create(Self); | ||||||
|  |   mi.Caption:=rsDoCopy; | ||||||
|  |   mi.OnClick:=@CopyItemClick; | ||||||
|  |   FMenu.Items.Add(mi); | ||||||
|  |   mi:=TMenuItem.Create(Self); | ||||||
|  |   mi.Caption:=rsDoPaste; | ||||||
|  |   mi.OnClick:=@PasteItemClick; | ||||||
|  |   FMenu.Items.Add(mi); | ||||||
| end; | end; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -298,6 +298,8 @@ resourceString | |||||||
|   rsPickDate   = 'Select a date'; |   rsPickDate   = 'Select a date'; | ||||||
|   rsSize = '  size '; |   rsSize = '  size '; | ||||||
|   rsModified = '  modified '; |   rsModified = '  modified '; | ||||||
|  |   rsDoCopy = 'Copy'; | ||||||
|  |   rsDoPaste = 'Paste'; | ||||||
| 
 | 
 | ||||||
|   // ShellCtrls |   // ShellCtrls | ||||||
|   sShellCtrlsName = 'Name'; |   sShellCtrlsName = 'Name'; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 juha
						juha