Delphi-PRAXiS

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 text mit größe des fensters ändern (https://www.delphipraxis.net/127944-text-mit-groesse-des-fensters-aendern.html)

Molzer 21. Jan 2009 19:28


text mit größe des fensters ändern
 
Hallo!

wie kann sich mein text mit der größe des fensters mitverändern?

Delphi-Quellcode:
procedure TForm2.FormResize(Sender: TObject);
begin
Canvas.Font.Size:=10;
Canvas.Textout(193,57,'12');
Canvas.Textout(275,135,'3');
Canvas.Textout(195,217,'6');
Canvas.Textout(120,135,'9');
end;
fg

taaktaak 21. Jan 2009 19:30

Re: text mit größe des fensters ändern
 
Wie verändern?
Soll er die Positin ändern, oder größer werden, oder beides?

Molzer 21. Jan 2009 19:32

Re: text mit größe des fensters ändern
 
mein text soll immer genauso aussehen wie beim starten, egal wie groß
das fenster ist...

taaktaak 21. Jan 2009 19:34

Re: text mit größe des fensters ändern
 
Also soll er sich nicht verändern?

Molzer 21. Jan 2009 19:36

Re: text mit größe des fensters ändern
 
wenn ich zb die zahl 2 in die mitte schreibe und dann jemand mein fenster größer macht soll der 2er immer in der mitte stehen..

taaktaak 21. Jan 2009 19:41

Re: text mit größe des fensters ändern
 
Aha, also soll die Schriftgröße beibehalten werden, die Position aber angepasst.

Valle 21. Jan 2009 19:41

Re: text mit größe des fensters ändern
 
Delphi-Quellcode:
X := (Width div 2) - (Canvas.TextWidth('Wuppdi') div 2);
Y := (Height div 2) - (Canvas.TextHeight('Wuppdi') div 2);
Ich hoffe "TextHeight" und "TextWidth" sind die richtigen Funktionsnamen, ich habe gerade kein Delphi hier. Ansonsten ist das nur ein bisschen Mathematik, Molzer. ;-)

Edit:// Mathematik, die ich nicht kann. :wall: "div" :arrow: "-"

Mit freundlichen Grüßen,

Valle

Molzer 21. Jan 2009 19:50

Re: text mit größe des fensters ändern
 
danke, aber er schreibt mir gar nix...

Molzer 21. Jan 2009 19:54

Re: text mit größe des fensters ändern
 
habs schon danke

Molzer 22. Jan 2009 16:29

Re: text mit größe des fensters ändern
 
was muss ich tun damit sich meine striche an die größe meines fensters anpassen?

Delphi-Quellcode:
procedure TForm2.FormResize(Sender: TObject);
begin
mx := Width div 2;
my := Height div 2;
with canvas do begin
  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx,my-100);
  lineto(mx,my-120);

  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx-100,my);
  lineto(mx-120,my);

  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx+100,my);
  lineto(mx+120,my);

  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx,my+100);
  lineto(mx,my+120);

end;

himitsu 22. Jan 2009 16:31

Re: text mit größe des fensters ändern
 
na, indem du die festen Zahlen (100 und 120) wegläßt und stattdessen den Wert entsprechend berechnest?

Molzer 22. Jan 2009 16:39

Re: text mit größe des fensters ändern
 
ok danke..

Molzer 22. Jan 2009 17:38

Re: text mit größe des fensters ändern
 
habe eine uhr gemacht (teile kopiert) und ein paar probleme!!
meine striche passen sich dem fenster an, meine uhr natürlich nicht, wie kann ich das lösen?
warum muss ich in der zeile " decodetime(now,hour,min,sec,msec);" now eingeben, gibt es andere möglichkeiten?

Delphi-Quellcode:
procedure TForm2.FormResize(Sender: TObject);
begin
mx := Width div 2;
my := Height div 2;
refresh;

with canvas do begin
  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx,my-width div 4);
  lineto(mx,my-width div 5);

  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx-width div 4,my);
  lineto(mx-width div 5,my);

  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx+width div 4,my);
  lineto(mx+width div 5,my);

  pen.Width:=3;
  pen.Color:=clblack;
  moveto(mx,my+width div 4);
  lineto(mx,my+width div 5);


end;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
var winkel               : real;
    x, y, r, i   : Integer;
    hour, min, sec, msec : Word;
begin

 Form2.Caption:=TimeToStr(Now);
 decodetime(now,hour,min,sec,msec);
 r:=60;

// Sekundenzeiger
 winkel:=sec* ((2*pi) / 60) - pi/2;

 x:=Trunc(cos(winkel)*r);
 y:=Trunc(sin(winkel)*r);

 x:=x+(mx);
 y:=y+(my);

 Canvas.Pen.Color:=clblack;
 Canvas.Pen.Width:=1;
 Canvas.MoveTo(mx,my);
 Canvas.LineTo(x,y);

//Minutenzeiger
 winkel:=min* ((2*pi) / 60) - pi/2;

 x:=Trunc(cos(winkel)*r*0.9);
 y:=Trunc(sin(winkel)*r*0.9);

 x:=x+(mx);
 y:=y+(my);

 Canvas.Pen.Width:=2;
 Canvas.MoveTo(mx,my);
 Canvas.LineTo(x,y);

//Stundenzeiger
 IF hour>12 THEN hour:=hour-12;
 winkel:=(hour*(2*pi) / 12) + (min*(2*pi) / 720) - pi/2;

 x:=Trunc(cos(winkel)*r*0.6);
 y:=Trunc(sin(winkel)*r*0.6);

 x:=x+(mx);
 y:=y+(my);

 Canvas.Pen.Width:=3;
 Canvas.MoveTo(mx,my);
 Canvas.LineTo(x,y);
end;
end.

himitsu 22. Jan 2009 17:43

Re: text mit größe des fensters ändern
 
bezüglich Now ... schau mal in die OH

Delphi-Referenz durchsuchenNow gibt die aktuelle Uhrzeit (incl. Datum) als TDateTime zurück

und die Uhr

r:=60; ... na, ahnst du es schon?
statt der 60 auch wieder etwas berechnen :angel:

Molzer 22. Jan 2009 18:22

Re: text mit größe des fensters ändern
 
d.h. wenn ich statt now meine eigene eingabe mache stellt sich die uhr danach??

himitsu 22. Jan 2009 18:24

Re: text mit größe des fensters ändern
 
also deine selbstgezeichnete Uhr ... ja

(die Systemuhr stellt sich natürlich nicht)

Molzer 22. Jan 2009 18:30

Re: text mit größe des fensters ändern
 
ok danke!!

Molzer 22. Jan 2009 19:35

Re: text mit größe des fensters ändern
 
leider fängt die uhr nicht zum laufen an.. dachte der ttimer mach das.. für was is der dann?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 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