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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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