![]() |
Schriftgröße von Fenstergröße abhängig machen
Hallo,
wie kann ich denn die Schriftgröße abhängig von der Fenstergröße machen? d.h. wenn ich das Fenster größer ziehe, soll sich die Schriftgröße auch verändern. Außerdem hätte ich gerne, dass die Schrift immer zentriert ist, egal wie groß ich das Fenster ziehe. Wie kann ich dies realisieren? Dankeschön jetzt schon mal |
Re: Schriftgröße von Fenstergröße abhängig machen
vielleicht kannste da sirgnedwie umrechen^^
also wenn fenstergröße > 100 dann mach schrift größer oder so |
Re: Schriftgröße von Fenstergröße abhängig machen
das würde aber sehr komplex werden wenn ich mehrere unterteilungen haben möchte z.B.
wenn fenstergröße < 50 wenn fenstergröße < 100 etc. gibt es da nicht eine andere methode? |
Re: Schriftgröße von Fenstergröße abhängig machen
oder fenstergröße durch 100 oder so ist schrift. vielleicht gibts da ne formel :)
ansonsten ausprobieren. desweiteren würde ich gerne mal wissen wofür du das überhautp brauchst?was ist zb wenn man das fenster ganz ganz ganz klein macht dann sieht deine from beschissen aus :D |
Re: Schriftgröße von Fenstergröße abhängig machen
ich brauch das nicht...aber mein lehrer ^^
stimmt an eine "formel" hab ich noch nicht gedacht....das probier ich mal aus...wenn jemand noch eine einfachere Lösung hat bitte noch mal posten ;D PS: Wie kann ich die Schrift im Fenster zentrieren egal wie groß ich das ziehe? |
Re: Schriftgröße von Fenstergröße abhängig machen
was meinste mit zentrieren?
|
Re: Schriftgröße von Fenstergröße abhängig machen
das mit der formel is doch ganz easy :)
einfach eine größe des forms nehmen zb 100 x 200 und die font ist dann zb schriftgröße 12! das ist dann proportional :) dann einfach dreisatz anwenden! |
Re: Schriftgröße von Fenstergröße abhängig machen
|
Re: Schriftgröße von Fenstergröße abhängig machen
über TForm.Scaleby finde ich nichts in der delphi hilfe und weiß nicht was ich damit anfangen soll o.O
|
Re: Schriftgröße von Fenstergröße abhängig machen
Zitat:
Zitat:
Delphi-Quellcode:
vergrößert die Form und alle Steuerelemente auf die doppelte Größe.
Form1.ScaleBy(200,100);
|
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. |
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:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz