Ben yeni bir klavye bileşeni yazıyorum. Ancak bir yerde takıldım bir türlü çözüm bulamadım.
Tanım şu şekilde.
Kod: Tümünü seç
type
TdcKlvDil = (klvTurkce, klvAlmanca, klvIngilizce);
type
TdcKlavye = class(TCustomControl)
private
{ Private declarations }
FOnClick_Caps : TNotifyEvent;
FOnClick_Sayisal : TNotifyEvent;
FOnClick_Harf : TNotifyEvent;
FOnChange_ColorStyle : TNotifyEvent;
FYatayAralik, FDikeyAralik : Integer;
FDil : TdcKlvDil;
FBuyukHarf : Boolean;
FSayisal : Boolean;
FColorStyle : TdcColorStyle;
FEnterCaption, FSpaceCaption, FBackSpaceCaption,
FCapsCaption, FDelCaption, FTabCaption : String[10];
gTus : array [0..40] of TdcTusSpeedButton;
procedure HarfAta;
procedure TusHazirla;
procedure TusYerlestir;
procedure Click_btCaps(Sender:TObject);
procedure Click_btSayisal(Sender:TObject);
procedure Click_btHarf(Sender:TObject);
procedure OnChange_ColorStyle;
procedure SetColorStyle(prStyle : TdcColorStyle);
protected
{ Protected declarations }
procedure Resize; override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); Override;
destructor Destroy;
published
{ Published declarations }
property ColorStyle : TdcColorStyle read FColorStyle write SetColorStyle;
property Align;
property Font;
property Visible;
property Enabled;
property Width default 550;
property Height default 250;
end;
Kod: Tümünü seç
constructor TdcKlavye.Create(AOwner: TComponent);
begin
inherited;
//Width := 550;
//Height := 250;
FDil := klvAlmanca;
FBuyukHarf := True;
FSayisal := False;
FYatayAralik := 5;
FDikeyAralik := 5;
Font := TFont.Create;
Font.Color := clBlack;
Font.Size := 12;
Font.Style := [];
FColorStyle := dcsStandard;
TusHazirla;
TusYerlestir;
HarfAta;
end;
Kod: Tümünü seç
procedure TdcKlavye.TusYerlestir;
var
lTusWidth, lTusHeight : Byte;
I, lTop, lLeft : Integer;
begin
FYatayAralik := 4;
FDikeyAralik := 4;
lTop := 1;
lLeft := 1;
lTusWidth := (Width-(11*FYatayAralik)) div 14;
lTusHeight := (Height-(4*FDikeyAralik)) div 4;
Klavyeyi kullandığım formda atama yaparsam çalışıyor. Ama tasarımda verdiğim değer gelmiyor.
Sorunu bir türlü çözemedim. Yardımlarınızı bekliyorum. Teşekkür ederim.