atarionline.pl MadPascal - typy danych a textout - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorwojtas76
      • CommentTime14 Oct 2020 22:10
       
      Zgodnie z biblioteką S2: dla VBXE powinniśmy mieć
      TextOut(x(word), y(byte),'text'). Trochę by się prosiło integer jak np. w Line (x1,y1,x2,y2). Tylko jak x czy y podamy z pętli no to mamy integer. Jakieś propozycje?
      • 2: CommentAuthortebe
      • CommentTime15 Oct 2020 08:10
       
      integer to spora przesada, 32bit signed, -2147483648..2147483647

      w Line jest smallint, 16bit signed, -32768..32767

      a jakiej rozdzielczości używasz że potrzebujesz coś więcej niż wartość Y=[0..255] ?

      S2: korzysta z OS-a dla ustalenia pozycji X:Y, X zapisuje do COLCRS ($55,$56)
      ->link<-

      a Y zapisuje do ROWCRS ($54)
      ->link<-

      S2: nie przewiduje możliwości pozycji Y większej niż 255
      • 3: CommentAuthorwojtas76
      • CommentTime15 Oct 2020 10:10
       
      Zgadza się smallint.. jak w np line...ale nie chodziło mi o rozdzielczość.. tylko o to że do line podkładam x,y prosto z pętli a do textout Word/byte.. na odwrót nie próbowałem.. tzn do line Word/byte... Na razie poradziłem textout(Word(x),byte(y),'t xt')
      • 4: CommentAuthortebe
      • CommentTime15 Oct 2020 10:10
       
      nie musisz podawać typu w stylu 'word(variable)', kompilator powinien sam przekształcić do odpowiedniego typu jaki został zadeklarowany w procedurze/funkcji

      możesz też ustawić pozycję przez Position(x,y) a potem tylko przez krótszą wersję TextOut -> TextOut('string')
      • 5: CommentAuthorwojtas76
      • CommentTime15 Oct 2020 11:10
       
      Mówimy o np
      Var
      A as Integer
      B as Word

      Begin
      ...
      A:=B;

      ...
      End
      Ale to nie zadziałało
      • 6: CommentAuthortebe
      • CommentTime15 Oct 2020 12:10
       
      na pewno używasz aktualną wersję MP (conajmniej 164), nie do końca rozumiem tą potrzebę konwersji typu, obecne MP powinien wybrać właściwą wersję procedury na postawie parametrów jakie przekazujesz

      konwersja typu odbywa się automatycznie
      • 7: CommentAuthorwojtas76
      • CommentTime15 Oct 2020 13:10
       
      Mp165:) przyjrzę się temu jeszcze raz
      • 8: CommentAuthorwojtas76
      • CommentTime15 Oct 2020 23:10
       
      Jednak trochę inaczej...

      var
      kol,wier,xpos,ypos,x,y: smallint;

      const
      x0=50;
      y0=10;
      szer=30;
      wys=20;

      //xpos:=word((x0+x+szer/2-(length(tekst))*4)/256);

      xpos:=x0+x+szer/2-(length(tekst))*4;

      TextOut(xpos,ypos, 'tekst');

      Wywołuje błąd "Incompatible types: got "REAL" expected "SMALLINT"", wersja xpos:=word(..) działa. Nie chodzi tyle o typy danych, a właściwie tylko o dzielenie przez 2 ->szer/2 co zauważyłem.
      • 9: CommentAuthortebe
      • CommentTime16 Oct 2020 00:10 zmieniony
       
      użyj 'DIV' zamiast '/'

      ->link<-

      możesz też podzielić przez 2 przesuwając bity 'SHR 1'
      • 10: CommentAuthorwojtas76
      • CommentTime17 Oct 2020 20:10
       
      ok za dużo basica i swobody... wydawało mi się że skoro stała jest całkowita i wynik(w głowie)... to też i w pascalu.. no cóż.. podstawy się kłaniają.. Ale poszło do przodu (że aż poszedłem spać o 4).. Na razie optymalizuję rysowanie, bo ma być na vbxe i bez. Idealnie było by na trybie znakowym ale 80 ledwo by starczyło.. Zresztą i tak programik z ...90lat który "odżywiam" zamknę w 10% w temacie rysowania.. żenada ale działo... I tak będzie sporo pytań będzie na pewno..
      Przesuwanie bitów na razie sobie podaruje.. :)

      Super projekt z tym Pascalem.

      Myszka i polskie znaki zapodać z asm? bo chyba nie zauważyłem w doku..
      Pozdrawiam
      • 11:
         
        CommentAuthorsun
      • CommentTime17 Oct 2020 20:10
       
      obsługę myszy można podejrzeć też tutaj ->link<-
      • 12: CommentAuthorwojtas76
      • CommentTime17 Oct 2020 21:10
       
      ciekawy program ale go nie sprawdzałem "na żywo" chyba fajny mouse był w trzmielu z mirage.. na pl znaki mam z koncept z 90lat zobaczymy jak się sprawdzi
      • 13:
         
        CommentAuthorsun
      • CommentTime18 Oct 2020 17:10
       
      Nie wiem w czym masz problem z pl znakami, linkujesz plik fnt i masz.