ich würd mir erst mal ne TApplicationEvent kompo aufs formular holen, und dann im OnShowHint ereignis etwas in dieser richtung eintragen:
Delphi-Quellcode:
procedure TFormX.ApplicationEventsShowHint(var HintStr: String; var CanShow: Boolean; var HintInfo: THintInfo);
const BS: array[TBorderStyle] of Byte = (0,4);//bei bsSingle ist der Anzeigebereich des Edit 4 Pixel kleiner
begin
if HintInfo.HintControl is TEdit then begin //nur wenn Sender is TEdit, sonst standartverarbeitung
with Application.MainForm.Canvas do begin //mittels Canvas.TextWidth breite des textes rauskriegen
Font := TEdit(HintInfo.HintControl).Font;//dafür Font übertragen
if TextWidth(TEdit(HintInfo.HintControl).Text) >
TEdit(HintInfo.HintControl).Width -
BS[TEdit(HintInfo.HintControl).BorderStyle] then //ist Text wirklich länger?
HintStr := TEdit(HintInfo.HintControl).Text; //falls ja, den angezeigten Text verändern
end;
end;
end;
auch schon getestet, funzt soweit
Edit: natürlich muss dann das ShowHint des Edit auf True stehen