Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Grafikausgabe mit FreePascal (DOS) (https://www.delphipraxis.net/89411-grafikausgabe-mit-freepascal-dos.html)

Glocke89 30. Mär 2007 16:49


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:
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.
(EXE-Datei siehe Anhang)

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.

sirius 30. Mär 2007 20:52

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.

inherited 30. Mär 2007 23:57

Re: FreePascal
 
Zitat:

Zitat von Shadowraider
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.

FreePascal ist weit mehr als Pascal für DOS, es ist ebenso für eine Menge anderer Betriebssysteme und Prozessoren geeignet :)
€dit: Ach ja, ändere bitte deinen Titel in "Grafikausgabe unter FreePascal" oder etwas ähnlich sinniges :wink:

Glocke89 31. Mär 2007 11:21

Re: FreePascal
 
Zitat:

Zitat von sirius
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.

Ok, danke für die Info.

Noch eine (etwas dumm klingende) Frage:
Wie binde ich die Unit "graph" ein?
Bei Delphi 7 ging das ja glaube über

Delphi-Quellcode:
uses graph;
Geht das in meinem Fall auch?

inherited 31. Mär 2007 11:32

Re: FreePascal
 
Zitat:

Zitat von Shadowraider
Geht das in meinem Fall auch?

Klar, warum nicht?

Glocke89 31. Mär 2007 13:41

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?

sirius 31. Mär 2007 13:57

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)

Glocke89 31. Mär 2007 14:13

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:

sirius 31. Mär 2007 14:26

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;

Glocke89 31. Mär 2007 14:56

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:
unit graph;
Folgende Meldungen gibt der Compiler aus:
Code:
Fatal: Can't find unit graph
Fatal: Compilation aborted
Hat jmd. ne Idee, was da nicht hinhaut?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr.
Seite 1 von 2  1 2      

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