Announcement

Collapse
No announcement yet.

Delphi 4 und große Schriftarten.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delphi 4 und große Schriftarten.

    Hallo!

    Ich habe immer wieder die gleichen Probleme mit Delphi 4!
    Wenn ich eine Anwendung erstellt habe und diese meinen Kollegen zum
    Test vorlege, der mit großen Schriftarten arbeitet, so werden meine
    Fenster "entstellt"!
    Anscheinend steht Delphi 4 mit dieser Art von Schriftart auf Kriegsfuß.
    Nicht nur, daß Texte abgeschnitten werden, was ja mein Fehler wäre.
    Vielmehr werden Scrollbars eingeblendet, die auch durch Aufziehen
    des Fensters nicht verschwinden (Es gibt Buttons mit einem
    Anker auf die rechte untere Ecke).
    Lösung: BorderStyle := bsDialog AutoScale; Scaled := false;
    Kennt jemand eine bessere Lösung?

    Jetzt setzt die TLabel-Komponente dem allen die Krone auf!
    Ich habe einen Text, den ich rechtsbündig ausgerichtet habe.
    Bei kleinen Schriftarten kein Problem.
    Werden große Schriftarten verwendet, so wird das Textfeld nach links
    erweitert (toll), leider aber nicht weit genug. Ergebnis: Die von mir
    erwünschte Ausrichtung ist für die Katz!

    Hat hier irgendjemand ähnliche Probleme?

    mfg Thomas

  • #2
    Hallo,

    das Problem liegt nicht primär bei Delphi, sondern beim (zu faulen) Entwickler. Eine brauchbare Lösung für dieses Problem stelle ich in meinem neuen Buch <b>Delphi Win32-Lösungen</b> vor:
    <pre>
    { ************************************************** **************
    Typ : Hauptformular
    Autor : Andreas Kosch
    Compiler : Delphi 5 Enterprise
    Betriebssystem : Windows 98
    Begonnen am : 04.11.1999
    Beschreibung : Programm passt die Formulargröße automatisch so an,
    das bei Large Fonts die gleichen Abstände wie bei
    Small Fonts auftreten.
    Ohne den Aufruf von FixSize sind nur Scrollbalken zu
    sehen, da zwar die Controls im Formular automatisch
    ihre Größe ändern, der Formular-Container jedoch nicht.
    Die Formular-Eigenschaft Scaled ist TRUE.
    Test unter Windows NT 4 SP5: ok
    ************************************************** ************** }

    unit LargeFontsFrm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, Buttons, ExtCtrls, ComCtrls;

    type
    TFormMain = class(TForm)
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    RadioGroup1: TRadioGroup;
    Memo1: TMemo;
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    private
    { Private-Deklarationen }
    FDoFix : Boolean;
    FDesignRes : Integer;
    procedure FixSize;
    public
    { Public-Deklarationen }
    end;

    var
    FormMain: TFormMain;

    implementation

    {$R *.DFM}

    { TFormMain }

    procedure TFormMain.FormCreate(Sender: TObject);
    begin
    FDoFix := True;
    FDesignRes := 96;
    end;

    procedure TFormMain.FormShow(Sender: TObject);
    begin
    FixSize;
    end;

    {---------------------------------------------------------------}
    { Private Methoden }
    {---------------------------------------------------------------}

    procedure TFormMain.FixSize;
    begin
    if FDoFix then
    begin
    PixelsPerInch := Screen.PixelsPerInch;
    if (PixelsPerInch <> FDesignRes) then
    begin
    Width := LongInt(Width * PixelsPerInch) div FDesignRes;
    Height := LongInt(Height * PixelsPerInch) div FDesignRes;
    end;
    FDoFix := False;
    end;
    end;

    end.
    </pre&gt

    Comment


    • #3
      Hallo!

      Ich habe den Beispielcode probiert. Das Ergebnis war OK.
      Nur noch eine Frage: Warum gibt es die Eigenschaft "Scaled" und
      warum muß ich ihren Code in jedem Form programmieren? Ist es nicht
      möglich das Fenster gleich für jede Schriftart "fit" zu machen?
      Ich hoffe diese Fragen sind nicht zu ketzerisch!

      mfg Thoma

      Comment

      Working...
      X