سلام دوستان.من برای تمرین رویدادهای rich edit میخوام برنامه ای بنویسم که توی تکست باکس اول یک عدد دهدهی بگیره و توی تکست باکس دوم و سوم اون عدد رو به هگز و هم چنین در مینای دو نشون بده و.بدون اینکه دکمه ای در کار باشه.
توی رویداد onKeyPress شرط گذاشتم که فقط عدد و BackSpace رو بتونه بگیره.و تو رویداد OnChange هم دو تا تکست باکس دیگه رو مقدار دهی کردم فقط مشل اینه که کلید اینتر رو نمیتونم کنترل کنم.یعنی اگه تکست باکس اول خالی باشه و اینتر فشرده بشه یا مثلا اگه یه عدد وارد شده و اینتر زده بشه.
راهی هست که بگیم تکست باکس فقط یه خط داشته باشه؟ اصلا کلا اینتر رو چجور برش دارم؟
procedure TForm1.InputDecChange(Sender: TObject);begin
if InputDec.Text <> '' then
begin
HexRich.Text := IntToHex(StrToInt(InputDec.Text), 2);
// BinRich.Text:=inttobin(strtoint(InputDec.Text));
end
else
begin
HexRich.Text := '';
BinRich.Text := '';
end;
end;
procedure TForm1.InputDecKeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in [#8, '0' .. '9']) then
Key := #0;
if Key = chr(VK_RETURN) then
begin
if InputDec.Text = '' then
begin
InputDec.Text:='';
Key:=#36; //Home Key
// keybd_event(VK_HOME,0,0,0);
// keybd_event(VK_HOME,0,KEYEVENTF_KEYUP,0);
end
else
begin
InputDec.SelStart:=Length(Trim(InputDec.Text));
HexRich.Text := IntToHex(StrToInt(Trim(InputDec.Text)), 2);
end;
end;
end;
end.