FreePascal Text in Grafik

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Peter-1
Beiträge: 5
Registriert: Fr 26. Jan 2018, 17:50

FreePascal Text in Grafik

Beitrag von Peter-1 »

Hallo zusammen,

ich bin ganz neu hier und habe ein kleines Problem.
Leider benötige ich einige alte TurboPascal Programme welche z.Zt. noch gut unter WIN XP laufen. Aber leider nicht unter WIN 7 64bit.
Also habe ich FreePascal geladen. Es läuft soweit gut wenn ich im Textmodus bleibe. Gehe ich in den Grafikmode, so gibt es nur eine Schrift. Die bisherigen Schriften über "setTextStyle" einzugeben hat kein Erfolg. Welche Möglichkeit besteht ?

Ich würde mich über Hilfe freuen.
Peter

Thandor
Beiträge: 153
Registriert: Sa 30. Jan 2010, 18:17
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
CPU-Target: 64Bit
Wohnort: Berlin

Re: FreePascal Text in Grafik

Beitrag von Thandor »

Um Grafikprogramme aus Turbopascal-Zeiten mit Lazarus zu kompileieren nutze ich gerne die Unit WinGraph.
Ganz ohne Umbau wirst du damit nicht davon kommen, aber sollte sich in Grenzen halten.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: FreePascal Text in Grafik

Beitrag von Mathias »

Also habe ich FreePascal geladen. Es läuft soweit gut wenn ich im Textmodus bleibe. Gehe ich in den Grafikmode, so gibt es nur eine Schrift. Die bisherigen Schriften über "setTextStyle" einzugeben hat kein Erfolg. Welche Möglichkeit besteht ?


Hast du dies auf diese Weise probiert ?
https://www.freepascal.org/docs-html/rt ... graph.html

Hast du noch die BGI-Dateien von TP ?
Evtl. geht es mit diesen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: FreePascal Text in Grafik

Beitrag von Mathias »

Ich habe es gerade mit folgendem Code unter WinXP getestet, sollte auch mit Win10 gehen.
Einzige Bedienung, du musst die Font-Dateien von Turbo-Pascal kopieren.
Für die Grafik-Ausgabe erfolgt in einem einfachen GDI-Fenster.

Code: Alles auswählen

program Project1;
uses
  Graph;
var
   gd,gm : SmallInt;
   PathToDriver : string;
begin
   gd:=detect;
   gm:=0;
   PathToDriver:=''; { path to BGI fonts, drivers aren't needed }
   InitGraph(gd,gm,PathToDriver);
   Line(0, 0, 100, 100);
   SetTextStyle(GothicFont, 0, 10);
   OutTextXY(10, 10, 'Hello World');
 
   ReadLn;
   CloseGraph; { restores the old graphics mode }
end.   
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Peter-1
Beiträge: 5
Registriert: Fr 26. Jan 2018, 17:50

Re: FreePascal Text in Grafik

Beitrag von Peter-1 »

Danke,

das macht Hoffnung !
Ich habe noch die *.CHR und die *.OBJ Dateien für die Schriften. Muß ich diese einbinden? Und wohin soll ich diese Dateien kopieren ?

Peter

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: FreePascal Text in Grafik

Beitrag von Mathias »

Du musst nur die CHR-Dateien kopieren, in meinem Beispiel GOTH.CHR.
Der Speicherort kannst du selbst bestimmen, der kannst du bei InitGraph angeben. Im Beispiel, hat es dort sogar einen Kommentar.

Das Einfachste ist, du kopierst den ganzen BGI-Ordner in dein Programm, dann würde es so ausssehen:

Code: Alles auswählen

   PathToDriver:='BGI'; { path to BGI fonts, drivers aren't needed }
   InitGraph(gd,gm,PathToDriver);
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Peter-1
Beiträge: 5
Registriert: Fr 26. Jan 2018, 17:50

Re: FreePascal Text in Grafik

Beitrag von Peter-1 »

Super ! Danke, danke , danke !

Genau diese Info fehlte mir. Es funktioniert!

Gruß
Peter

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: FreePascal Text in Grafik

Beitrag von Mathias »

Noch ein Hinweis, wen du anstelle von Graph ptcGraph nimmst, dann läuft es unter Windows und Linux.
Und wen man anstelle von detect zB. EGA nimmt, hat das Ausgabe-Fenster eine vernümftige Grösse.

Code: Alles auswählen

uses
  ptcGraph;
var
  gd, gm: smallint;
  PathToDriver: string;
begin
//  gd := detect;
  gd := EGA;
  gm := EGA64Hi;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Peter-1
Beiträge: 5
Registriert: Fr 26. Jan 2018, 17:50

Re: FreePascal Text in Grafik

Beitrag von Peter-1 »

Danke Mathias,

habe es getestet und es geht auch. Aber ich nutze nun den 1024x768 modus und habe ein schönes Fenster. Wichtig für mich dass die Schriften funktionieren und die üblichen Befehle für die Grafik.

Peter

Peter-1
Beiträge: 5
Registriert: Fr 26. Jan 2018, 17:50

Re: FreePascal Text in Grafik

Beitrag von Peter-1 »

Noch eine Frage.

Wenn ich die div. Schriften *.CHR in die Datei BGI stecke und diese Datei im gleichen Ordner, wo auch das Programm steht habe, so läuft alles wie gewünscht. Wie aber kann ich diese Schriften in das Programm mit einbinden, damit ich nicht immer diese BGI Datei auch dabei haben muß ? Gibt es da einen Weg ?
Peter

Antworten