...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.