Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 16:30
...hab mir das schon gedenkt. macht probs

(siehe anhang)
Weiterhin könntest Du auch, falls Dir bei der Aufteilung in Zeilen wichtig ist, wann der Zeilenumbruch stattfindet auch noch folgenden Code nach der Berechnung der Höhe des Callouts einfügen (= vor der Zeile "AcallHint.width := aw"):

Delphi-Quellcode:
if pos (slinebreak, lab.Text) <> 0 then begin
  ACallhint.Height := ACallHint.Height + (CountLineBreaks (lab.Text) * lab.canvas.textheight ('T'));
end;
Die Function "CountLinebreaks" sieht so aus (da gibt es wohl gar nichts fertiges in Delphi?):

Delphi-Quellcode:
function CountLinebreaks (S: string): Integer;
  var start: Integer;
  begin
    Result := 0;
    start := 1;

    while pos (sLineBreak, s, start) <> 0 do begin
      Inc (Result);
      start := pos (sLineBreak, s, start) + 2;
    end;
  end;

Wenn Dein Button hint, also so erstellt wurde:
button1.Hint := 'Zeile 1 ' + sLineBreak + 'Zeile 2 ' + slinebreak + 'Zeile 3'; sieht das Ergebnis dann wie im anliegenden Screenshot gezeigt aus.

Um diesen Fall der evtl. Gestaltung der Hints zu berücksichtigen baue ich das auch noch in meine Unit ein und lade die aktualisierte Fassung noch mal hoch.

Ich glaube ich habe noch nicht erwähnt, dass die Unit sowohl unter Windows, als auch unter Linux und MacOS funktioniert.
Miniaturansicht angehängter Grafiken
hints.png  

Geändert von Harry Stahl ( 1. Nov 2023 um 16:51 Uhr)
  Mit Zitat antworten Zitat