PDA

View Full Version : خطای av



Batman
جمعه 02 اسفند 1387, 03:22 صبح
با سلام اسم بهتری به ذهنم نرسید چون خود عنوان کاملا گویا هستش
لطفا unit زیر رو یه نگاهی بندازید و بگید که چرا خطای av رو میده.

unit Unit_FarsiFixer;
interface
uses
Forms,
Controls,
SysUtils,
Dialogs,
Classes;
type
TFarsiKeyboardHook = class(TComponent)
private
parentKeyPress: TKeyPressEvent;
procedure myKeyPress(Sender: TObject; var Key: Char);
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
Destructor Destroy;override;
published
{ Published declarations }
end;

procedure Register;
implementation

procedure Register;
begin
RegisterComponents('My KeyBoard Hook', [TFarsiKeyboardHook]);
end;
{ TFarsiKeyboardHook }

constructor TFarsiKeyboardHook.Create(AOwner: TComponent);
begin
inherited;
if AOwner is TForm then
begin
parentKeyPress := TForm(Owner).OnKeyPress;
TForm(Owner).OnKeyPress := myKeyPress;
TForm(Owner).KeyPreview := true;
end;
end;

procedure TFarsiKeyboardHook.myKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #223 Then
Key := #152;
if Assigned(parentKeyPress) then
parentKeyPress(Sender, Key);
end;

Destructor TFarsiKeyboardHook.Destroy;
begin
if (Not(csDesigning in Self.ComponentState)) then
TForm(Owner).OnKeyPress:=parentKeyPress;
inherited;
end;

end.
ممنونم.

Batman
شنبه 03 اسفند 1387, 06:07 صبح
دوستان کسی کمکی نداره؟

SYNDROME
شنبه 03 اسفند 1387, 07:27 صبح
دقت کنید که ممکن است KeyPress فرمتان مقداری نداشته باشید.
دستور Destroy را به این شکل بنویسید.(ببینید مشکلتان حل می شود.)


Destructor TFarsiKeyboardHook.Destroy;
begin
if Assigned(ParentKeyPress) And (Not(csDesigning in Self.ComponentState)) then
TForm(Owner).OnKeyPress:=parentKeyPress;
inherited;
end;

موفق باشید

Batman
شنبه 03 اسفند 1387, 08:06 صبح
دقت کنید که ممکن است KeyPress فرمتان مقداری نداشته باشید.
دستور Destroy را به این شکل بنویسید.(ببینید مشکلتان حل می شود.)


Destructor TFarsiKeyboardHook.Destroy;
begin
if Assigned(ParentKeyPress) And (Not(csDesigning in Self.ComponentState)) then
TForm(Owner).OnKeyPress:=parentKeyPress;
inherited;
end;
موفق باشید
سلام
نه SYNDROME عزیز مشکل هنوز حل نشده(شاید به خاطر اینه که من خیلی بالا رفتم:قهقهه:)