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
     
    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
     
    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
     
    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
     
    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
     
    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
     
    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
     
    Mp165:) przyjrzę się temu jeszcze raz
    • 8: CommentAuthorwojtas76
    • CommentTime15 Oct 2020
     
    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 zmieniony
     
    użyj 'DIV' zamiast '/'

    ->link<-

    możesz też podzielić przez 2 przesuwając bity 'SHR 1'
    • 10: CommentAuthorwojtas76
    • CommentTime17 Oct 2020
     
    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
     
    obsługę myszy można podejrzeć też tutaj ->link<-
    • 12: CommentAuthorwojtas76
    • CommentTime17 Oct 2020
     
    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
     
    Nie wiem w czym masz problem z pl znakami, linkujesz plik fnt i masz.