Hallo,
Zitat von
M. Hassmann:
ich hätte es auch so gelöst:
Delphi-Quellcode:
with TForm2.Create(self) do
begin
try
Init(ZeigerAufListView);
If ShowModal = mrOk then
MachWasMitListView;
finally
free;
end;
end;
tja,
, Problem ist, das mein Hauptformular nicht weiß, was es mit der ListView machen soll, so das, bei mir, die Procedure MachWasMitListView nicht weiß, was sie machen soll.
Zitat von
M. Hassmann:
wobei ich mich frage was du in form 2 mit dem listview machst.
scheinbar verarbeitest du da ja die daten der liste.
wäre doch dann sinnvoll eine liste der daten zu übergeben anstatt gleich den kompletten listview bzw einen zeiger darauf.
Es ist eine Liste von Dateien, die im modalen Formular, je nach auswahl des Benutzers, auf bestimmte weise Umbenannt werden sollen. Davon sind aber nicht immer alle betroffen: zu deutsch, kann man wählen, ob Umlaute konvertiert werden sollen. Nur die Dateien, für die das auch sinn macht, sprich, in denen umlaute vorkommen, werden natürlich umbenannt. Und genau die umbenannten Dateien, müssen, in der eigentlich ListView geändert werden. Ich kann sie nicht einfach neu erstellen, da nicht klar ist, in welchen Verzeichnissen die Dateien liegen.
Wenn wir hier nichts schönes finden, dann werdne die Daten vorher in einer Liste gesammelt, an ShowModal übergeben, und hinterher ausgewertet, welche Daten sich geändert haben, und die dann in der ListView des Hauptformulars nachgetragen. tja, Datenkapselung adee...
@Muetze1:
Ja, *lach*, manchmal sieht man den Wald vor lauter Bäumen nicht. Ich hab nicht dran gedacht, daß die übergebene (l) ja nur eine Objekt-Referenz ist, und man darauf natürlich auch ein Assign machen kann.
Aber, ..., es funktioniert nicht. Ich kriege beim
Delphi-Quellcode:
Function TForm2.ShowModal (l: TListView): integer;
begin
lModal.Assign (l);
eine EConvertErrorException. Die übergebene L ist, laut meinem Debugger, aber nicht nil. Muß ich assign selber schreiben, oder wie, ...
Fragende Grüße
Marco