logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak wysunąć tackę CD-ROM w Turbo Pascal 7.0?

kacperus17 02 Lip 2006 13:43 1001 8
REKLAMA
  • #1 2783249
    kacperus17
    Poziom 11  
    Posty: 44
    Ocena: 2
    witam wszystkich...i od razu do rzeczy : programuje w Turbo Pascalu 7.0 i chcem napisac program który wysuwa tacke od cd-romu kiedy nacisne jakis tam przycisk...mam program (gotowy , sciągnięty z jakiejs tam strony) ale jest problem :

    Program CDROMCOM;
    Uses CDROM;

    Var B : Boolean;

    Procedure Help;
    Begin
    Writeln ('Usage CDROMCOM <command> where command is');
    Writeln (' p for play');
    Writeln (' s for stop');
    Writeln (' o for open tray');
    Writeln (' c for close tray');
    Writeln (' i for time/track info');
    End;

    Procedure CDopen;
    Begin
    Writeln('Opening CD player...');
    B:= CDEject;
    End;

    Procedure CDclose;
    Begin
    Writeln('Closing CD player...');
    B:= CDCloseTray;
    End;

    Procedure StopCD;
    Begin
    Writeln('CD stopped.');
    B:= CDStop;
    End;


    Procedure CDshowinfo;
    Var Posinf : CDPosType;
    Temp : string;
    Begin
    B:= cdgetpos(posinf);
    str(posinf.sec, temp);
    if posinf.sec < 10 then temp := '0' + temp;
    Writeln('Track : ',Posinf.Track:2,' - Time : ',posinf.min:2,':',temp);
    str(posinf.dsec, temp);
    if posinf.dsec < 10 then temp := '0' + temp;
    Writeln('Played total time : ',posinf.dmin:2,':',temp);
    end;

    Procedure CDplay;
    var Len : longint;
    inf : CDInfoRecord;
    Posinf : CDPosType;
    T : byte;
    Begin
    Writeln('Playing CD ...');
    T:= 1;
    B:= CDPlayAudio(T,$FFFFFFF);
    cdshowinfo;
    End;

    i przy kompilowaniu jest : File not found <CDROM.TPU> :(
    mam tez moduł do obslugi cd-romu ale on tez nie dziala :( co jest nie tak ? moze ktos ma prostszy sposób na "wysunięcie tacki" ??


    pozdrawiam
  • REKLAMA
  • #2 2783333
    maciek_slon
    Poziom 29  
    Posty: 942
    Pomógł: 143
    Ocena: 27
    a co nie działa w module obsługi CD? nie kompiluje się? jaki masz system operacyjny?
  • REKLAMA
  • #3 2783352
    kacperus17
    Poziom 11  
    Posty: 44
    Ocena: 2
    mam XP i wszystkie programy dzialają ... a w module (jest za dlugi by go wkleic chyba ze chcesz to wkleje...)
    jest " Invalid qualifier" i jest wskazana linijka z blędem ...
  • REKLAMA
  • #4 2784355
    maciek_slon
    Poziom 29  
    Posty: 942
    Pomógł: 143
    Ocena: 27
    umieść wszystkie pliki jako załączniki, zobaczę co się da zrobić i o co chodzi :-)
  • #5 2784456
    kacperus17
    Poziom 11  
    Posty: 44
    Ocena: 2
    już się robi :) to jest ten moduł a program jest napisany wczesniej
    Załączniki:
    • cdrom.TXT (10.45 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #6 2787494
    maciek_slon
    Poziom 29  
    Posty: 942
    Pomógł: 143
    Ocena: 27
    z tego co widzę to jest taki sam program jaki ja znalazłem ładnych kilka lat temu - bardzo prawdopodobne że nie jest po prostu przystosowany do pracy w systemie winXP.

    ale po głębszym zanalizowaniu sprawy i wrzuceniu kodu do kompilatora - należy poprawić dwa błędy żeby się kompilowało :-) zamiast ^^ w tej linijce co pokazuje błąd wpisz jedno ^, potem pokaże jeszcze jeden błąd,
    IF (CDHandle 0) THEN

    zmień na
    IF (CDHandle <> 0) THEN


    i się skompiluje. potem powiedz czy nadal masz problemy...
  • #7 2789173
    kacperus17
    Poziom 11  
    Posty: 44
    Ocena: 2
    kompilowac teraz to juz sie kompiluje :D ale jak chcem uruchomic ten modul to jest " Cannot run a unit " ... a mam pytanie :
    czemu ten program co wczesniej go opisalem nie dziala ?
    co jest z tym plikiem <CDROM.TPU>
  • #8 2789867
    maciek_slon
    Poziom 29  
    Posty: 942
    Pomógł: 143
    Ocena: 27
    po prostu go nie było. miałeś plik cdrom.pas, który po skompilowaniu daje plik cdrom.tpu. ale że się nie kompilował to nie było pliku .tpu :-) dlatego krzyczał.

    a po drugie - modułu się nie uruchamia - moduł się kompiluje i builduje :P czyli w menu compile klikamy na BUILD. Jeśli nadal plik .tpu się nam nie pojawi w katalogu to trzeba sprawdzić czy w menu compile opcja DESTINATION jest ustawiona na DISK. Jeśli jest tam napisane MEMORY - to klikamy to i się zmieni na DISK. A potem znów COMPILE -> BUILD.

    Jak już będziesz miał plik .tpu możesz kompilować swój program korzystający z tego modułu.

    Powodzenia ;-)
  • #9 2790480
    kacperus17
    Poziom 11  
    Posty: 44
    Ocena: 2
    OK dzieki juz wszystko dziala :D dzieki jeszcze raz i pozdro :D

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemu z napisaniem programu w Turbo Pascal 7.0, który wysuwa tackę CD-ROM po naciśnięciu przycisku. Użytkownik posiada gotowy kod wykorzystujący moduł CDROM, jednak pojawia się błąd "Invalid qualifier" podczas kompilacji. Okazało się, że program nie jest w pełni kompatybilny z systemem Windows XP. Po poprawieniu dwóch błędów składniowych w kodzie (zamiana podwójnego znaku ^ na pojedynczy oraz zmiana warunku IF (CDHandle 0) na IF (CDHandle 0)) program kompiluje się poprawnie. Problemem był również brak pliku cdrom.tpu, który powstaje po skompilowaniu modułu cdrom.pas. Należy skompilować moduł z ustawieniem DESTINATION na DISK, aby uzyskać plik .tpu, który jest wymagany do kompilacji programu głównego. Po tych poprawkach program działa poprawnie pod Windows XP.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA