PDA

View Full Version : حرکت دربین EDIT ها



tik_tak
پنج شنبه 18 مهر 1387, 09:08 صبح
با سلام
من یه مطلبی رو خوندم از همین سایت ، واسه اینکه وقتی مکان نما وارد یه ادیت میشه البته با کلیک کردن تو اون ادیت ، اون ادیت رنگش تغییر میکنه :


واسه یکی از Edit ها روی OnEnter و OnExitشون کدت رو بنویس ، بعد بقیه ادیتهای روی فرم رو نتخاب کن برو تو قسمت ایونتهات و دو تا ایونتشون رو وصل کن به ایونت همون ادیت.

کار قشنگترش با کد هم اینطوریه:
کد:

procedure TTestForm.EditsEnter(Sender: TObject);
begin
(Sender as TEdit).Color := clRed;
end;

procedure TTestForm.EditsExit(Sender: TObject);
begin
(Sender as TEdit).Color := clWhite;
end;

procedure TTestForm.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to ControlCount - 1 do
if Controls[i] is TEdit then
with Controls[i] as TEdit do
begin
OnEnter := Edit1Enter;
OnExit := Edit1Exit;
end;
end;




من میخوام وقتی کاربر از دکمه های جهت دار کیبرد استفاده میکنه مکان نما وارد اون ادیت بشه و رنگش تغییر کنه !

s.mostafa.rahmani
پنج شنبه 18 مهر 1387, 09:45 صبح
procedure TForm1.EditsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_DOWN then
TForm((Sender as TControl).Parent).Perform(7388420, vk_Tab, 0);
end;

procedure TForm1.EditsEnter(Sender: TObject);
begin
(Sender as TEdit).Color := clRed;
end;

procedure TForm1.EditsExit(Sender: TObject);
begin
(Sender as TEdit).Color := clWhite;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ControlCount - 1 do
if Controls[i] is TEdit then
with Controls[i] as TEdit do
begin
OnEnter := EditsEnter;
OnExit := EditsExit;
OnKeyDown := EditsKeyDown;
end;
end;

carbon
پنج شنبه 18 مهر 1387, 15:32 عصر
اين لينك شايد مفيد باشه.
http://delphi.about.com/od/objectpascalide/a/keyboard_events.htm

yashar666
جمعه 19 مهر 1387, 23:22 عصر
این کامپوننت از همه این کارها که دوستان عزیز کردن بهتره و راحت تره

موفق باشید

فقط رنگش رو یه کم باید فکر کنی ؟!!!

tik_tak
شنبه 04 آبان 1387, 19:59 عصر
procedure TForm1.EditsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_DOWN then
TForm((Sender as TControl).Parent).Perform(7388420, vk_Tab, 0);
end;

procedure TForm1.EditsEnter(Sender: TObject);
begin
(Sender as TEdit).Color := clRed;
end;

procedure TForm1.EditsExit(Sender: TObject);
begin
(Sender as TEdit).Color := clWhite;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ControlCount - 1 do
if Controls[i] is TEdit then
with Controls[i] as TEdit do
begin
OnEnter := EditsEnter;
OnExit := EditsExit;
OnKeyDown := EditsKeyDown;
end;
end;

این واسه حرکت به پایینه
واسه دکمه هایه حرکت به چپ و راست و بالا این کد باید چه تغییری کنه
مرسی

tik_tak
یک شنبه 05 آبان 1387, 23:41 عصر
کسی نمیدونه این کده باید واسه حرکت به چپ و راست وبالا باید چه تغییری کنه:


procedure TForm1.EditsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_DOWN then
TForm((Sender as TControl).Parent).Perform(7388420, vk_Tab, 0);
end;

:افسرده:

Felony
دوشنبه 06 آبان 1387, 05:42 صبح
برای این کار در شرط این کد ( if Key = VK_DOWN then ) کلمه ی VK_DOWN رو به VK_LEFT یا VK_RIGHT بسته به نیاز خود تغییر دهید .


procedure TForm1.EditsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_LEFT then
TForm((Sender as TControl).Parent).Perform(7388420, vk_Tab, 0);
end;


procedure TForm1.EditsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RIGHT then
TForm((Sender as TControl).Parent).Perform(7388420, vk_Tab, 0);
end;

اصغر (پآچ)
دوشنبه 06 آبان 1387, 12:15 عصر
سلام دوست من

شما می تونی بری توی Help (راهنمای) خود دلفی و Virtual Key رو جستجو کنی بعد کد تمام کلید ها رو بدست میاری!

موفق و موید باشی

ahmadr
دوشنبه 06 آبان 1387, 21:14 عصر
Edit ها رو انتخاب کن(باهم) و این کد رو توی رویداد KeyDown بنویس :

if key = VK_DOWN then
SelectNext(sender as TWinControl,True,True)
else if key = VK_UP then
SelectNext(sender as TWinControl,False,True);

hassan_blue
پنج شنبه 09 آبان 1387, 12:55 عصر
keybd_event(vk_tab,0,0,0);
تو رویداد onkeypress قطعه کد بالا رو بنویس.
درواقع با این کد عمل شبیه سازی فشرده شدن کلید Tab انجام می شود.

ghasemshami
پنج شنبه 09 آبان 1387, 13:30 عصر
توی event های edit توی OnKeyPress این رو بنویس


If key=#47 then
begin
edit2.setfocus;
edit1.color=clwhite;
edit2.color=clred;

End;

اعداد بین 47 تا 50 برای مکان نما ها استفاده می شه