Verfügbare Informationen zu "Graphikmodus"
Qualität des Beitrags: Beteiligte Poster: C+++ - Dragorad - Jul007 - Moritz - vpascal - jan040793 Forum: Tutorials.at Forenbeschreibung: Programmierforum aus dem Unterforum: Pascal Antworten: 27 Forum gestartet am: Mittwoch 19.04.2006 Sprache: deutsch Link zum Originaltopic: Graphikmodus Letzte Antwort: vor 16 Jahren, 5 Monaten, 3 Tagen, 20 Stunden, 10 Minuten
Alle Beiträge und Antworten zu "Graphikmodus"
Re: Graphikmodus
C+++ - 01.01.2007, 21:15Graphikmodus
Hi, erstmal ein Hallo an alle hier :D Ich hab vor ein paar Wochen mit dem Programmieren angefangen (mit Pascal da es mir für den Anfang am einfachsten ausgesehen hat :) ). Jetzt würde ich aber gerne mal den Grafischen Sachen zuwenden und nicht nur Test-basierte Dinge machen.
Da gibt es jetzt nur ein Problem:
Ich benutze FreePascal und da gibt es (wenn man nach dem Tutorial auf dieser Seite geht) ja einige Probleme, wenn man in den Grafikmodus wechseln will. Oder zumindest weiß ich das nicht,w ie es geht. Denn wen ich es 1:1 so wie im Tutorial mache, kommt ein Compiler-Fehler. Was muss ich tun um auch in FPC grafik zu verwenden? ich meine die Graph.tpu usw. sind ja eigentlich vorhanden... :cry:
Gruß
C+++
Re: Graphikmodus
Dragorad - 02.01.2007, 00:00
Ich komme folgendermaßen in den Grafikmodus:
Code: driver:=0;
initgraph(driver,mode,'c:\tp\bgi');
Im Variablenteil müssen driver und mode als integer deklariert werden.
Musst einfach mal ausprobieren ...
Re: Graphikmodus
C+++ - 02.01.2007, 00:11
hm also ich habe gerade mal etwas getestet und festgestellt, das das gleiche von mir geschriebene Programm auf einem anderen PC, der auch komplett das gleiche FreePascal hat und eigentlich auch die gleichen Einstellugen haben müsste, einwandfrei läuft, nur auf meinem nicht. Liegt das an meinem PC? Vielleicht hat es etwas mit der Grafikkarte zu tun, da diese OnBoard ist?
Gruß
C+++
EDIT: So, ich habe es nun geschaft den Grafikmodus mit der Unit Wingraph anstatt der normalen Graph zu initalisieren. Funtkioniert auch alles soweit ganz gut. Nur: ISt es möglich, das wenn man in den Grafikmodus wechselt trotzdem im Vollbildschirm bleibt (wie im Textmodus wenn man die Eingabeauffoder so konfiguriert hat.) und nicht wieder zur normalen windows-fenster-ansicht wechselt sobald man Graph benutzt?
Re: Graphikmodus
Dragorad - 03.01.2007, 00:16
Hab' zum Grafikmodus auch 'ne Frage:
Wie mache ich das, dass ich einen Punkt mittels der WASD-Tasten über dem Bildschirm flitzen lassen kann? In meinem Programm gibt's da noch 'nen Fehler! Wenn man eine Richtungstaste drückt, geht der Punkt auch nur in diese Richtung (so weit so gut :D ), aber jetzt kann ich die Richtung nicht mehr ändern!! Egal welche Taste ich drücke, der Punkt wandert stur in die eine Richtung.
Hier der Quellcode:
Code:
program test;
uses graph,crt,ugraph;
const esc=#27;
var taste:char;
driver,mode,x,y:integer;
{---------------------------------------------------------------------------}
begin driver:=0;
initgraph(driver,mode,'c:\tp\bgi');
hg(2);
x:=320;y:=240;
taste:=upcase(readkey);
cleardevice;
repeat
putpixel(x,y,15);
case taste of
'W':begin
putpixel(x,y,2);
y:=y-1;
putpixel(x,y,15);
end;
'A':begin
putpixel(x,y,2);
x:=x-1;
putpixel(x,y,15);
end;
'S':begin
putpixel(x,y,2);
y:=y+1;
putpixel(x,y,15);
end;
'D':begin
putpixel(x,y,2);
x:=x+1;
putpixel(x,y,15);
end
end;
until readkey=esc;
end.
Und hier die Prozedur ugraph (wegen dem Hintergrund):
Code:
unit ugraph;
{----------------------------------------------------------------------------}
interface
uses crt,graph,uengl;
procedure schreib(x,y:integer;text:string);
procedure vg(x:integer);
procedure hg(x:integer);
{----------------------------------------------------------------------------}
implementation
procedure schreib(x,y:integer;text:string);
begin
settextstyle(1,0,1);
outtextxy(x,y,text);
end;
procedure vg(x:integer);
begin
setcolor(x);
if (x<0) or (x>15) then
begin
fehler;
halt;
end;
end;
procedure hg(x:integer);
begin
setbkcolor(x);
if (x<0) or (x>7) then
begin
fehler;
halt;
end;
end;
end.
Und hier die Unit uengl, die für ugraph gebraucht wird:
Code:
unit uengl;
{----------------------------------------------------------------------------}
interface
uses crt,ucolor;
procedure fehler;
{----------------------------------------------------------------------------}
implementation
procedure fehler;
begin
sound(440);
delay(250);
nosound;
end;
end.
Re: Graphikmodus
Jul007 - 15.01.2007, 19:27
bei mir sagt pascal, dass er die datei EGAVGA.BGI nicht findet. sie ist aber eindeutig da...kann mir einer helfen?
Re: Graphikmodus
Dragorad - 16.01.2007, 07:53
Leg' die Datei mal ins Hauptverzeichnis von Turbo PAscal. Dann müsste es eigentlich funktionieren.
Re: Graphikmodus
Jul007 - 20.01.2007, 17:56
also ich benutz jetzt free pascal. hat auch im hauptverzeichnis nicht funktioniert.
Re: Graphikmodus
Dragorad - 20.01.2007, 23:19
Welches Zielverzeichnis für die BGIs hast du denn eingegeben? Dort müsste sie dann eigentlich hin.
Unter TP sieht der Initiierungsteil mit Pfad dann so aus:
Code: initgraph(driver,mode,'c:\tp\bgi');
Re: Graphikmodus
Moritz - 04.11.2007, 16:00
@dragorad: Mach die readkey -anweisung im Hauptprogram mal hinter das repeat
Re: Graphikmodus
Dragorad - 04.11.2007, 23:49
Ok :D
Hab' auch gesehen, was der Fehler war!
Danke (auch wenn ich inzwischen das Programm völlig vergessen hab ...) :mrgreen:
Re: Graphikmodus
Moritz - 06.11.2007, 21:56
@dragorad: Ich habe auch mal so ein Programm geschrieben, nur im Textmodus^^
ich komme bis heute nicht in den Graphikmodus
Re: Graphikmodus
Dragorad - 07.11.2007, 11:10
Wo liegt denn der Fehler?
Re: Graphikmodus
Moritz - 07.11.2007, 15:50
weder in Turbopascal noch in free p. noch in vp. kann ich die Procedur initgraph oder detectgraph verwenden.
Re: Graphikmodus
Dragorad - 07.11.2007, 21:52
Hast du auch bei USES die Unit graph mit angegeben?
Re: Graphikmodus
Moritz - 08.11.2007, 15:33
ja, aber manchmal scheint selbst die nicht existieren
Re: Graphikmodus
Dragorad - 08.11.2007, 22:52
das kapier' ich jetzt nicht genau ... eine Datei kann doch nicht mal da sein und mal nicht und dann wieder?!
Re: Graphikmodus
Moritz - 09.11.2007, 15:21
bei vp zB. kommt:
unit graph not fond
Re: Graphikmodus
Dragorad - 09.11.2007, 21:37
Da ist es natürlich wichtig zu wissen, wo die Unit gespeichert ist und ob der Compiler auch auf sie (per vorher definiertem Pfad) darauf zurückgreifen kann.
Re: Graphikmodus
Moritz - 20.11.2007, 21:33
jetzt komme ich mit free pascal in den Graphikmodus, ich habe es mir nochmal neu runtergeladen
Re: Graphikmodus
Moritz - 20.11.2007, 22:48
Nachdem ich auf meinem pc windows neu installiert habe (und meine Festplatte "totgeteilt" habe(10Partitionen)), habe ich es mir neu runtergezogen. Dann ging es...ich vermute, dass beim alten irgendwas mit der installation nicht geklappt hat!
Re: Graphikmodus
Moritz - 20.11.2007, 22:54
und gleich noch ne Frage: wie kommen die kleinen Dreiecke zustande??
Code:
program gr;
uses crt, graph;
var tr, mo: integer;
i, j, re: integer;
begin
i:=1;
j:=1;
detectgraph (tr, mo);
initgraph (tr, mo, 'D:\fpc\2.2.0\');
for re:=1 to 10 do
begin
for i:=1 to 150 do
begin
setcolor (i);
rectangle (i*10+re, i*10+re, i*10+100+re, i*10+100+re);
end;
end;
readkey;
closegraph;
readkey;
end.
Re: Graphikmodus
Dragorad - 20.11.2007, 23:05
Schön, dass es doch noch geklappt hat!
Re: Graphikmodus
vpascal - 21.11.2007, 15:32
Oh mein Gott! Sei froh das dies hier kein großes Forum ist und es hier nicht so genaugenommen wird^^ Satte 3 Posts hintereinander! Naja...
Re: Graphikmodus
Moritz - 21.11.2007, 19:17
Laut tutorial geht beim dritte Parameter von rectangle nur ein wert von 1-15
woher kommen denn hier die anderen Farben, und wie enstehen die Dreicecke?? Das Programm zecinet ja eigentlich nur vierecke! Is dass jetzt ein BUG des compilers??
Re: Graphikmodus
Dragorad - 21.11.2007, 22:35
Ich würde mal meinen, dass du durch die Überlappung der Rechtecke die 16Farb-Schranke gebrochen hast! Durch die Vermischung entstehen ja die ganzen anderen Farben, und die Dreiecke sind auch 'ne Art optische Täuschung durch die Überlappung.
Re: Graphikmodus
jan040793 - 22.11.2007, 08:32
[quote="Moritz"]und gleich noch ne Frage: wie kommen die kleinen Dreiecke zustande??
Code:
program gr;
uses crt, graph;
var tr, mo: integer;
i, j, re: integer;
begin
i:=1;
j:=1;
detectgraph (tr, mo);
initgraph (tr, mo, 'D:\fpc\2.2.0\');
for re:=1 to 10 do
begin
for i:=1 to 150 do
begin
j:=j+1;
if j=14 then j:=1;
setcolor (i);
rectangle (i*10+re, i*10+re, i*10+100+re, i*10+100+re);
end;
end;
readkey;
closegraph;
readkey;
end.
Sollte es nicht eigentlich heißen: Code:
setcolor (j);
Oder wozu ist das da Code:
j:=j+1;
if j=14 then j:=1;
dann sieht das bei mir so aus:
jetzt nur noch mit 15 Farben :D Ist aber komisch, dass FPC 150 Farben kann...
Re: Graphikmodus
Moritz - 22.11.2007, 20:24
Der teil mit dem j ist überflüssig, habe ich auch gemerkt *edit top*
Vieleicht ist das einfach ne eigenart von fpc, das man 256 Farben darstellen kann, ohne die Farbpalette neu zu definieren...(es ist ja moderner als Turbopascal)!!!
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Tutorials.at
Unterschied zwischen void Funktion und andere Funktionen - gepostet von EndSub am Montag 10.07.2006
Ein Programm um eine Nachricht zu versenden? - gepostet von niGGo am Dienstag 27.03.2007
Error - gepostet von xxx am Freitag 01.12.2006
problem beim öffnen von halloweltprogramm mit linker - gepostet von Madless am Donnerstag 13.09.2007
???? - gepostet von drubba7 am Freitag 18.05.2007
Bitte umhilfe! - gepostet von lFreshManl am Freitag 29.12.2006
Problem mit Turo Pascal Programm - gepostet von Dagoth Dut am Donnerstag 31.08.2006
Timer ? - gepostet von Martix391 am Mittwoch 31.05.2006
[C++]Problem mit Dateilese/schreibfunktion - gepostet von Dirty Oerty am Dienstag 23.01.2007
Ähnliche Beiträge wie "Graphikmodus"