Ich benutze Lazarus im {$mode delphi} für Win 32.
Es geht um eine Routine, der ein Control übergeben wird und dann einige Eigenschaften benutzt und geändert werden. Die wichtigsten Eigenschaften sind "Canvas", "(Show)Hint" und "Caption".
Der Routine sollen bei verschiedenen Aufrufen auch verschiedene Controls übergeben werden. Beispiel:
Delphi-Quellcode:
// Prozedur-Kopf
procedure TForm1.SetShortenedText(ACtrlWithCanvas: T-???; AText: string);
// Aufruf-Beispiel
SetShortenedText(Label1, 'Mein Text');
SetShortenedText(Panel1, 'Mein Text');
Allerdings kriege ich den Typ für "ACtrlWithCanvas" nicht hin. Benutze ich TControl meckert der Compiler über "dies", nehme ich TGraphicsControl meckert er über "das". Wie kann man das lösen, so dass ich ein beliebiges Control (mit Canvas) übergeben kann, ohne die Routine mit zusätzlichen Übergabe-Parametern aufzublähen?
Guido.
Edit: Das Problem konnte nicht auf direktem Weg gelöst werden. Ein Workaround wird in diesem Thread behandelt.