Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Doppelte Buchseiten aus einer Liste darstellen

  Alt 4. Mai 2007, 13:28
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!
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat