Forum: Programmieren allgemein
Delphi
by Delbor,
29. Mai 2019
Hi zusammen
Ich behaupte mal: Hoika hat recht. Das Embarcadero Wiki zu TObjectlist.Ownsobject:
Es stellt sich jetzt halt die Frage, was der fett formatierte Satz nun wirklich heisst. Tatsache ist, dass bei einem Delete eines bestimmten Eintrags dieser aus der Liste entfernt wird, und zwar unabhängig davon, ob OwnsObjects nun False oder True ist. Nun suggeriert aber der bewusste Satz, dass bei...
Forum: Programmieren allgemein
Delphi
by Delbor,
29. Mai 2019
Hi peterbelow
Ich hab das bisher immer so verstanden, dass TObjectList bei OwnsObject := true; seine Items nur zerstört, wenn sie selbst zerstört wird. Man lernt nie aus!
Gruss
Delbor
Forum: Programmieren allgemein
Delphi
by Delbor,
28. Mai 2019
Hi Hoika
Dein Tip mit der Schlaufe war der Auslöser für meine While-Schleife.
Der, bzw. meine For-Schlaufe, war möglicherweise auch die Ursache für den "inneren Fehler", den ich auch mal erhielt. Ich hab Delphi neu gestartet, und gut war.
Gruss
Delbor
Forum: Programmieren allgemein
Delphi
by Delbor,
28. Mai 2019
Hi zusammen
Ich habe das jetzt mal etwas anders gelöst - irgendwo hab ich mal mitgekriegt, dass der Compiler gelegentlich zwecks Optimierung selbst aus einem "downTo" ein "To" macht, weshalb ich, um Einfluss auf den Zähler nehmen zu können, while verwende:
procedure TRogersPdfFrame.DeletePdfListObjects;
var
i: Integer;
begin
i := 0;
while i < FPdfList.Count do
Forum: Programmieren allgemein
Delphi
by Delbor,
28. Mai 2019
Hi zusamen
Delete oder Clear entfernen nur die Objekte aus der Liste, zerstören sie aber nicht, zumindest, wen ich das Emba-Wicki richtig verstanden habe.
Das hier könnte ich möglicherweise aber überlesen haben:
Gruss
Delbor
Forum: Programmieren allgemein
Delphi
by Delbor,
28. Mai 2019
Hi zusammen
So wird die Objectliste erzeugt:
constructor TRogersPdfFrame.Create(AOwner: TComponent);
begin
inherited;
FReportlist := TStringlist.Create;
FPdfList := TDataObjectList<TPDFView>.Create();
FPdfList.OwnsObjects := False;
end;
OwnsObjects hab ich hier absichtlich auf False gesetzt, da sich die enthaltenen Objektebei jedem Dokumentenwechsel zerstören sollen. Sie werden...
Forum: Programmieren allgemein
Delphi
by Delbor,
28. Mai 2019
Hi zusammen
Um PDFs anzuzeigen, gehe ich erstmal so vor:
procedure TOpenFileFrame.TVFilesExplorerMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var AnItem: TTreeNode; ATextSelection :String;
begin
AnItem := TVFilesExplorer.GetNodeAt(X, Y);
if not AnItem.HasChildren then