?
Solved

Reading in Grahpics mode

Posted on 1998-11-06
5
Medium Priority
?
240 Views
Last Modified: 2010-04-16
Hi

I am using Borland Pascal (DOS) version 7.0.  I wondered if it is possible to read from user while in graphics mode.  I mean just like Read and Readln in CRT mode.  If possible could anybody send example code.

Also anothe problem I have is I want to read a number from user, if I use integer or word and user presses a character the program will crash.  What is the best way to validate and make sure the program does not crash.

If answering please bear in mind that even though I do VB and C++ stuff, my Pascal knowledge is not that brilliant, therefore a little example code will help.

Thank you folks
0
Comment
Question by:gbzhhu
  • 2
  • 2
5 Comments
 
LVL 5

Accepted Solution

by:
scrapdog earned 100 total points
ID: 1215981
program blahblah;

var
  s :string;
  i,
  code :integer;

begin
  asm                        {these lines set graphics mode}
    mov ax,13h
    int 10h;
  end;
  readln(s);                 {this line reads a string}
  val(s,i,code);             {this line converts string s to integer i}
  if code <> 0 then writeln('error')
  else writeln(i);
  readln;
end.


Readln works in any graphics mode.  The question is whether or not it will write to the screen in the readln statement.  I know for sure that mode 13 will write to the screen, you can try it with other graphics modes too.  In any case, readln will always read what the user enters.

To answer your second question:

Always read anything the user types in into a string.  This will allows the user to enter anything without crashing the program.  After the string is read in, manually convert it to an integer using the Val procedure.  Val takes a string, and returns an integer, and another integer called Code.  You can validate whether or not the user's input was numeric by checking the value in code.  If code is not equal to zero, then there was an error.  (The value in code actually points to the position in the string where there was a nonumeric character).

Look at the code above to see how it works.


0
 
LVL 12

Author Comment

by:gbzhhu
ID: 1215982
Hi Scrapdog

The validation part of your answer works brilliant for me, however, the graphics part, I was using InitGraph statement to initialise graphics and I was using OutTextXy to write something on screen, but did not know what to use in order to read something from user while still in graphics mode.  Now readln works, but I would like to move the cursor to the position I want (somewhere in the screen) and then use readln.

Can you please have a look at the problem and see if you can help.  Is there a the equivalent in graphics mode of the following

gotoxy(12,22); readln(something);


Also I did not understand dthe assembly lines which initialise graphics (first time I have ever seen) what happened to InitGraph;  I mean the only help file I have with my Pascal is crap -- do you know a better one?

thanks again
0
 
LVL 5

Expert Comment

by:scrapdog
ID: 1215983
Let's see your source code.
0
 
LVL 7

Expert Comment

by:Motaz
ID: 1215984
Unfortunately there is no equevelant to ( gotoxy, readln ) in graphic mode, so that you must make your own gotoxy, readln procedures using readkey and OutTextXy and read any thing as string.

Motaz from Sudan.
0
 
LVL 7

Expert Comment

by:Motaz
ID: 1215985
I've fucntion that read string in graphic mode called ReadStr, you can find it in my unit which exist in my homepage :

http://members.wbs.net/homepages/a/z/z/azzoz.html

The unit called MGR.pas, you will find many examples use that unit.

You can call that function as :

St:=ReadStr(200,100,'',30);

st : string;
200 : X-cordinate
100 : Y-cordinate
''     : initial value of string
30  : maximum length of string you want to read.

If you want to set a colour for text and background you can use :

Colour(14,1);  { Yellow in Blue }

Motaz.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Currently, there is an issue with being able to copy values from an external application to a dropdown list in Project Web Access (PWA).  The standard copy and paste methods don't seem to work properly. Here is a way to accomplish this task to s…
This holiday season, we’re giving away the gift of knowledge—tech knowledge, that is. Keep reading to see what hacks, tips, and trends we have wrapped and waiting for you under the tree.
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…
Suggested Courses
Course of the Month15 days, 9 hours left to enroll

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question