Hallo,
in Delphi 5 unter Windows benutze ich z.B.:
GetOutlineTextMetrics(Canvas.Handle, sizeof(Metric), Metric);
GetDeviceCaps(Printer.Handle, LogPixelsY);
Was sind die Äquivalente, um die Anwendung auf Lazarus unter Linux zu migrieren?
Vielen Dank im voraus
Heiner
Font Daten, Drucker Auflösung
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: Font Daten, Drucker Auflösung
Es geht um das Migrieren folgender Windows Anwendung:
http://www.Wolf-Fuerth.de/cal1_de.htm" onclick="window.open(this.href);return false;
http://www.Wolf-Fuerth.de/cal_zip.exe" onclick="window.open(this.href);return false;
Wenn GetOutlineTextMetrics() unter Windows fehlschlägt, benutze ich ersatzweise
Canvas.TextHeight('Üg') * 25 div 20;
Ich brauche es, um einen sauberen Zeilenabstand für Canvas.TextOut() zu berechnen.
Für GetDeviceCaps() habe ich keinen Ersatz.
Ich brauche es, um das Vorschaufenster sauber zu zeichnen, wenn der Benutzer in der Anwendung ein Layout bearbeitet.
http://www.Wolf-Fuerth.de/cal1_de.htm" onclick="window.open(this.href);return false;
http://www.Wolf-Fuerth.de/cal_zip.exe" onclick="window.open(this.href);return false;
Wenn GetOutlineTextMetrics() unter Windows fehlschlägt, benutze ich ersatzweise
Canvas.TextHeight('Üg') * 25 div 20;
Ich brauche es, um einen sauberen Zeilenabstand für Canvas.TextOut() zu berechnen.
Für GetDeviceCaps() habe ich keinen Ersatz.
Ich brauche es, um das Vorschaufenster sauber zu zeichnen, wenn der Benutzer in der Anwendung ein Layout bearbeitet.
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: Font Daten, Drucker Auflösung
Dafür gibt es eine entsprechende Unit in Lazarus:
Bei SetPrinter muss natürlich der entsprechende Name des Druckers noch eingefügt werden. Printer.Printers liefert automatisch eine Liste aller Drucker.
alternativ:
Code: Alles auswählen
uses Printers;
//...
Printer.SetPrinter(Printer.Printers[0]);
Showmessage(IntToStr(Printer.XDPI) + ',' + IntToStr(Printer.YDPI));
alternativ:
Code: Alles auswählen
if PrintDialog1.Execute then
Showmessage(IntToStr(Printer.XDPI) + ',' + IntToStr(Printer.YDPI));
Johannes
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: Font Daten, Drucker Auflösung
Das ist ja klasse, dass es eine Property von Printer ist. In Delphi 5 gibt's die nicht.