home *** CD-ROM | disk | FTP | other *** search
- (* ****************************************************** *)
- (* DREHTEST.PAS *)
- (* Demonstration der Unit DrehFont *)
- (* ****************************************************** *)
- PROGRAM DrehTest;
-
- USES Objects, Drivers, Graph, DrehFont;
-
- CONST BgiPath = '\tp\bgi\';
- PiHalb : Real = pi / 2;
-
- PROCEDURE grInitVideo;
- VAR
- GraphMode, GraphDriver : INTEGER;
- xAsp, yAsp : WORD;
- BEGIN
- StartupMode := ScreenMode;
- GraphDriver := Detect;
- InitGraph(GraphDriver, GraphMode, BgiPath);
- IF GraphResult <> grOk THEN Halt(1);
- ScreenMode := GraphMode;
- InitDrehen;
- GetAspectRatio(xAsp, yAsp);
- xyRatio := xAsp/yAsp;
- END;
-
- PROCEDURE grDoneVideo;
- BEGIN
- CloseGraph;
- SetVideoMode(StartupMode);
- END;
-
- VAR
- Font, Radius, i : INTEGER;
- Aktwinkel, dRad : REAL;
- Punkt, Mitte : tPoint;
- Temp : STRING;
- RegZeiger : Pointer;
- f : File;
-
- PROCEDURE GetPunkt(VAR Punkt : tPoint);
- BEGIN
- Punkt.x := Mitte.x + Round(Radius *
- Cos(AktWinkel + piHalb));
- Punkt.y := Mitte.y - Round(Radius *
- Sin(AktWinkel + piHalb)* xyRatio);
- END;
-
- BEGIN
- Assign(f, BgiPath + 'TRIP.CHR');
- Reset(f, 1);
- GetMem(RegZeiger, FileSize(f));
- BlockRead(f, RegZeiger^, FileSize(f));
- Close(f);
- Font := RegisterBGIFont(RegZeiger);
- IF Font < 0 THEN RunError;
- grInitVideo;
- Mitte.x := GetMaxX DIV 2;
- Mitte.y := GetMaxY DIV 2;
- Radius := Mitte.x DIV 2;
- Aktwinkel := PiHalb;
- SetTextJustify(LeftText, BottomText);
- Temp := 'Hallo.Welt!';
- SetTextStyle(Font, 0, 9);
- FOR i := 1 TO Length(Temp) DO BEGIN
- dRad := TextWidth(Temp[i]) / Radius;
- SetDirection(AktWinkel - dRad/2);
- GetPunkt(Punkt);
- MoveTo(Punkt.x, Punkt.y);
- SetColor(i);
- OutText(Temp[i]);
- AktWinkel := AktWinkel - dRad;
- END;
- SetTextStyle(Font + 3, 0, 7);
- SetKursiv(20); SetGrad(0);
- MoveTo(Mitte.x, Mitte.y);
- SetTextJustify(CenterText, BottomText);
- Temp := 'Schräge'; OutText(Temp);
- SetColor(GetColor + 1);
- SetTextStyle(Font + 2, 0, 6);
- MoveRel(0, Round(TextHeight(Temp) * xyRatio));
- SetGrad(200); SetKursiv(-90);
- Temp := 'Typen'; OutText(Temp);
- ReadLn;
- grDoneVideo;
- END.
- (* ****************************************************** *)
- (* Ende von DREHTEST.PAS *)