Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
486 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Datei aus dem Papierkorb wiederherstellen

  Alt 27. Aug 2014, 12:41
Hallo Dejan Vu, vielen Dank für deinen wirklich guten Kommentar. Auch der ist top!

Fast alle deine Anmerkungen hatte ich mir auch vorher durch den Kopf gehen lassen und ich finde sie richtig. Ich muss aber erklärend anmerken, dass nach dem vielen Herumsuchen und -probieren ich nachts um eins wenig Lust hatte, den Code einzustellen. Da ich aber schon so viel von der DP profitiert habe und wusste, du machst es gleich oder gar nicht, habe ich den Code einfach rasch reingehauen. Er löst das eigentliche Problem und es ist für jedermann kinderleicht, ihn den eigenen Wünschen und Bedürfnissen anzupassen.

Zu deinen Anmerkungen:
  1. Klasse: Das war sonnenklar, dass der Profi (bin ich ja nicht) alles mit Klassen macht (machen muss, sonst fühlt er sich nicht gut!). Ich bleibe (mit schlechtem Gewissen) gern bei meinen schlichten Prozedurchen und Funktiönchen, weil sie einfach und praktisch sind (vor allem beim Reinkopieren in den eigenen Code).
  2. Records 1: Das Gleiche! Records sind out und der Profi nimmt Klassen. Nach mehreren Diskussionen hierüber in der DP (siehe vor allem hier) liebe ich immer noch meine kleinen bescheidenen Recordchen und bin da anscheinend auch nicht der einzige.
  3. Records 2: Ich hatte stark mit einer TObjectList geliebäugelt, insbesondere wegen OwnsObject. Dann habe ich aber einen (englischen) Beitrag gelesen, wo jemand behauptete, er habe den Quelltext von TObjectList durchgesehen und dort werde trotz OwnsObject gar nichts freigegeben. Da habe ich mir gedacht, wenn du sowieso das altmodische Zeugs nimmst, dann baust du dir auch eine idiotensichere Lösung (daher auch PPIDL^.Dateiname := ''; ).
  4. Einzelschritte: Unbedingt! Mache ich eigentlich sonst immer. Insbesondere, weil ich Code Folding für die segensreichste Neuerung der IDE halte und Einzelschritte das Debuggen so erleichtern. Was mich nur irritiert, ist, dass der Code der Profis hier diesen Grundsatz eigentlich so gut wie nie beherzigt. Und der Sourcecode von großen kommerziellen Programmen tut das auch nicht, da sieht man ellenlangen Spaghetticode, allenfalls unterbrochen von hinweisenden Kommentaren.
  5. "...das ist eh falsch, denn i ist = PIDLListe.Count, wenn nichts gefunden wurde" stimmt meiner Meinung nach nicht, der Code ist richtig. Erster Kandidat dennoch für eine Zerlegung in Einzelschritte.
  6. "...denn bei einem 'exit' wird vorher der finally-Abschnitt aufgerufen." Echt? Tatsächlich! Da erhebt sich nebenbei die Frage, wie man den langgehegten Wunsch vieler Delphi-Anwender nach einer try..except..finally-Konstruktion am besten realisiert. Doppeltes "try"?
  7. Deutsch/Englisch: Stimmt auch. Ich habe das englische Original (hier!) zum Teil gelassen, weil ich mich genierte, den fremden Code so total zu vereinnahmen. Ist vielleich Quatsch.
Ausblick: Vielleicht setze ich mich dran und bastle ein paar Klassen, und sei es nur zum Üben. Ein Vorteil wäre (sogar für mich), dass man dann noch ein paar Funktionalitäten einbauen könnte (beispielsweise glaube ich, dass die Auflistung der Dateien im Papierkorb für sich allein für viele interessant ist). Ansonsten tut es vielleicht der Nächste, der den Code benutzt?

Geändert von Benmik (27. Aug 2014 um 13:11 Uhr)
  Mit Zitat antworten Zitat