Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

Compiler erkennt TControl.PopupMenu nicht

  Alt 28. Jul 2009, 19:10
Hallo,

folgender Code wird nicht compiliert,
weil der Compiler PopupMenu moniert (existiert nicht).

Delphi-Quellcode:
procedure TForm_Base.SetExportPopMenu;
var
  iComponent : Integer;
  Component : TComponent;
  Control : TControl;
begin
  for iComponent:= 0 to ComponentCount-1 do
  begin
    Component:= Components[iComponent];
    if (Component is TListView) or
       (Component is TVirtualStringTree) then
    begin
      Control:= TControl(Component);
      if Control.PopupMenu=NIL then // hier meckert er
      begin
        PopupMenu:= TPopupMenu.Create(ListView);
        Control.PopupMenu:= PopupMenu;
      end;
Nehme ich statt dessen Control:= TControl(Component)

Delphi-Quellcode:
with Component as TControl do
      begin
        if PopupMenu=NIL then
        begin
          MyPopupMenu:= TPopupMenu.Create(Control);
          PopupMenu:= MyPopupMenu;
        end;
      end;
klappt es.

Ich hätte aber gern die 1. Code.
Ich mage dieses RTTI hier nicht so.

Es handelt sich um das Original TControl (unit Controls).


Heiko
Heiko
  Mit Zitat antworten Zitat