delphi4arab منتديات دلفي للعرب
كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ (/showthread.php?tid=5611)



كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - karika2 - 06-10-2013

عند أضافة اى شئ أتحكم بة من خلال لوحة المفاتيح مثلاّ عند اضافة labelوضغط زر الايمن للسهم يتحرك label الى الايمن وكذلك الى الايسر والى أعلى والى أسفل
VK_RIGHT:
VK_LEFT:
VK_DOWN:
VK_UP:


كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - makhlouf - 06-10-2013

السلام عليكم و رحمة الله تعالى و بركاته:
أخي جرب هذا المثال لعله ينفعك:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RIGHT then
label1.Left:=label1.Left+10;
if key=VK_LEFT then
label1.Left:=label1.Left-10;
if key=VK_UP then
label1.top:=label1.top-10;
if key=VK_DOWN then
label1.top:=label1.top+10;

end;
بالتوفيق


كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - karika2 - 06-10-2013

اخى ظهرلى أخطاء
Build
[COLOR="Red"] [Error] Unit1.pas(25): Undeclared identifier: 'FormKeyDown'
[Error] Unit1.pas(25): ';' expected but '(' found
[Error] Unit1.pas(26): ';' expected but ')' found
[Error] Unit1.pas(29): Undeclared identifier: 'label1'
[Error] Unit1.pas(29): Missing operator or semicolon
[Error] Unit1.pas(31): Missing operator or semicolon
[Error] Unit1.pas(31): Missing operator or semicolon
[Error] Unit1.pas(33): Missing operator or semicolon
[Error] Unit1.pas(33): Missing operator or semicolon
[Error] Unit1.pas(35): Missing operator or semicolon
[Error] Unit1.pas(35): Missing operator or semicolon
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'
[/COLOR]


كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - SMP3 - 06-10-2013

اختر Object Inspector ثم Event ثم OnKeyDown
[صورة: Jc8v6.png]
ثم ضع الكود التالي :
PHP كود :
//makhlouf

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RIGHT then
label1
.Left:=label1.Left+10;
if 
key=VK_LEFT then
label1
.Left:=label1.Left-10;
if 
key=VK_UP then
label1
.top:=label1.top-10;
if 
key=VK_DOWN then
label1
.top:=label1.top+10;

end; 



كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - karika2 - 06-10-2013

اها...
كان لازم أضعة فى الحدث KeyDown ..شكراّ جزيلاذ لك أخى.
ولكن هل يمكن أن تزيد من البيت شعراّ..**** أستخدم قاعدة if عند وصول label لنقطة معينة فى الفورم يتحقق then الامر.


كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - SMP3 - 06-10-2013

karika2 كتب :اها...
كان لازم أضعة فى الحدث KeyDown ..شكراّ جزيلاذ لك أخى.
ولكن هل يمكن أن تزيد من البيت شعراّ..**** أستخدم قاعدة if عند وصول label لنقطة معينة فى الفورم يتحقق then الامر.

PHP كود :
if Label1.Left=SomeValue then 
//Do Something.. 



كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - makhlouf - 06-10-2013

السلام عليكم و رحمة الله تعالى و بركاته:
شكرا جزيلا اخي smp3 و بارك الله فيك و زادك علما نافعا
شكرا على مجهوداتك القيمة


كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - karika2 - 07-10-2013

شكرا أخى ..
وعارف انى ثقلت عليك بكثرة أسئلتى..
if Label1.Left=SomeValue then
if Label1.Left=100 then .
كنت ****ة أن أجعلة فى نقطة محددة بمعنى أن 100 بتمثلى الخط الافقى ... **** أن أظبط النقطة عند الخط العمودى واليك صورة للتوضيح..
كود :
http://www13.0zz0.com/2013/10/07/18/755725914.jpg



كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - makhlouf - 08-10-2013

السلام عليكم و رحمة الله تعالى و بركاته:
أخي أفقيا تعامل مع الخاصية: Label1.Left أما عموديا فتعامل مع الخاصية: label1.top مثل:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RIGHT then
begin
label1.Left:=label1.Left+10;
if label1.Left>300 then
label1.Left:=300
end;
if key=VK_LEFT then
begin
label1.Left:=label1.Left-10;
if label1.Left<100 then
label1.Left:=100
end;
if key=VK_UP then
begin
label1.top:=label1.top-10;
if label1.Top<100 then
label1.Top:=100;
end;
if key=VK_DOWN then
begin
label1.top:=label1.top+10;
if label1.Top>300 then
label1.Top:=300;
end;
end;


في المثال تتحرك صعودا و نزولا يمينا و شمالا في مساحة بين 100 و 300 و انت غير كما شئت
بالتوفيق


كيف أتحكم فى المكون من خلال لوحة المفاتيح..؟ - karika2 - 04-02-2014

شكراّ لكم جميعاّ دائماّ أستفاد من خبراتكم العالية :::