Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: TObjectlist und der Seitenwechsel

  Alt 30. Mai 2019, 17:18
Hi zusammen

Danke für eure Antworten! In Bezug auf die generische Liste steht das ja so in der Help - ich war mir nur nicht sicher, ob ich das richtig verstanden habe. Inzwischen habe ich die entsprechende Unit in meinem Projekt geöffnet und einen Haltepunkt gesetzt, so quasi für die letzte Bestätigung. Bei der nichtgenerischen Liste werde ich dies allerdings nicht tun, sondern einfach glauben, dass es so ist, da ich die ich eh nie verwenden werde.
Inzwischen hat sich aber ein neues "Problem" ergeben. In der folgenden Prozedur lösche ich alle TPdfViews aus der Liste, wenn ich eine neue PDF öffne:
Delphi-Quellcode:
procedure TRogersPdfFrame.DeletePdfListObjects;
  var i: Integer;
begin
  i := 0;
  HomeOfficerMainForm.EdiBeforeDelete.Text := 'BeforeDelete: '+ IntToStr(FPdfList.Count);
  while i <= FPdfList.Count-1 do
  begin
    if FPdfList.Items[i].Active then
    begin
      FPdfList.Items[i].Active := False;
      FPdfList.Delete(i);
    end;
    inc(i);
  end;
  HomeOfficerMainForm.EdiAfterDelete.Text := 'AfterDelete : '+ IntToStr(FPdfList.Count);
end;
Die Anweisungen an die Edits 'EdiBeforeDelete' und 'EdiAfterDelete' dienten mir zur Kontrolle, da ich mir erst nicht sicher war, dass auch alle TPdfViews(die Items der Liste) gelöscht werden. Der Wert von 'EdiBeforeDelete' ist dabei immer 1, unabhängig davon, wie gross FPdfList.Count tatsächlich ist. Der andere Wert ist 0.
Ich hab das gerade nochmal getestet. Dabei ist mir Delphi eiingefroren, und ich musste das Ding mit dem Taskmanager abschiessen. Nachdem ich das erste mal ein neues PDF geöffnet hatte:
16_52_30-rogerspdfframeunit.jpg
Anschliessend versuchte ich nochmal, eine neue PDF zu öffnen - abschuss. *
In der Listbox links eben dem Pdf trage ich jedesmal, wenn ich ein neues PDFView erzeuge, dessen Namen ein. Die ist also korrekt.

Kurz, bevor ich Delphi abschiessen musste, viel mir auf, dass das Edit 'EdiBeforeDelete' den Wert 3 anzeigte...

Gruss
Delbor

PS: Das mit dem Abschuss hielt ich erst für ziemlich 'mysteriös', habmir dann jedoch die drei nächsthöheren PDFs mal angesehen. Die sind zwischen knappen 6000 und guten 30'000 kb gross. Ich hätte Delphi also wohl nicht abschiesssen müssen, sonder nur noch etwas Geduld haben müssen. Oder in Zukunft begindoc und enddoc einbauen...
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (30. Mai 2019 um 17:50 Uhr) Grund: PS angefügt
  Mit Zitat antworten Zitat