![]() |
Grafikausgabe mit FreePascal (DOS)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leutz
ich bin ein kleiner DOS-Freak und habe mir FreePascal für DOS heruntergeladen. Das ganze sieht ganz gut aus und ich habe auch schon meine erstes "Programm" damit geschrieben....
Code:
(EXE-Datei siehe Anhang)
program Zahlenraten;
var zufall,eingabe:integer; {Unterprogramm Zahl_bestimmen} procedure Zahl_bestimmen(var z:integer); begin randomize; z:=random(10)+1 end; {Unterprogramm Zahl_eingeben} procedure Zahl_eingeben(var e:integer); begin ReadLn(e) end; {Unterprogramm Zahl_pruefen} function Zahl_pruefen(z,e:integer):boolean; begin if z=e then Zahl_pruefen:=true else Zahl_pruefen:=false end; {Aufruf Hauptprogramm} begin Zahl_bestimmen(zufall); WriteLn('Bitte eine beliebige Zahl zwischen 1 und 10 eingeben!'); Zahl_eingeben(eingabe); if (1<=eingabe) and (eingabe<=10) then if Zahl_pruefen(zufall,eingabe)=true then WriteLn('Richtig geraten! Die Zahl war ',zufall,'.') else WriteLn('Falsch geraten! Die Zahl war ',zufall,'.') else WriteLn('Ungueltige Zahl!') end. Auf jeden Fall wollte ich fragen, ob bei Pascal für DOS Grafikausgaben möglich sind und wenn ja, wie diese (erstmal ganz einfach) zu realisieren sind. EDIT: Titel auf Wunsch angepasst. |
Re: FreePascal
Da gab es früher mal die Unit "graph" dazu (weis nicht, wie das bei freePascal ist) und darin waren die ganzen Grafikroutinen. Zuerst musste man mit initgraph in den grafikmodus schalten (dabei auch angeben, welcher grafikmodus) und mit "closegraph" kam man dann wieder zurück.
und dann gab es solche rountinen wie: PutPixel Line LineTo MoveTo TextOut TextoutXY GetPixel PutImage GetImage -- es gab auch sowas für Rechtecke, Kreise,... So in etwa. Ist schon lange her. |
Re: FreePascal
Zitat:
€dit: Ach ja, ändere bitte deinen Titel in "Grafikausgabe unter FreePascal" oder etwas ähnlich sinniges :wink: |
Re: FreePascal
Zitat:
Noch eine (etwas dumm klingende) Frage: Wie binde ich die Unit "graph" ein? Bei Delphi 7 ging das ja glaube über
Delphi-Quellcode:
Geht das in meinem Fall auch?
uses graph;
|
Re: FreePascal
Zitat:
|
Re: Grafikausgabe mit FreePascal (DOS)
Das mit Graph funktioniert bei mir (DOS-Variante) nicht.
Bei Delphi 7 kann man ja einzelne Pixel einfärben. Das geht hier doch sicher auch, oder? |
Re: Grafikausgabe mit FreePascal (DOS)
Liste der Anhänge anzeigen (Anzahl: 1)
Oh wunder! Die alten Disketten sind noch lesbar....
Also, ich habe mal gekramt. Im Anhang hängt ein Grafikprogramm, was unter TP 6.0 programmiert wurde. Das Programm ist alt und ohne OOP geschrieben, also etwas undurchsichtig. Prinzipiell ist es: "Türme von Hanoi". Da befindet sich eine procedure "init" gleich am Anfang. Die initialisiert nicht nur die Grafik, sondern sucht auch noch den Grafiktreiber (hier die egavga.bgi) unter ausgesuchten Pfaden (siehe unter "const"). Hinweis (falls du das Programm starten willst): Da du die Unit packen nicht hast, fehlen dir die Routinen unpackstring und packstring. Die kannst du weglassen (Ergebnis der Routinen = erster Parameter) |
Re: Grafikausgabe mit FreePascal (DOS)
Thx, aber ich check da leider nicht durch :cry:
Haste 'ne Idee, wie ich einzelne Pixel einfärben kann? Das würde mir schon helfen :coder2: |
Re: Grafikausgabe mit FreePascal (DOS)
Also, wenn du direkt in DOS programmierst, geht das nicht. DOS ist im Textmodus. Da kannst du nur Text ausgeben und keine einzelnen Pixel färben. Du musst erst in den Grafimodus schalten:
Delphi-Quellcode:
var graphicdriver, graphicmode : integer;
bgipfad:string; begin //ich glaube, du kannst hier auch jeweils 0 einsetzen graphicdriver:=vga; graphicmode:=vgahi; //hier musst du das entspr. Verzeichnis bei dir suchen, oder im Netz nach dieser Datei bgipfad:='C:\ ... \egavga.bgi'; //es gibt auch andere BGIs für cga und svga //Treiber initialisieren initgraph(graphicdriver,graphicmode,bgipfad); //so, und hier kannst du zeichnen pupixel(10,10,white); //... //Grafimkoeus beenden closegraph; end; |
Re: Grafikausgabe mit FreePascal (DOS)
Ich hab noch 2 Probleme:
(1) Wo finde ich die Datei egavga.bgi? Kannst du mir die evtl. als Dateianhang geben :zwinker: (2) Mein FreePascal findet die Unit graph nicht.
Delphi-Quellcode:
Folgende Meldungen gibt der Compiler aus:
unit graph;
Code:
Hat jmd. ne Idee, was da nicht hinhaut?
Fatal: Can't find unit graph
Fatal: Compilation aborted |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz