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=10357)



كيف يمكن نقل المؤشر فوق الجملة المطبوعة - ELARAPY - 02-08-2019

السلام عليكم ورحمة الله وبركاته 

لدينا جملة مطبوعه والمؤشر ينتظر ادخال قيمة من المستخدم لوضعها في متغير ما , فكيف يمكن نقل المؤشر اعلى جملة تم طباعتها ؟

PHP كود :
var n: string ;
begin
   writeln
('Enter Your Name : ') ;
   write('=========================') ;
   readln(n) ;
   Writeln('Hello ',n) ;
   readln ;
end. 

عندما يكون البرنامج بانتظار ادخال قيمة n فكيف يمكن ان يظهر المؤشر في شاشة الكونسول اعلى السطر المطبوع '=========================' ؟

الشكل الذي اريده
                           -  : Enter Your Name
                           =============

مؤشر الكتابة او الكارسول الذي لونه احمر اريده في نفس طباعة السطر الاول ينتظر ادخال قيمة المتغير ويكون السطر الثاني ايضا قد طبع .

يمكن حل المشكلة بان يتم طباعة السطر الاول فقط  وبعد اسناد قيمة للمتغير من المستخدم يتم طباعة السطر الثاني ===== ثم يتم تكلمة البرنامج ,, لكن اريد الشكل المرفق .


RE: كيف يمكن نقل المؤشر فوق الجملة المطبوعة - onexite - 03-08-2019

PHP كود :
var n: string ;
begin
  write
('Enter Your Name : ') ;
  readln(n) ;
  writeln('=========================') ;
  Writeln('Hello ',n) ;
  readln ;
end. 



RE: كيف يمكن نقل المؤشر فوق الجملة المطبوعة - merouane - 03-08-2019

حسب ما تستعمل للبرمجة (FreePascel, TurboPascal أو دلفي)

للانتقال بين سطور وأعمدة شاشة terminal (الكونسول) تستعمل الوحدة CRT (تحتاج لإضافتها في دلفي، عكس lazarus ( freePascal ) فإنها موجودة)
عبر الإجراء GotoXY.



Lazarus (أو FreePAscal)


PHP كود :
program project1;

uses Crt;

var 
  n: string;
begin
  writeln
('Enter Your Name : ');
  writeln('=========================');
  GotoXY(20, 1);
  readln(n);
  GotoXY(1, 3);
  Writeln('Hello ', n);
  readln;
end. 

أما دلفي استعمل الوحدة Crt32.pas تجدها في الأنترنت (أرفقت واحدة) - لاحظ أن الوحدة Crt32.pas في نفس مجلد المشروع.


PHP كود :
program Project1;

{
$APPTYPE CONSOLE}
{
$R *.res}

uses
  System
.SysUtils, Crt32 in 'Crt32.pas';

var 
n: string;

begin
  
try
    writeln('Enter Your Name : ');
    writeln('=========================');
    GotoXY(20, 1);
    readln(n);
    GotoXY(1, 3);
    writeln('Hello ', n);
    readln;
  except
    on E
: Exception do
      writeln(E.ClassName, ': ', E.Message);
  end;
end. 

جرب هذا Cool

PHP كود :
    writeln('Enter Your Name : ');
    textColor(blue);
    writeln('=========================');
    GotoXY(20, 1);
    textColor(Red);
    readln(n);
    GotoXY(1, 3);
    textColor(white);
    write('Hello ');
    textColor(LightCyan);
    write(n);
    readln; 



RE: كيف يمكن نقل المؤشر فوق الجملة المطبوعة - ELARAPY - 03-08-2019

(03-08-2019, 06:51 AM)onexite كتب :
PHP كود :
var n: string ;
begin
  write
('Enter Your Name : ') ;
  readln(n) ;
  writeln('=========================') ;
  Writeln('Hello ',n) ;
  readln ;
end. 

لا يا اخي الحبيب ليس هذا ما قصدته, انا اقصد ان يتم طباعة سطرين ويكون المؤشر بجوار السطر الاول وليس الثاني وهذا قبل اسناد قيمة للمتغير .



(03-08-2019, 09:45 AM)merouane كتب : حسب ما تستعمل للبرمجة (FreePascel, TurboPascal أو دلفي)

للانتقال بين سطور وأعمدة شاشة terminal (الكونسول) تستعمل الوحدة CRT (تحتاج لإضافتها في دلفي، عكس lazarus ( freePascal ) فإنها موجودة)
عبر الإجراء GotoXY.



Lazarus (أو FreePAscal)


PHP كود :
program project1;

uses Crt;

var 
  n: string;
begin
  writeln
('Enter Your Name : ');
  writeln('=========================');
  GotoXY(20, 1);
  readln(n);
  GotoXY(1, 3);
  Writeln('Hello ', n);
  readln;
end. 

أما دلفي استعمل الوحدة Crt32.pas تجدها في الأنترنت (أرفقت واحدة) - لاحظ أن الوحدة Crt32.pas في نفس مجلد المشروع.


PHP كود :
program Project1;

{
$APPTYPE CONSOLE}
{
$R *.res}

uses
  System
.SysUtils, Crt32 in 'Crt32.pas';

var 
n: string;

begin
  
try
    writeln('Enter Your Name : ');
    writeln('=========================');
    GotoXY(20, 1);
    readln(n);
    GotoXY(1, 3);
    writeln('Hello ', n);
    readln;
  except
    on E
: Exception do
      writeln(E.ClassName, ': ', E.Message);
  end;
end. 

جرب هذا Cool

PHP كود :
    writeln('Enter Your Name : ');
    textColor(blue);
    writeln('=========================');
    GotoXY(20, 1);
    textColor(Red);
    readln(n);
    GotoXY(1, 3);
    textColor(white);
    write('Hello ');
    textColor(LightCyan);
    write(n);
    readln; 


بارك الله فيك اخي , والله كنت متخيل ان اجد تعليمة GOTO ولكن لم اتمكن من طريقة استخدامها ,
ان شاء الله ساجرب واوافيك الرد .

لي سؤال لو سمحت هل هذه المعلومة قديمة عندك ام انك بحثت ووجدتها ثم قمت بالرد ؟



RE: كيف يمكن نقل المؤشر فوق الجملة المطبوعة - merouane - 03-08-2019

(03-08-2019, 08:08 PM)ELARAPY كتب : لي سؤال لو سمحت هل هذه المعلومة قديمة عندك ام انك بحثت ووجدتها ثم قمت بالرد ؟

أنا من جيل تعلم البرمجة بلغة باسكال عبر TurboPascal ، ثم كان الانتقال إلى دلفي.
كنا لكي ننتج برنامج نحتاج لرسمه وتلوينه، ثم العودة إلى أماكن الإدخال، ثم نمسح كل شيء. ثم نفس العلمية من جديد.

الوحدة Crt32.pas (للدلفي) هي فقط ما بحث عنه.


RE: كيف يمكن نقل المؤشر فوق الجملة المطبوعة - ELARAPY - 07-08-2019

السلام عليكم ورحمة الله وبركاته

اشكرك اخي الكريم على الرد والتفضل علي بما لديك , لقد قمت بتجربة الكود الاول وهو يعمل بشكل ممتاز بارك الله فيك

اما الباقي لم اجرب لان الدلفي غير منصب على الحاسوب لاني غيرت نسخة الويندوز .


RE: كيف يمكن نقل المؤشر فوق الجملة المطبوعة - ELARAPY - 13-09-2019

تم تجربة جميع الاكواد وكلها تعمل بشكل جيد

بارك الله فيك اخي الحبيب .