Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

RemoveComponent/InsertComponent Fehler

  Alt 28. Mär 2007, 17:29
Hi Leute,

folgende Situation:
Ich habe eine eigenen Komponente (TCustomPanel) in einer ScrollBox platziert (Designzeit). Nun möchte ich zur Laufzeit diese in eine andere Scrollbox verschieben. Dazu hab ich der ScrollBox in die die Kompo soll ein Popup-Menü verpasst. Meine Kompo besitzt eine Eigenschaft Selected. Ist dies True (klappt), so möchte ich diese in die leere ScrollBox über dessen Popup verschieben. Den Code des Menü-Eintrages hier:
Delphi-Quellcode:
procedure TForm1.ausgewhltesElementhierherverschieben1Click(
  Sender: TObject);
var Compo : TBaseSeyControl;
begin
  // selektierte Kompo suchen
  Compo := GetSelectedSeyControl(Application.MainForm);
  IF Compo = nil then begin
    MessageDlg('Keine selektierte Komponente gefunden!', mtInformation, [mbOK], 0);
    Exit;
  end else begin
    // hier mal guggen
    MessageDlg(Format('Komponente %s gefunden', [Compo.Name]), mtWarning, [mbOK], 0);
    MessageDlg(Format('new Parent: %s', [PopupMenu2.PopupComponent.Name]), mtWarning, [mbOK], 0);
    Compo.Owner.RemoveComponent(Compo);
    PopupMenu2.PopupComponent.InsertComponent(Compo);
    Compo.Parent := TWinControl(PopupMenu2.PopupComponent);
  end;
end;
In der alten ScrollBox verschwindet die Kompo, taucht aber in der neuen nicht auf. Danach geht das Prog mit Exception Lesen von null an einer völlig anderen Stelle ins aus. Über die beiden eingebundenen MsgDlg's prüfe ich hier schon, ob die richtige Kompo gefunden wurde und die Zielkompo stimmt. Alles i.O.
Der abgebildete Code wird auch ohne Fehler durchlaufen (Test mit Debugger).

Was mach ich falsch?

Gruß oki
  Mit Zitat antworten Zitat