Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by BerndS,
4. Nov 2022
Leider ignoriert diese Funktion #13#10 und gibt nur die Höher einer Zeile zurück. Hat man mehrer Zeilen muss man dann noch das Result damit multiplizieren.
Ich würde mir mal bei diesem für uns unbekannten Panel die Methode anschauen, die den Text ausgibt (sofern die Quellen vorhanden sind) oder mal in die Quellen von TCustomLabel reinschauen.
TCustomLabel kann Wordwrap und Autosize.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by BerndS,
4. Nov 2022
Die Frage ist, was steht im Text?
Wird der Text vom Panel automaisch auf mehrere Zeilen umgebrochen obwohl dort kein #13#10 enthalten ist?
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by BerndS,
4. Nov 2022
Wenn dein Panel ein Canvas hat, was bei einem normalen Panel protected ist, könntest du es so machen:
Beispiel für normales TPanel
type
THackPanel = class(TPanel);
function PanelTextHeight(APanel: TPanel; AText: string): Integer;
var
R: TRect;
begin
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by BerndS,
4. Nov 2022
Hast du auf dem Panel für den Text ein Label oder ein Memo?
Bei einem Label wäre es einfach.
Für Panel und Label Align = atTop und Autosize = True setzen.
Bei einem Memo könntst du es GetScrollRange versuchen.