المشاركات : 245
المواضيع 69
:
: 12
الإنتساب : Jan 2013
عند أضافة اى شئ أتحكم بة من خلال لوحة المفاتيح مثلاّ عند اضافة labelوضغط زر الايمن للسهم يتحرك label الى الايمن وكذلك الى الايسر والى أعلى والى أسفل
VK_RIGHT:
VK_LEFT:
VK_DOWN:
VK_UP:
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
السلام عليكم و رحمة الله تعالى و بركاته:
أخي جرب هذا المثال لعله ينفعك:
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;
بالتوفيق
المشاركات : 245
المواضيع 69
:
: 12
الإنتساب : Jan 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]
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
اختر Object Inspector ثم Event ثم OnKeyDown
![[صورة: Jc8v6.png]](http://im32.gulfup.com/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;
Open Your Source .. Open Your Mind
المشاركات : 245
المواضيع 69
:
: 12
الإنتساب : Jan 2013
اها...
كان لازم أضعة فى الحدث KeyDown ..شكراّ جزيلاذ لك أخى.
ولكن هل يمكن أن تزيد من البيت شعراّ..**** أستخدم قاعدة if عند وصول label لنقطة معينة فى الفورم يتحقق then الامر.
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
karika2 كتب :اها...
كان لازم أضعة فى الحدث KeyDown ..شكراّ جزيلاذ لك أخى.
ولكن هل يمكن أن تزيد من البيت شعراّ..**** أستخدم قاعدة if عند وصول label لنقطة معينة فى الفورم يتحقق then الامر.
PHP كود :
if Label1.Left=SomeValue then
//Do Something..
Open Your Source .. Open Your Mind
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
السلام عليكم و رحمة الله تعالى و بركاته:
شكرا جزيلا اخي smp3 و بارك الله فيك و زادك علما نافعا
شكرا على مجهوداتك القيمة
المشاركات : 245
المواضيع 69
:
: 12
الإنتساب : Jan 2013
شكرا أخى ..
وعارف انى ثقلت عليك بكثرة أسئلتى..
if Label1.Left=SomeValue then
if Label1.Left=100 then .
كنت ****ة أن أجعلة فى نقطة محددة بمعنى أن 100 بتمثلى الخط الافقى ... **** أن أظبط النقطة عند الخط العمودى واليك صورة للتوضيح..
كود :
http://www13.0zz0.com/2013/10/07/18/755725914.jpg
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
السلام عليكم و رحمة الله تعالى و بركاته:
أخي أفقيا تعامل مع الخاصية: 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 و انت غير كما شئت
بالتوفيق
المشاركات : 245
المواضيع 69
:
: 12
الإنتساب : Jan 2013
شكراّ لكم جميعاّ دائماّ أستفاد من خبراتكم العالية :::