كيف يمكن نقل المؤشر فوق الجملة المطبوعة
#1
السلام عليكم ورحمة الله وبركاته 

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

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

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

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

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

يمكن حل المشكلة بان يتم طباعة السطر الاول فقط  وبعد اسناد قيمة للمتغير من المستخدم يتم طباعة السطر الثاني ===== ثم يتم تكلمة البرنامج ,, لكن اريد الشكل المرفق .
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#2
PHP كود :
var n: string ;
begin
  write
('Enter Your Name : ') ;
  readln(n) ;
  writeln('=========================') ;
  Writeln('Hello ',n) ;
  readln ;
end. 


الملفات المرفقة
.jpg   print.jpg (الحجم : 36.93 ك ب / التحميلات : 11)
الرد
#3
حسب ما تستعمل للبرمجة (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; 


الملفات المرفقة
.zip   Crt32.zip (الحجم : 6.23 ك ب / التحميلات : 8)
[-] كل من 1 user says قال شكرا ل merouane على المشاركة المفيدة
  • ELARAPY
الرد
#4
(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 ولكن لم اتمكن من طريقة استخدامها ,
ان شاء الله ساجرب واوافيك الرد .

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

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

الوحدة Crt32.pas (للدلفي) هي فقط ما بحث عنه.
[-] كل من 1 user says قال شكرا ل merouane على المشاركة المفيدة
  • ELARAPY
الرد
#6
السلام عليكم ورحمة الله وبركاته

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

اما الباقي لم اجرب لان الدلفي غير منصب على الحاسوب لاني غيرت نسخة الويندوز .
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#7
تم تجربة جميع الاكواد وكلها تعمل بشكل جيد

بارك الله فيك اخي الحبيب .
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم