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

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

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

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

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

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

يمكن حل المشكلة بان يتم طباعة السطر الاول فقط  وبعد اسناد قيمة للمتغير من المستخدم يتم طباعة السطر الثاني ===== ثم يتم تكلمة البرنامج ,, لكن اريد الشكل المرفق .
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#2
PHP كود :
var nstring ;
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 
  nstring;
begin
  writeln
('Enter Your Name : ');
  writeln('=========================');
  GotoXY(201);
  readln(n);
  GotoXY(13);
  Writeln('Hello 'n);
  readln;
end

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


PHP كود :
program Project1;

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

uses
  System
.SysUtilsCrt32 in 'Crt32.pas';

var 
nstring;

begin
  
try
    writeln('Enter Your Name : ');
    writeln('=========================');
    GotoXY(201);
    readln(n);
    GotoXY(13);
    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(201);
    textColor(Red);
    readln(n);
    GotoXY(13);
    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 nstring ;
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 
  nstring;
begin
  writeln
('Enter Your Name : ');
  writeln('=========================');
  GotoXY(201);
  readln(n);
  GotoXY(13);
  Writeln('Hello 'n);
  readln;
end

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


PHP كود :
program Project1;

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

uses
  System
.SysUtilsCrt32 in 'Crt32.pas';

var 
nstring;

begin
  
try
    writeln('Enter Your Name : ');
    writeln('=========================');
    GotoXY(201);
    readln(n);
    GotoXY(13);
    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(201);
    textColor(Red);
    readln(n);
    GotoXY(13);
    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 ) ضيف كريم