ورود

View Full Version : سوال: از کار انداختن کلید اینتر در Rich Edit



ehsan_faal
سه شنبه 04 فروردین 1394, 23:43 عصر
سلام دوستان.من برای تمرین رویدادهای 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.

hadisalahi2
چهارشنبه 05 فروردین 1394, 10:30 صبح
اول اینکه نمی فهمم چه ربطی بین richedit و Edit هستش که شما میخوای واسه تمرین این مدلی کار کنی

اما برای این کار فکر کنم باید کلید گرفته شده رو مقایسه کنی با عدد 13 و اگه اون بود مقدار 0 رو برای کلید برگردونی



If Key=#13 then Key:=#0

ehsan_faal
چهارشنبه 05 فروردین 1394, 13:06 عصر
من این راه رو هم قبلا امتحان کردم .کار نمیکنه چون با زدن اینتر میره خط بعدی و وقتی کاربر بخواد اطلاعات رو وارد کنه ارور میده که اول اطلاعات فضای خالی وجود داره:گریه:

hadisalahi2
چهارشنبه 05 فروردین 1394, 16:03 عصر
چرا میخوای در rich Edit باشه؟
این رو در Edit تست کن جواب میده

ehsan_faal
چهارشنبه 05 فروردین 1394, 16:43 عصر
اوپس.حق با شماست.