Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Schriftgröße von Fenstergröße abhängig machen (https://www.delphipraxis.net/106946-schriftgroesse-von-fenstergroesse-abhaengig-machen.html)

xilos 19. Jan 2008 14:27

Re: Schriftgröße von Fenstergröße abhängig machen
 
dankeschön...ich habs jetzt mal versucht aber irgendwie funktionierts nicht ^^
stimmt die implementierung so?

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    lblMinuten: TLabel;
    lblSekunden: TLabel;
    btnStarten: TButton;
    Timer1: TTimer;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label1: TLabel;
    Label2: TLabel;
    StatusBar1: TStatusBar;
    Timer2: TTimer;
    procedure Timer2Timer(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure btnStartenClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private

    { Private-Deklarationen }
  public
    procedure ScaleBy(M: Integer; D: Integer);
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
    Minuten,
    Sekunden : Integer;

implementation

{$R *.dfm}

procedure TForm1.ScaleBy(M: Integer; D: Integer);
begin
  Form1.ScaleBy(200,100);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin

Sekunden := Sekunden - 1;
lblSekunden.Caption := IntToStr(Sekunden);

if (Minuten = 0) and (Sekunden = 0) then
  begin
    timer1.Enabled := false;
    MessageDlg('Ihr eingegebener Countdown ist abgelaufen!', mtConfirmation,[mbOk], 0);
  end
else if Sekunden < 0 then
  begin
    Sekunden := 59;
    lblSekunden.Caption := IntToStr(Sekunden);
    Minuten := Minuten - 1;
    lblMinuten.Caption := IntToStr(Minuten);
  end
else if (Minuten = 0) and (Sekunden <= 10) then
  begin
    lblSekunden.Font.Color := clRed;
  end;
end;

procedure TForm1.btnStartenClick(Sender: TObject);
begin
if timer1.enabled = true then
  begin
    btnStarten.Caption := 'Starten';
    timer1.Enabled := false;
  end
else
  begin
    btnStarten.Caption := 'Stoppen';
    timer1.Enabled := true;
  end;
end;




procedure TForm1.Button2Click(Sender: TObject);
begin
  Minuten := Minuten + 1;
  lblMinuten.Caption := IntToStr(Minuten);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Minuten := Minuten - 1;
  lblMinuten.Caption := IntToStr(Minuten);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if sekunden = 50 then
  begin
    minuten := minuten + 1;
    lblminuten.caption := IntToStr(Minuten);
    sekunden := 0;
    lblsekunden.caption := IntToStr(Sekunden);
  end
else if sekunden < 60 then
  begin
    Sekunden := Sekunden + 10;
    lblSekunden.Caption := IntToStr(Sekunden);
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if sekunden = 0 then
  begin
    Minuten := Minuten - 1;
    lblMinuten.caption := IntToStr(Minuten);
    Sekunden := 50;
    lblSekunden.caption := IntToStr(Sekunden);
  end
else
  begin
    Sekunden := Sekunden - 10;
    lblSekunden.Caption := IntToStr(Sekunden);
  end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
//Zeigt Zeit im 2. Panel der Statuszaeilte fortlaufend an
StatusBar1.Panels.Items[0].Text := 'Aktuelle Uhrzeit' + ' ' + TimeToStr(Now);
end;

end.

alzaimar 19. Jan 2008 15:50

Re: Schriftgröße von Fenstergröße abhängig machen
 
Hier, eine Form, ein Label, ein Button

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    lbSample: TLabel;
    btTest: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    fOrgWidth,
    fOrgHeight : Integer;
    fOrgFontHt : Integer;
    fBtRect : TRect;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  fOrgHeight := Height;
  fOrgWidth := Width;
  fOrgFontHt := Font.Height;
  fBtRect := btTest.BoundsRect;
end;

procedure TForm1.FormResize(Sender: TObject);
Var
  txWd : Integer;

begin
  font.Height := Muldiv (fOrgFontht,Height, fOrgHeight);
  txWd := lbSample.Canvas.TextWidth(lbSample.Caption);
  lbSample.Left := (width - txwd) div 2;
  btTest.left := muldiv (fBtRect.left, width, fOrgWidth);
  btTest.Top := muldiv (fBtRect.Top, Height, fOrgHeight);
  btTest.Width := muldiv (fBtRect.Right-fBtRect.left, width, fOrgWidth);
  btTest.Height:= muldiv (fBtRect.Bottom-fBtRect.Top, Height, fOrgHeight);
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz