Danke für deine Mühe, aber das hat leider keine Auswirkungen auf das Verhalten.
Ich habe festgestellt, dass wenn Seite eins angezeigt wird und ich auf die Seiten 2 - 3 klicke, der Code zwar ausgeführt wird für die Linke Seite, aber sie nicht angezeigt wird.
So funktioniert es:
Delphi-Quellcode:
procedure TFotoBook.DisplayDoublePage(PageIndex: Integer);
begin
if (not Odd(PageIndex)) and (PageIndex <> 0) then
Inc(PageIndex);
// Alles unsichtbar machen, sonst funktio0niert Update nicht
if Assigned(LeftPage) then
LeftPage.Visible := False;
if Assigned(RightPage) then
RightPage.Visible := False;
if (PageIndex = 0) or (PageIndex = -1) then
LeftPage := nil
else
begin
LeftPage := FPageCollection.Items[PageIndex];
LeftPage.Visible := False;
end;
if Assigned(LeftPage) then
begin
ShowMessage('Linke Seite anzeigen');
LeftPage.Left := PageParent.Width div 2 - LeftPage.Width - PAGEGAP div 2;
LeftPage.Top := PageParent.Height div 2 - LeftPage.Height div 2;
LeftPage.Visible := True;
end;
if (PageIndex > 0) and not (FpageCollection.Count < 0) then
Inc(PageIndex);
if PageIndex < FPageCollection.Count then
begin
//if (PageIndex > 0) and not (FpageCollection.Count < 0) then
// Inc(PageIndex);
RightPage := FPageCollection.Items[PageIndex];
end
else
RightPage := nil;
if Assigned(RightPage) then
begin
RightPage.Visible := False;
ShowMessage('Rechte Seite anzeigen');
RightPage.Left := PageParent.Width div 2 + PAGEGAP div 2;
RightPage.Top := PageParent.Height div 2 - RightPage.Height div 2;
RightPage.Visible := True;
end;
end;
Bis auf wenn die erste Seite erzeugt wird, dann bekomme ich ein List index out of bounds(-1).
Ich habe gleich ein Knoten im Hirn!