Einzelnen Beitrag anzeigen

Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Verschiedene Controls an Procedur übergeben

  Alt 27. Okt 2011, 10:44
Du kannst doch die "CompHasCaption"-Funktion dynamischer gestalten, indem Du den Namen der gesuchten Property als Parameter übergibst. Anschließend prüfst Du, ob das übergebene Control alle benötigten Properties besitzt, und setzt sie erst in dem Fall.
Funktioniert leider nicht mit Canvas (zumindest nicht in meinen Tests).

Und Canvas bzw. dann Canvas.TextWidth ist ein echtes Problem. Ich habe, wie schon geschrieben, verschiedene Klassen probiert, um ACtrl... zu übergeben, z. B. als TControl.

procedure TForm1.SetShortenedText(ACtrlWithCanvas: TControl; AText: string); Im weiteren Code wird dann auf Canvas zugegriffen:

  while (ACtrlWithCanvas.Width < (ACtrlWithCanvas.Canvas.TextWidth(TmpTxt) + 50)) do Aber da wird schon nicht kompiliert. Nehme ich TGraphicControl oder TWinControl, gibts Exeptions einmal wenn ein Label, und das andere Mal wenn ein Panel übergeben wird. Das heißt, selbst das Wissen, ob ein Control eine bestimmte Eigenschaft oder Methode besitzt, lässt mich leider immer noch nicht darauf zugreifen.

Guido.


@Sven (JamesTKirk)

In deinem Posting #11 hat sich ein Schreibfehler in den Code eingeschlichen: In der zweiten If-Abfrage fehlt beim zweiten "TGraphicControl" das "h". Das haben wohl die Klingonen geklaut!?

Geändert von Guido Eisenbeis (27. Okt 2011 um 10:49 Uhr)
  Mit Zitat antworten Zitat