
Datein
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Datein
Bevor ich jetzt noch vollständig zum verknöcherten, alten Meckerer werde, stimme ich dir bei der Erweiterung der Doku zu.
Meinetwegen können ja auch die zusätzlichen Prozeduren mit aufgenommen werden, bloß das deprecated für die bestehenden Funktionen würde ich als falsch empfinden.

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Datein
Danke, Michael!
@wp_xyz: Könntest Du mit dem als Kompromiß leben?
Dann würde ich vorschlagen, her mit inhaltlichen / stilistischen Verbesserungsvorschlägen (hab's gerade selbst nochmal überarbeitet), und ich stelle das dann heute abend als Kompromißvorschlag in den Bugtracker.
Gruß Rüdiger
@wp_xyz: Könntest Du mit dem als Kompromiß leben?
Dann würde ich vorschlagen, her mit inhaltlichen / stilistischen Verbesserungsvorschlägen (hab's gerade selbst nochmal überarbeitet), und ich stelle das dann heute abend als Kompromißvorschlag in den Bugtracker.
Gruß Rüdiger
Re: Datein
Eigentlich ist es ein "Alles oder nichts": Wenn man davon überzeugt ist, dass die bisherige Funktion in der LCL bleiben kann, braucht man auch die Prozedur nicht --> Patch ablehnen. Wenn man der Meinung ist, dass die Funktion zu leicht zu Fehlern verleitet, sollte man den Patch anwenden, also die Prozedur aufnehmen, und dann aber auch langfristig die Funktion aus der LCL entfernen --> Patch annehmen + "deprecated". Lassen wir die Entwickler entscheiden. Egal wie die Entscheidung ausfällt, ich werde dieses Thema nicht weiter verfolgen, es gibt wichtigeres.ruewa hat geschrieben:Könntest Du mit dem als Kompromiß leben?
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Datein
So würde ich es auch machen, dann sollte es jedem klar sein.Was spricht ernsthaft dagegen, in die Dokumentation von FindAllFiles und FindAllDirectories die folgenden zwei Absätze einzupflegen?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Datein
Wen ich diesen Code angucke, habe ich das Gefühle, das bei der Zeile Memo.Lines := SL; eine Speicherleiche bei Memo.Lines gibt, da Lines auch ein TString ist.
Besser währe es, nur den Text(String) zu kopieren und nicht die gane Classe.
Code: Alles auswählen
var
SL : TStringList;
begin
try
SL := FindAllFiles('.');
Memo.Lines := SL;
finally
SL.Free;
end;
end;
Code: Alles auswählen
var
SL: TStringList;
begin
try
SL := FindAllFiles('.');
Memo1.Lines.Text := SL.Text; // oder Memo1.Text := SL.Text;
finally
SL.Free;
end;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Datein
Heaptrc sagt, dass das schon in Ordnung ist.
Und das ist auch logisch, weil das Memo die vom ihm als "Lines" verwendeten Strings selbst aufräumt.
Und das ist auch logisch, weil das Memo die vom ihm als "Lines" verwendeten Strings selbst aufräumt.
- Beim Programmstart wird das Memo erzeugt und dieses erzeugt sich die "Lines".
- Zu Beginn der Routine wird SL erzeugt.
- De Zuweisung "Memo.Lines := SL" kopiert SL in the Lines des Memo.
- Am Ende der Routine wird SL zerstört.
- Schließlich zerstört das Memo am Programm-Ende seine Lines.
Zuletzt geändert von wp_xyz am Fr 21. Nov 2014, 17:03, insgesamt 1-mal geändert.
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Datein
Aber was passiert während dieses Befehles mit Memo.Lines ? "Memo.Lines := SL"
Räumt da Memo auch schon auf ?
Räumt da Memo auch schon auf ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Datein
Schau dir den Quellcode an: Die Zuweisung "Memo.Lines := SL" bewirkt ein "Memo.Lines.Assign(SL)", und bei dem assign ruft die Stringliste nur Clear auf (d.h. sie löscht sich) und fügt dann SL über AddStrings ein. Lines wird dabei also nicht zerstört, sondern nur gelöscht und neu gefüllt.
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Datein
Jetzt habe ich es gesehen, Lines ist als property deklariert und kann somit Anpassungen machen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot