added OnUTF8KeyPresss

git-svn-id: trunk@5895 -
This commit is contained in:
mattias 2004-08-30 16:37:58 +00:00
parent 3fca394b77
commit 4cb794d4d7
15 changed files with 186 additions and 95 deletions

View File

@ -86,7 +86,7 @@ type
{$ENDIF}
procedure SetCurrentString(const Value: string);
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: TCharacter); override;
procedure KeyPress(var Key: char); override;
procedure Paint; override;
procedure ScrollGetFocus(Sender: TObject);
procedure Deactivate; override;
@ -217,9 +217,9 @@ type
procedure backspace(Sender: TObject);
procedure Cancel(Sender: TObject);
procedure Validate(Sender: TObject; Shift: TShiftState);
procedure KeyPress(Sender: TObject; var Key: TCharacter);
procedure KeyPress(Sender: TObject; var Key: char);
procedure EditorKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure EditorKeyPress(Sender: TObject; var Key: TCharacter);
procedure EditorKeyPress(Sender: TObject; var Key: char);
function GetPreviousToken(FEditor: TCustomSynEdit): string;
function GetFEditor: TCustomSynEdit;
function GetEditor(i: integer): TCustomSynEdit;
@ -260,7 +260,7 @@ type
override;
procedure EditorKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
virtual;
procedure EditorKeyPress(Sender: TObject; var Key: TCharacter); virtual;
procedure EditorKeyPress(Sender: TObject; var Key: char); virtual;
function GetPreviousToken(aEditor: TCustomSynEdit): string;
public
constructor Create(AOwner: TComponent); override;
@ -402,7 +402,7 @@ begin
{$ENDIF}
end;
procedure TSynBaseCompletionForm.KeyPress(var Key: TCharacter);
procedure TSynBaseCompletionForm.KeyPress(var Key: char);
begin
case key of //
#33..'z': begin
@ -1020,7 +1020,7 @@ begin
end;
end;
procedure TSynCompletion.KeyPress(Sender: TObject; var Key: TCharacter);
procedure TSynCompletion.KeyPress(Sender: TObject; var Key: char);
var
F: TSynBaseCompletionForm;
begin
@ -1126,7 +1126,7 @@ begin
result := '';
end;
procedure TSynCompletion.EditorKeyPress(Sender: TObject; var Key: TCharacter);
procedure TSynCompletion.EditorKeyPress(Sender: TObject; var Key: char);
var
i: integer;
begin
@ -1290,7 +1290,7 @@ begin
end;
end;
procedure TSynAutoComplete.EditorKeyPress(Sender: TObject; var Key: TCharacter);
procedure TSynAutoComplete.EditorKeyPress(Sender: TObject; var Key: char);
var
i: integer;
begin

View File

@ -131,13 +131,13 @@ type
of object;
THookedCommandEvent = procedure(Sender: TObject; AfterProcessing: boolean;
var Handled: boolean; var Command: TSynEditorCommand; var AChar: TCharacter;
var Handled: boolean; var Command: TSynEditorCommand; var AChar: char;
Data: pointer; HandlerData: pointer) of object;
TPaintEvent = procedure(Sender: TObject; ACanvas: TCanvas) of object;
TProcessCommandEvent = procedure(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer) of object;
var Command: TSynEditorCommand; var AChar: char; Data: pointer) of object;
TReplaceTextEvent = procedure(Sender: TObject; const ASearch, AReplace:
string; Line, Column: integer; var ReplaceAction: TSynReplaceAction) of object;
@ -510,7 +510,7 @@ type
procedure InvalidateBracketHighlight(OnlyIfCaretMoved: boolean);
{$ENDIF}
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: TCharacter); override;
procedure KeyPress(var Key: char); override;
{$IFDEF SYN_LAZARUS}
procedure KeyUp(var Key : Word; Shift : TShiftState); override;
{$ENDIF}
@ -532,7 +532,7 @@ type
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
override;
procedure NotifyHookedCommandHandlers(AfterProcessing: boolean;
var Command: TSynEditorCommand; var AChar: Tcharacter; Data: pointer); virtual;
var Command: TSynEditorCommand; var AChar: char; Data: pointer); virtual;
procedure Paint; override;
procedure PaintGutter(AClip: TRect; FirstLine, LastLine: integer); virtual;
procedure PaintTextLines(AClip: TRect; FirstLine, LastLine,
@ -563,14 +563,14 @@ type
{$ENDIF}
SavedCanvas: TCanvas; // the normal TCustomControl canvas during paint
procedure DoOnClearBookmark(var Mark: TSynEditMark); virtual; // djlp - 2000-08-29
procedure DoOnCommandProcessed(Command: TSynEditorCommand; AChar: TCharacter;
procedure DoOnCommandProcessed(Command: TSynEditorCommand; AChar: char;
Data: pointer); virtual;
// no method DoOnDropFiles, intercept the WM_DROPFILES instead
procedure DoOnGutterClick(X, Y: integer); virtual;
procedure DoOnPaint; virtual;
procedure DoOnPlaceMark(var Mark: TSynEditMark); virtual;
procedure DoOnProcessCommand(var Command: TSynEditorCommand;
var AChar: TCharacter; Data: pointer); virtual;
var AChar: char; Data: pointer); virtual;
function DoOnReplaceText(const ASearch, AReplace: string;
Line, Column: integer): TSynReplaceAction; virtual;
function DoOnSpecialLineColors(Line: integer;
@ -589,7 +589,7 @@ type
procedure ClearAll;
procedure ClearBookMark(BookMark: Integer);
procedure ClearSelection;
procedure CommandProcessor(Command: TSynEditorCommand; AChar: TCharacter;
procedure CommandProcessor(Command: TSynEditorCommand; AChar: char;
Data: pointer); virtual;
procedure ClearUndo;
procedure CopyToClipboard;
@ -604,7 +604,7 @@ type
{$IFDEF SYN_COMPILER_4_UP}
function ExecuteAction(ExeAction: TBasicAction): boolean; override;
{$ENDIF}
procedure ExecuteCommand(Command: TSynEditorCommand; AChar: TCharacter;
procedure ExecuteCommand(Command: TSynEditorCommand; AChar: char;
Data: pointer); virtual;
function GetBookMark(BookMark: integer; var X, Y: integer): boolean;
function GetHighlighterAttriAtRowCol(XY: TPoint; var Token: string;
@ -1826,7 +1826,7 @@ begin
GutterChanged(Self);
end;
procedure TCustomSynEdit.KeyPress(var Key: TCharacter);
procedure TCustomSynEdit.KeyPress(var Key: char);
begin
{$IFDEF SYN_MBCSSUPPORT}
if (fImeCount > 0) then begin
@ -5788,7 +5788,7 @@ begin
end;
procedure TCustomSynEdit.CommandProcessor(Command: TSynEditorCommand;
AChar: TCharacter; Data: pointer);
AChar: char; Data: pointer);
begin
{$IFDEF VerboseKeys}
DebugLn('[TCustomSynEdit.CommandProcessor] ',Command
@ -5810,7 +5810,7 @@ begin
DoOnCommandProcessed(Command, AChar, Data);
end;
procedure TCustomSynEdit.ExecuteCommand(Command: TSynEditorCommand; AChar: TCharacter;
procedure TCustomSynEdit.ExecuteCommand(Command: TSynEditorCommand; AChar: char;
Data: pointer);
const
ALPHANUMERIC = DIGIT + ALPHA_UC + ALPHA_LC;
@ -6468,14 +6468,14 @@ begin
end;
procedure TCustomSynEdit.DoOnCommandProcessed(Command: TSynEditorCommand;
AChar: TCharacter; Data: pointer);
AChar: char; Data: pointer);
begin
if Assigned(fOnCommandProcessed) then
fOnCommandProcessed(Self, Command, AChar, Data);
end;
procedure TCustomSynEdit.DoOnProcessCommand(var Command: TSynEditorCommand;
var AChar: TCharacter; Data: pointer);
var AChar: char; Data: pointer);
begin
if Command < ecUserFirst then begin
if Assigned(FOnProcessCommand) then
@ -8123,7 +8123,7 @@ begin
end;
procedure TCustomSynEdit.NotifyHookedCommandHandlers(AfterProcessing: boolean;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer);
var Command: TSynEditorCommand; var AChar: char; Data: pointer);
var
Handled: boolean;
i: integer;

View File

@ -83,7 +83,7 @@ type
procedure SetAutoCompleteList(Value: TStrings); virtual;
procedure SetEditor(Value: TCustomSynEdit);
procedure SynEditCommandHandler(Sender: TObject; AfterProcessing: boolean;
var Handled: boolean; var Command: TSynEditorCommand; var AChar: TCharacter;
var Handled: boolean; var Command: TSynEditorCommand; var AChar: char;
Data: pointer; HandlerData: pointer);
public
constructor Create(AOwner: TComponent); override;
@ -563,7 +563,7 @@ end;
procedure TCustomSynAutoComplete.SynEditCommandHandler(Sender: TObject;
AfterProcessing: boolean; var Handled: boolean;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer;
var Command: TSynEditorCommand; var AChar: char; Data: pointer;
HandlerData: pointer);
begin
if not AfterProcessing and not Handled and (Command = ecAutoCompletion) then

View File

@ -89,7 +89,7 @@ type
procedure UnHookEditor(aEditor: TCustomSynEdit;
aCommandID: TSynEditorCommand; aShortCut: TShortCut);
procedure OnCommand(Sender: TObject; AfterProcessing: boolean;
var Handled: boolean; var Command: TSynEditorCommand; var aChar: TCharacter;
var Handled: boolean; var Command: TSynEditorCommand; var aChar: char;
Data: pointer; HandlerData: pointer); virtual; abstract;
end;
@ -134,7 +134,7 @@ type
protected
procedure SetCurrentString(const Value: String); virtual;
procedure OnCommand(Sender: TObject; AfterProcessing: boolean;
var Handled: boolean; var Command: TSynEditorCommand; var aChar: TCharacter;
var Handled: boolean; var Command: TSynEditorCommand; var aChar: char;
Data: pointer; HandlerData: pointer); override;
procedure DoExecute; override;
procedure DoAccept; override;
@ -485,7 +485,7 @@ end;
procedure TAbstractSynCompletion.OnCommand(Sender: TObject;
AfterProcessing: boolean; var Handled: boolean;
var Command: TSynEditorCommand; var aChar: TCharacter; Data,
var Command: TSynEditorCommand; var aChar: char; Data,
HandlerData: pointer);
var
iString: String;

View File

@ -204,7 +204,7 @@ type
procedure DoAddEditor(aEditor: TCustomSynEdit); override;
procedure DoRemoveEditor(aEditor: TCustomSynEdit); override;
procedure OnCommand(Sender: TObject; AfterProcessing: boolean;
var Handled: boolean; var Command: TSynEditorCommand; var aChar: TCharacter;
var Handled: boolean; var Command: TSynEditorCommand; var aChar: char;
Data: pointer; HandlerData: pointer); override;
function CreateMacroEvent(aCmd: TSynEditorCommand): TSynMacroEvent;
protected
@ -502,7 +502,7 @@ end;
procedure TCustomSynMacroRecorder.OnCommand(Sender: TObject;
AfterProcessing: boolean; var Handled: boolean;
var Command: TSynEditorCommand; var aChar: TCharacter; Data,
var Command: TSynEditorCommand; var aChar: char; Data,
HandlerData: pointer);
var
iEvent: TSynMacroEvent;

View File

@ -169,11 +169,11 @@ type
Procedure ReParent(AParent: TWinControl);
Procedure ProcessCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer);
var Command: TSynEditorCommand; var AChar: char; Data: pointer);
Procedure ProcessUserCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer);
var Command: TSynEditorCommand; var AChar: char; Data: pointer);
Procedure UserCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer);
var Command: TSynEditorCommand; var AChar: char; Data: pointer);
Procedure ccOnTimer(sender: TObject);
Procedure ccAddMessage(Texts: String);
@ -458,10 +458,10 @@ type
procedure MoveActivePageLeft;
procedure MoveActivePageRight;
Procedure ProcessParentCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer;
var Command: TSynEditorCommand; var AChar: char; Data: pointer;
var Handled: boolean);
Procedure ParentCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer;
var Command: TSynEditorCommand; var AChar: char; Data: pointer;
var Handled: boolean);
// marks
@ -906,7 +906,7 @@ begin
end;
Procedure TSourceEditor.ProcessCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer);
var Command: TSynEditorCommand; var AChar: char; Data: pointer);
// these are normal commands for synedit, define extra actions here
// otherwise use ProcessUserCommand
begin
@ -966,7 +966,7 @@ begin
end;
Procedure TSourceEditor.ProcessUserCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer);
var Command: TSynEditorCommand; var AChar: char; Data: pointer);
// define all extra keys here, that should are not handled by synedit
var
I: Integer;
@ -1136,7 +1136,7 @@ Begin
end;
Procedure TSourceEditor.UserCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer);
var Command: TSynEditorCommand; var AChar: char; Data: pointer);
var Handled: boolean;
begin
Handled:=true;
@ -3863,7 +3863,7 @@ end;
procedure TSourceNotebook.ViewCallStackClick(Sender: TObject);
var
Command: TSynEditorCommand;
AChar: TCharacter;
AChar: char;
Data: pointer;
Handled: boolean;
begin
@ -4197,7 +4197,7 @@ Begin
end;
Procedure TSourceNotebook.ProcessParentCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer;
var Command: TSynEditorCommand; var AChar: char; Data: pointer;
var Handled: boolean);
begin
FProcessingCommand:=true;
@ -4270,7 +4270,7 @@ begin
end;
Procedure TSourceNotebook.ParentCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TCharacter; Data: pointer;
var Command: TSynEditorCommand; var AChar: char; Data: pointer;
var Handled: boolean);
begin
if Assigned(FOnUserCommandProcessed) then begin

View File

@ -330,7 +330,8 @@ type
TKeyEvent = procedure(Sender: TObject; var Key: Word; Shift:TShiftState) of Object;
TKeyPressEvent = procedure(Sender: TObject; var Key: TCharacter) of Object;
TKeyPressEvent = procedure(Sender: TObject; var Key: char) of Object;
TUTF8KeyPressEvent = procedure(Sender: TObject; var UTF8Key: string) of Object;
TMouseEvent = Procedure(Sender: TOBject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer) of object;
@ -1319,6 +1320,7 @@ type
FOnEnter: TNotifyEvent;
FOnExit: TNotifyEvent;
FOnUnDock: TUnDockEvent;
FOnUTF8KeyPress: TUTF8KeyPressEvent;
FParentWindow: hwnd;
FParentCtl3D: Boolean;
FRealizeBoundsLockCount: integer;
@ -1425,13 +1427,15 @@ type
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
function DoKeyDown(var Message: TLMKey): Boolean;
function DoKeyPress(var Message: TLMKey): Boolean;
function DoUTF8KeyPress(var UTF8Key: string): boolean; dynamic;
function DoKeyUp(var Message: TLMKey): Boolean;
procedure ControlKeyDown(var Key: Word; Shift: TShiftState); dynamic;
procedure KeyDown(var Key: Word; Shift: TShiftState); dynamic;
procedure KeyDownBeforeInterface(var Key: Word; Shift: TShiftState); dynamic;
procedure KeyDownAfterInterface(var Key: Word; Shift: TShiftState); dynamic;
procedure KeyPress(var Key: TCharacter); dynamic;
procedure KeyPress(var Key: char); dynamic;
procedure KeyUp(var Key: Word; Shift: TShiftState); dynamic;
procedure UTF8KeyPress(var UTF8Key: string); dynamic;
protected
Function FindNextControl(CurrentControl: TControl; GoForward,
CheckTabStop, CheckParent, OnlyWinControls
@ -1498,6 +1502,7 @@ type
property OnExit: TNotifyEvent read FOnExit write FOnExit;
property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown;
property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
property OnUTF8KeyPress: TUTF8KeyPressEvent read FOnUTF8KeyPress write FOnUTF8KeyPress;
property OnKeyUp: TKeyEvent read FOnKeyUp write FOnKeyUp;
property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;
property OnMouseWheelDown: TMouseWheelUpDownEvent read FOnMouseWheelDown write FOnMouseWheelDown;
@ -1556,6 +1561,7 @@ type
procedure HandleNeeded;
function BrushCreated: Boolean;
procedure EraseBackground(DC: HDC); virtual;
function UTF8KeyPressMessage(var UTF8Key: string; RepeatCount: integer): boolean; dynamic;
public
property BoundsLockCount: integer read FBoundsLockCount;
property Brush: TBrush read GetBrush;
@ -2405,6 +2411,9 @@ end.
{ =============================================================================
$Log$
Revision 1.242 2004/08/30 16:37:58 mattias
added OnUTF8KeyPresss
Revision 1.241 2004/08/30 16:11:02 mattias
changed GTK2 IFDEF to USE_UTF8BIDI_LCL

View File

@ -132,7 +132,7 @@ Type
procedure SetDataField(Value: string);
procedure SetDataSource(Value: TDataSource);
protected
procedure KeyPress(var Key: TCharacter); override;
procedure KeyPress(var Key: char); override;
procedure Loaded; override;
procedure Notification(AComponent: TComponent;
@ -260,7 +260,7 @@ Type
procedure SetDataField(Value: string);
procedure SetDataSource(Value: TDataSource);
protected
procedure KeyPress(var Key: TCharacter); override;
procedure KeyPress(var Key: char); override;
procedure Loaded; override;
procedure Notification(AComponent: TComponent;
@ -1248,6 +1248,9 @@ end.
{ =============================================================================
$Log$
Revision 1.22 2004/08/30 16:37:58 mattias
added OnUTF8KeyPresss
Revision 1.21 2004/08/30 16:11:02 mattias
changed GTK2 IFDEF to USE_UTF8BIDI_LCL

View File

@ -134,7 +134,7 @@ type
function TitleStored: Boolean;
protected
procedure Change; dynamic;
procedure CalcKey(var Key: TCharacter); dynamic;
procedure CalcKey(var Key: char); dynamic;
procedure DisplayChange; dynamic;
public
constructor Create(AOwner: TComponent); override;
@ -163,7 +163,7 @@ type
FCalcPanel: TPanel;
FDisplayPanel: TPanel;
FDisplayLabel: TLabel;
procedure FormKeyPress(Sender: TObject; var Key: TCharacter);
procedure FormKeyPress(Sender: TObject; var Key: char);
procedure CopyItemClick(Sender: TObject);
function GetValue: Double;
procedure PasteItemClick(Sender: TObject);
@ -171,7 +171,7 @@ type
protected
procedure OkClick(Sender: TObject);
procedure CancelClick(Sender: TObject);
procedure CalcKey(Sender: TObject; var Key: TCharacter);
procedure CalcKey(Sender: TObject; var Key: char);
procedure DisplayChange(Sender: TObject);
Procedure InitForm(ALayout : TCalculatorLayout); virtual;
Property MainPanel: TPanel Read FMainPanel;
@ -573,7 +573,7 @@ type
FControl: TControl;
procedure SetCalcText(const Value: string);
procedure CheckFirst;
procedure CalcKey(Key: TCharacter);
procedure CalcKey(Key: char);
procedure Clear;
procedure Error;
procedure SetDisplay(R: Double);
@ -586,7 +586,7 @@ type
procedure TextChanged; virtual;
public
constructor CreateLayout(AOwner: TComponent; ALayout: TCalculatorLayout);
procedure CalcKeyPress(Sender: TObject; var Key: TCharacter);
procedure CalcKeyPress(Sender: TObject; var Key: char);
procedure Copy;
procedure Paste;
Function WorkingPrecision : Integer;
@ -751,7 +751,7 @@ begin
end;
procedure TCalculatorPanel.CalcKey(Key: TCharacter);
procedure TCalculatorPanel.CalcKey(Key: char);
var
R: Double;
begin
@ -853,7 +853,7 @@ begin
FOperator:='=';
end;
procedure TCalculatorPanel.CalcKeyPress(Sender: TObject; var Key: TCharacter);
procedure TCalculatorPanel.CalcKeyPress(Sender: TObject; var Key: char);
var
Btn: TCustomSpeedButton;
@ -1010,7 +1010,7 @@ begin
else Result:=FValue;
end;
procedure TCalculatorDialog.CalcKey(var Key: TCharacter);
procedure TCalculatorDialog.CalcKey(var Key: char);
begin
if Assigned(FOnCalcKey) then FOnCalcKey(Self, Key);
end;
@ -1133,7 +1133,7 @@ begin
end;
procedure TCalculatorForm.FormKeyPress(Sender: TObject; var Key: TCharacter);
procedure TCalculatorForm.FormKeyPress(Sender: TObject; var Key: char);
begin
TCalculatorPanel(FCalcPanel).CalcKeyPress(Sender, Key);
end;
@ -1168,7 +1168,7 @@ begin
ModalResult:=mrCancel;
end;
procedure TCalculatorForm.CalcKey(Sender: TObject; var Key: TCharacter);
procedure TCalculatorForm.CalcKey(Sender: TObject; var Key: char);
begin
if (Owner <> nil) and (Owner is TCalculatorDialog) then
TCalculatorDialog(Owner).CalcKey(Key);

View File

@ -134,7 +134,7 @@ begin
end;
{ Protected Methods}
procedure TDBEdit.KeyPress(var Key: TCharacter);
procedure TDBEdit.KeyPress(var Key: char);
begin
inherited KeyPress(Key);
case Key of
@ -237,6 +237,9 @@ end;
{ =============================================================================
$Log$
Revision 1.9 2004/08/30 16:37:58 mattias
added OnUTF8KeyPresss
Revision 1.8 2004/08/22 22:57:35 mattias
added OnActiveChange from Joost

View File

@ -110,7 +110,7 @@ begin
end;
{ Protected Methods}
procedure TDBListBox.KeyPress(var Key: TCharacter);
procedure TDBListBox.KeyPress(var Key: char);
begin
inherited KeyPress(Key);
case Key of
@ -196,6 +196,9 @@ end;
{ =============================================================================
$Log$
Revision 1.7 2004/08/30 16:37:58 mattias
added OnUTF8KeyPresss
Revision 1.6 2004/08/30 10:49:20 mattias
fixed focus catch for combobox csDropDownList

View File

@ -1626,6 +1626,19 @@ begin
FillRect(DC,ARect,Brush.Handle)
end;
{------------------------------------------------------------------------------
function TWinControl.UTF8KeyPressMessage(var UTF8Key: string;
RepeatCount: integer): boolean;
Called by the interface after the navigation and specials keys are handled
(e.g. after KeyDown).
------------------------------------------------------------------------------}
function TWinControl.UTF8KeyPressMessage(var UTF8Key: string;
RepeatCount: integer): boolean;
begin
Result:=(RepeatCount>0) and DoUTF8KeyPress(UTF8Key)
end;
{------------------------------------------------------------------------------
TWinControl ControlAtPos
Params: const Pos : TPoint
@ -2105,19 +2118,27 @@ begin
end;
{------------------------------------------------------------------------------
TWinControl KeyUp
TWinControl KeyPress
------------------------------------------------------------------------------}
Procedure TWinControl.KeyUp(var Key: Word; shift : TShiftState);
Procedure TWinControl.KeyPress(var Key: char);
begin
if Assigned(FOnKeyUp) then FOnKeyUp(Self, Key, Shift);
if Assigned(FOnKeyPress) then FOnKeyPress(Self, Key);
end;
{------------------------------------------------------------------------------
TWinControl KeyPress
------------------------------------------------------------------------------}
Procedure TWinControl.KeyPress(var Key: TCharacter);
procedure TWinControl.UTF8KeyPress(var UTF8Key: string);
begin
if Assigned(FOnKeyPress) then FOnKeyPress(Self, Key);
if Assigned(FOnUTF8KeyPress) then FOnUTF8KeyPress(Self, UTF8Key);
end;
{------------------------------------------------------------------------------
TWinControl KeyUp
------------------------------------------------------------------------------}
Procedure TWinControl.KeyUp(var Key: Word; shift : TShiftState);
begin
if Assigned(FOnKeyUp) then FOnKeyUp(Self, Key, Shift);
end;
{------------------------------------------------------------------------------
@ -2217,24 +2238,34 @@ begin
Result := False;
end;
{------------------------------------------------------------------------------}
{ TWinControl DoKeyPress }
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TWinControl DoKeyPress
Returns True if key handled
------------------------------------------------------------------------------}
Function TWinControl.DoKeyPress(Var Message : TLMKey): Boolean;
var
F: TCustomForm;
C: TCharacter;
C: char;
AParent: TWinControl;
begin
Result := True;
F := GetParentForm(Self);
if (F <> nil)
and (F <> Self)
and (F.KeyPreview)
and (TWinControl(F).DoKeyPress(Message)) then Exit;
// let each parent form with keypreview handle the key
AParent:=Parent;
while (AParent<>nil) do begin
if (AParent is TCustomForm) then begin
F := TCustomForm(AParent);
if (F.KeyPreview)
and (F.DoKeyPress(Message)) then Exit;
end;
AParent:=AParent.Parent;
end;
if not (csNoStdEvents in ControlStyle)
then with Message do
begin
C := TCharacter(CharCode);
C := char(CharCode);
KeyPress(C);
CharCode := Ord(C);
if Char(CharCode) = #0 then Exit;
@ -2243,20 +2274,60 @@ begin
Result := False;
End;
{------------------------------------------------------------------------------}
{ TWinControl DoKeyUp }
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------
TWinControl DoUTF8KeyPress
Returns True if key handled
------------------------------------------------------------------------------}
function TWinControl.DoUTF8KeyPress(var UTF8Key: string): boolean;
var
AParent: TWinControl;
F: TCustomForm;
begin
Result:=true;
// let each parent form with keypreview handle the key
AParent:=Parent;
while (AParent<>nil) do begin
if (AParent is TCustomForm) then begin
F := TCustomForm(AParent);
if (F.KeyPreview)
and (F.DoUTF8KeyPress(UTF8Key)) then Exit;
end;
AParent:=AParent.Parent;
end;
if not (csNoStdEvents in ControlStyle) then begin
UTF8KeyPress(UTF8Key);
if UTF8Key='' then exit;
end;
Result := False;
end;
{------------------------------------------------------------------------------
TWinControl DoKeyUp
Returns True if key handled
------------------------------------------------------------------------------}
Function TWinControl.DoKeyUp(Var Message : TLMKey): Boolean;
var
F: TCustomForm;
ShiftState: TShiftState;
AParent: TWinControl;
begin
Result := True;
F := GetParentForm(Self);
if (F <> nil)
and (F <> Self)
and (F.KeyPreview)
and (TWinControl(F).DoKeyUp(Message)) then Exit;
// let each parent form with keypreview handle the key
AParent:=Parent;
while (AParent<>nil) do begin
if (AParent is TCustomForm) then begin
F := TCustomForm(AParent);
if (F.KeyPreview)
and (F.DoKeyUp(Message)) then Exit;
end;
AParent:=AParent.Parent;
end;
with Message do
begin
@ -3827,6 +3898,9 @@ end;
{ =============================================================================
$Log$
Revision 1.268 2004/08/30 16:37:58 mattias
added OnUTF8KeyPresss
Revision 1.267 2004/08/30 10:49:20 mattias
fixed focus catch for combobox csDropDownList

View File

@ -52,11 +52,6 @@ uses
Classes, SysUtils;
type
{$IFDEF USE_UTF8BIDI_LCL}
TCharacter = WideChar;
{$ELSE USE_UTF8BIDI_LCL}
TCharacter = Char;
{$ENDIF USE_UTF8BIDI_LCL}
PRect = ^TRect;
UINT = LongWord;
PPoint = ^TPoint;
@ -2238,6 +2233,9 @@ end.
{
$Log$
Revision 1.65 2004/08/30 16:37:58 mattias
added OnUTF8KeyPresss
Revision 1.64 2004/08/30 16:11:02 mattias
changed GTK2 IFDEF to USE_UTF8BIDI_LCL

View File

@ -358,8 +358,6 @@ const
// End of Windows Compatability and messages
//-------------
type
UINT = LongWord;
BOOL = Boolean;
@ -1058,6 +1056,9 @@ end.
{
$Log$
Revision 1.72 2004/08/30 16:37:58 mattias
added OnUTF8KeyPresss
Revision 1.71 2004/08/25 17:08:10 micha
use new lcl interface methods instead of messages (for win32; twscustomlistview)

View File

@ -82,8 +82,8 @@ type
FOldValue: string;
function IsCharAlpha(AChar: Char): Boolean;
function IsCharAlphaNumeric(AChar: Char): Boolean;
function DoInputChar(var NewChar: TCharacter; MaskOffset: Integer): Boolean;
function InputChar(var NewChar: TCharacter; Offset: Integer): Boolean;
function DoInputChar(var NewChar: char; MaskOffset: Integer): Boolean;
function InputChar(var NewChar: char; Offset: Integer): Boolean;
function DeleteSelection(var Value: string; Offset: Integer;
Len: Integer): Boolean;
function InputString(var Value: string; const NewValue: string;
@ -95,7 +95,7 @@ type
function GetMasked: Boolean;
function GetMaskText: string;
function GetMaxLength: Integer;
function CharKeys(var CharCode: TCharacter): Boolean;
function CharKeys(var CharCode: char): Boolean;
procedure SetEditText(const Value: string);
procedure SetEditMask(const Value: string);
procedure SetMaxLength(Value: Integer);
@ -111,7 +111,7 @@ type
procedure SetCursor(Pos: Integer);
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: TCharacter); override;
procedure KeyPress(var Key: char); override;
function EditCanModify: Boolean; virtual;
procedure MouseDown(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); override;
procedure MouseUp(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); override;
@ -622,7 +622,7 @@ begin
end;
end;
procedure TCustomMaskEdit.KeyPress(var Key: TCharacter);
procedure TCustomMaskEdit.KeyPress(var Key: char);
begin
inherited KeyPress(Key);
if IsMasked and (Key <> #0) and not (Char(Key) in [^V, ^X, ^C]) then
@ -843,7 +843,7 @@ begin
end;
end;
function TCustomMaskEdit.CharKeys(var CharCode: TCharacter): Boolean;
function TCustomMaskEdit.CharKeys(var CharCode: char): Boolean;
var
Txt: string;
OldPos: Integer;
@ -1187,7 +1187,7 @@ begin
end;
end;
function TCustomMaskEdit.InputChar(var NewChar: TCharacter; Offset: Integer): Boolean;
function TCustomMaskEdit.InputChar(var NewChar: char; Offset: Integer): Boolean;
var
MaskOffset: Integer;
CType: TMaskCharType;
@ -1237,7 +1237,7 @@ begin
if AChar in MyCharSet then result := True;
end;
function TCustomMaskEdit.DoInputChar(var NewChar: TCharacter; MaskOffset: Integer): Boolean;
function TCustomMaskEdit.DoInputChar(var NewChar: char; MaskOffset: Integer): Boolean;
var
Dir: TMaskDirectives;
Str: string;
@ -1383,7 +1383,7 @@ var
NewOffset, MaskOffset, Temp: Integer;
CType: TMaskCharType;
NewVal: string;
NewChar: TCharacter;
NewChar: char;
begin
Result := Offset;
if NewValue = '' then Exit;