WPTools 4 und Bilder bzw. TextObjects

  • Ich habe ein TWPRichtext in dem ich ein Kontextmenü nur für Bilder gemacht habe. Das ganze habe ich so gelöst:

    Code
    procedure TText_Erfassung.EditorTextObjectMouseUp(Sender: TWPCustomRtfEdit;  pobj: PTTextObj; obj: TWPObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin     if (obj is TWPOImage) and (Shift = []) and (Button = mbRight) then     begin          ContextObject := Obj;          GetCursorPos(ContextP);          pmBild.Popup(ContextP.X, ContextP.Y);          ContextHandled := True;     end else ContextHandled := False;end;

    Soweit alles in Ordnung. ContextObject ist eine globale Variabel vom Typ TWPObject. In dem Kontextmenü ist folgende Funktion:

    Code
    procedure TText_Erfassung.Bildverankern1Click(Sender: TObject);begin     if Assigned(ContextObject) then     begin          Editor.TextObjects.ConvertType(ContextObject.AliasTextObj, wpotChar);          ContextObject := nil;     end;end;

    Die ersten 4-8 Versuche bekomme ich eine Zugriffsverletzung weil AliasTextObj nil ist. Danach funktioniert das ganze immer einwandfrei.
    Woran liegt das? Wie könnte ich sonst mein Bild identifizieren?

    Es gibt ja noch die Möglichkeit Tags zu vergeben und mein Bild dann mit

    Code
    Editor.TextObjects.Get(TagNr);

    zu identifizieren. Aber das TWPObject das ich erhalte hat nie den Pointer (AliasTextObj) den ich für ConvertType benötige.

    Danke im voraus,
    bp

  • Zunächst einmal habe ich wohl alles falsch gemacht. Richtig macht man das so:


    Und im TextObjectMouseUp-Ereigniss merkt man sich dann direkt den Pointer:

    Wobei ContextObject jetzt vom Typ PTTextObj ist.

    Viel Glück,
    bp