Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Label Font soll sich an dem Text ausrichten (https://www.delphipraxis.net/159354-label-font-soll-sich-dem-text-ausrichten.html)

eugene222 24. Mär 2011 17:50

AW: Label Font soll sich an dem Text ausrichten
 
@vergessen
Ich hätte nicht gedacht, dass hier so Kiddys unterwegs sind.

@Topic
Ich hab das vorhin alles verworfen, weil es voller Fehler war.
Ich setze mich jetz nochmal dran. Vielleicht wird es diesmal etwas besser klappen.
Wenn ich Fortschritte gemacht habe, werde ich diese hier reinposten.

*edit*
Ja genauso hab ich es ja auch gemacht. Das Problem ist nur, dass man den Font nur in 1 Schritten verkleinern kann. Gib es irgentwelche Möglichkeiten den Font im Kleinen Maß zu verkleinern/vergrößern?

*edit2*
Ich hab das jetz so

einmal das On_Change Event des EditFeldes:
Code:
procedure Tabc.ed_a_Change(Sender: TObject);
 BEGIN
  TRY
   f_a := StrToFloat(ed_a.text);
   s_a := ed_a.text;
  EXCEPT
   ed_a.text := '';
   f_a := 0;
   s_a := 'a';
  END;
  la_formel.caption := s_a+'x²+'+s_b+'x+'+s_c+' = 0';
  formel;
 END;
Und die Formel Prozedur:
Code:
PROCEDURE Tabc.formel;
 BEGIN
  IF la_formel.Canvas.TextWidth(la_formel.caption) > la_formel.Width
  THEN BEGIN
        While la_formel.Canvas.TextWidth(la_formel.caption) > la_formel.Width DO
        BEGIN
         la_formel.Font.Size:= la_formel.Font.size -1;
        END;
       END
  ELSE BEGIN
        While la_formel.Canvas.TextWidth(la_formel.caption) < la_formel.Width DO
        BEGIN
         la_formel.Font.Size:= la_formel.Font.size +1;
        END;
       END;
 END;
Irgentwas ist da falsch. Aber ich weiß nicht was. Ich bin noch Anfäger in solchen Sachen

p80286 24. Mär 2011 20:10

AW: Label Font soll sich an dem Text ausrichten
 
Zitat:

Zitat von eugene222 (Beitrag 1090761)
Irgentwas ist da falsch. Aber ich weiß nicht was. Ich bin noch Anfäger in solchen Sachen

Was ist den Falsch?
Wächst die Fontgröße ins unendliche?
Wird überhaupt nichts mehr ausgegeben?

Eine nähere Beschreibung wäre schon nicht schlecht.

Gruß
K-H

eugene222 25. Mär 2011 12:58

AW: Label Font soll sich an dem Text ausrichten
 
Wenn ich ins Edit Feld 1 Ziffer eingebe, wird die Zahl normal im Label angezeigt. Nachdem ich jedoch die Zahl erhöhe, also 2 Ziffern da stehen habe, bleibt das Programm in einer Endlosschleife stehen.

DeddyH 25. Mär 2011 13:01

AW: Label Font soll sich an dem Text ausrichten
 
Hast Du einmal einen Haltepunkt gesetzt und die Werte verfolgt?

p80286 25. Mär 2011 14:40

AW: Label Font soll sich an dem Text ausrichten
 
Das funktioniert:
Delphi-Quellcode:
procedure FontAnpass(var lab:tlabel;const width:integer;const text:string);
begin
  if lab.Canvas.TextWidth(text) > Width THEN BEGIN
    While lab.Canvas.TextWidth(text) > Width DO
      lab.canvas.Font.Size:= lab.canvas.Font.size -1;
  END
  ELSE BEGIN
    While lab.Canvas.TextWidth(text) < Width DO
      lab.canvas.Font.Size:= lab.canvas.Font.size +1;
  END;
  lab.Font.Size:=lab.Canvas.Font.Size;
end;{------------------------------------------------------------------}
Es ist allerdings noch finetuning von Nöten.

Gruß
K-H

DeddyH 25. Mär 2011 14:50

AW: Label Font soll sich an dem Text ausrichten
 
Wieso ist das Label als Var-Parameter deklariert?

p80286 25. Mär 2011 14:54

AW: Label Font soll sich an dem Text ausrichten
 
Ich wollte vermeiden, daß nur ein Wert herüber kommt.

Gruß
K-H

DeddyH 25. Mär 2011 15:00

AW: Label Font soll sich an dem Text ausrichten
 
Verstehe ich gerade nicht. Also was ich meinte, ist, dass man Objektinstanzen nicht als Var-Parameter übergibt, sondern allenfalls als const. Man will ja innerhalb der Routine nicht die Instanz an sich ändern, sondern nur deren Werte.

p80286 25. Mär 2011 15:29

AW: Label Font soll sich an dem Text ausrichten
 
Wenn das so klappt, warum nicht?
Meine Kenntnisse über die Objektinterna sind wohl eher marginal.

Gruß
K-H

DeddyH 25. Mär 2011 15:36

AW: Label Font soll sich an dem Text ausrichten
 
Dann lass das "var" einmal weg, es wird immer noch klappen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.
Seite 2 von 3     12 3      

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