Update: Neue Erkenntnis.
Die Daten gehen schon vorher verloren:
Delphi-Quellcode:
procedure TForm1.chkPageNumersClick(Sender: TObject);
var
i, j : Integer;
fbimage : TFBImageEn;
b : Boolean;
begin
fbimage := TFBImageEn.Create(nil);
try
if chkPageNumers.Checked then
begin
for i := 0 to PageCollection.Count - 1 do
begin
fbimage.ImageEnVect := PageCollection.Items[i];
fbimage.AddPageNumber(i + 1); // siehe oben für Details
fbimage.ImageEnVect.Update;
// Test
Writeln('chkPageNumersClick');
for j := 0 to fbimage.ImageEnVect.ObjectsCount - 1 do
begin
if Assigned(fbimage.ImageEnVect.ObjUserData[j]) then // fails - ObjUserData[j] is aleays nil
begin
b := PUserObjData(fbimage.ImageEnVect.ObjUserData[j])^.FIsPageNumberObj;
Writeln(BoolToStr(b));
end;
end;
// End test
PageCollection.Update(i, fbimage.ImageEnVect);
end;
end
else
Das Objekt wird aber korrekt erzeugt und auch erstellt (Ich kann es sehen.).