Problem z myszką w pascalu

0

Zaliczyłem ostatnio mały 'downgrade', mianowicie z c# muszę przesiąść się na pascala ;/ wziąłem z netu bibliotekę do obsługi myszki o treści:

unit myszka;

interface

uses crt,graph,dos;

procedure pokazmyszke;
procedure schowajmyszke;
procedure ustawmyszke(x1,y1,x2,y2:word);
procedure pobierzmyszke(var x,y,butt:word);

implementation

procedure pokazmyszke;
var
 r:registers;
begin
 r.ax:=$0001;
 intr($33,r);
end;

procedure schowajmyszke;
var
 r:registers;
begin
 r.ax:=$0002;
 intr($33,r);
end;

procedure ustawmyszke(x1,y1,x2,y2:word);
var
 r:registers;
begin
 r.ax:=$0007;
 r.cx:=x1;
 r.dx:=x2;
  intr($33,r);
 r.ax:=$0008;
 r.cx:=y1;
 r.dx:=y2;
  intr($33,r);
end;

procedure pobierzmyszke(var x,y,butt:word);
var
 r:registers;
begin
 r.ax:=$0003;
 intr($33,r);
 x:=r.cx;
 y:=r.dx;
 butt:=r.bx;
end;

begin
end.

To była oddzielna biblioteka. Cała reszta wygląda tak:

 PROCEDURE SprawdzMyszke;
       BEGIN
            PobierzMyszke(X,Y,PRZYCISKI);
          If (PRZYCISKI=1) Then
          Begin
               If (X>0) AND (y>0) AND (x<200) AND (y<200) Then writeln('b');


          End;
       End;
PROCEDURE VgaOn;
Var
  driver,mode:integer;
Begin
  driver:=vga; mode:=vgahi;
  InitGraph(driver,mode,'c:\TP\bgi');         
End;

     Begin
       Sound(1000);
       Delay(1000);
       writeln('a');

       VgaOn;
       Klawisze(9,9);
       UstawMyszke(1,1,635,475);
       PokazMyszke;
       Repeat
                SprawdzMyszke;

       Until Keypressed;
           Nosound;                                
       CloseGraph;
       End.

Jednak przy kliknięciu w dany obszar, w konsoli, którą mam otwartą obok, nie pojawia się tekst (literka b). Dla sprawdzenia (na wszelki wypadek), czy wpisywanie tekstu do konsoli działa, kazałem mu wpisać najpierw literkę a, i ona się pojawia. W czym leży problem? Korzystałem z gotowego poradnika, i tam wszystko działa. Zrobiłem wszystko <chyba> tak jak trzeba. Z góry dzieki za pomoc. Win XP Tablet Edition/Free Pascal IDE for Win32

0

A nie powinno być dla trybu graficznego tak:

               If (X>0) AND (y>0) AND (x<200) AND (y<200) Then outtextxy(10,10,'A');
0

Free Pascal IDE for Win32
Używasz nowoczesnego kompilatora dla Windows, a korzystasz z przedpotopowego modułu myszki i grafiki przeznaczonych dla DOS-a.
Jakimś cudem to ci działa — dzięki emulacji, ale to nie znaczy że tak należy pisać.
Odpowiedź dostałeś — w module Graph piszemy przez outtextxy a nie writeln.
Ale lepiej przejść na jakąś porządną bibliotekę np. SDL.

0

Natrafiłem na stronkę http://www.freepascal-meets-sdl.net/ :) dalej chyba sobie poradzę :) jakby co to będę pisał. Bardzo dziękuję za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1