Einzelnen Beitrag anzeigen

jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#15

Re: Quelltext kommentieren

  Alt 7. Mär 2008, 09:49
Hallo s-off, Hallo Phoenix,

Zitat von s-off:
Zitat von Phoenix:
Es könnte eine Variable Namens Rect geben, aber benutzt wird Control.Rect. Eine der bösen Fallen bei with...
Da muss ich DIr leider widersprechen; probier's aus:
Delphi-Quellcode:
Procedure TForm1.MalDas(Control: TControl);
Var
   Rect: TRect;
Begin
   Rect.Left := 10;
   Rect.Top := 10;
   Rect.Right := 60;
   Rect.Bottom := 60;

   //alles was hier drüber steht, kennen wir nicht - könnte ja eine lokale Variable sein *g*
   With Control As TListBox Do Begin
      Canvas.Brush.Color := clYellow;
      Canvas.FillRect(Rect);
      Canvas.Font.Color := clRed;
      Canvas.TextOut(Rect.Left + 2, Rect.Top, 'Hallo');
   End;
End;
Hier wird die lokale Variable Rect zugrunde gelegt.
Phoenix hat im Prinzip Recht -- wenn TListBox ein Property Rect hätte, würde die lokale Variable versteckt. s-offs Beispiel beweist hier nichts, denn erst durch sein Hinzufügen einer lokalen Variable wird das Beispiel kompilierbar. Die ursprüngliche Variante lässt sich wegen des fehlenden TControl.Rect bzw. TListBox.Rect gar nicht übersetzen.

jkr
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat