Einzelnen Beitrag anzeigen

Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#1

Ribbon in Frame - Zugriffsverletzung

  Alt 5. Feb 2010, 20:51
Ich habe mehrere von der Oberfläche her ähnlich aufgebaute Tools und verwende dort einen Frame.
Nun dachte ich mir: ich teste mal das Ribbon Control und platzierte dieses in den Frame.

Nun kommt es beim Starten des Programms zu einer Zugriffsverletzung in der Unit Ribbon.pas:

Delphi-Quellcode:
procedure TCustomRibbon.SetParent(AParent: TWinControl);
begin
  if not (csDesigning in ComponentState) then
  begin
    if (FParentForm <> nil) and Assigned(FParentWndProc) then
      FParentForm.WindowProc := FParentWndProc;
  end;
  inherited;
  // AParent ist in diesem Fall der Frame auf dem das Ribbon control platziert ist
  if AParent <> nil then
  begin
    // hier ist das Problem: FParentForm ist nach dem Aufruf von GetParentForm = nil
    FParentForm := GetParentForm(AParent);
    if not (csDesigning in ComponentState) then
    begin
      if UseCustomFrame then
      begin
        // hier dann die Zugriffsverletzung
        FParentWndProc := FParentForm.WindowProc;
        FParentForm.WindowProc := CustomFrameWndProc;
        FCustomFrameSupported := True;
      end;
    end;
    if FParentForm is TForm then
      FScaleFactor := TForm(FParentForm).PixelsPerInch / 96;
  end;
end;
Ich habe noch keine weiteren Gruppen, Tabs oder sonstigen Controls auf dem Ribbon Control platziert.
Auch habe ich keinen ActionManager zugewiesen.

PS:
Ich nutze Delphi 2009.
Ich teste dies später mal mit Delphi 2010, das installiert derzeit noch.
  Mit Zitat antworten Zitat