Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
1. Apr 2015
Path: C:\Programme\ = etwas in dem Verzeichnis (Pfadangabe für eine Datei/Verzeichnis zum Anhängen, also mit abschließendem PathDelimiter)
Directory, bzw. Pathname: C:\Programme = das Verzeichnis selber (der Verzeichnisname, also ohne abschließenden PathDelimiter)
Filepath: C:\Programme\Meine.exe = eine bestimmte Datei (inkl. Pfad)
Filename: Meine.exe = irgendeine Datei (ohne Pfad)
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
1. Apr 2015
Mehrere Frees in einem Finaly geht natürlich nur, wenn alle Frees selber keine Exceptions erzeugen können (also jeweils die Free vor einem anderen Free ... sozusagen der Letzte darf knallen, wenn er will)
Wenn das nicht nahezu sichergestellt ist, dann entweder jeder sein eigenes Try-Finally, oder ein Try-Finally/Except im Finally.
Fälle, wonach das Programm dann eh komplett im Arsch ist und...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
1. Apr 2015
Ja, Free prüft auf nil, aber lokale Variablen sind nicht unbedingt automatisch mit nil initialisiert. :zwinker:
Aber das sollte dir der Compiler auch sagen. :stupid:
Entweder es knallt nicht, weil der Zeiger zufällig auf "irgendein" Objekt zeigt und es dann freigegeben wird, oder es knallt hoffentlich. :angle2:
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
1. Apr 2015
Jupp, aber dann vor dem Try natürlich nicht das :=nil vergessen, denn sonst knallt auch noch das Free, da nicht initialisiert, wenn es im Create knallte.
2x Try-Finally, oder Create drinnen und davor initialisieren.
Sinn: Nja, wenn es im Create knallt, kommt es dennoch nicht beim Exists vorbei, außer Exists steckt im finally. :zwinker:
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
1. Apr 2015
Noch besser, das "dir" ist erstmal ein "path", denn dir := ExtractFilePath(Application.ExeName);, aber hier passt Vieles nicht so ganz.
erst wird in "dir" ein Pfad "path" reingeschrieben ( C:\dir\ )
dann noch der falsche Dialogtext "Bitte ein Verzeichnis auswählen" > Ergibt ein "dir" ( C:\dir\dir2 ), aber nur wenn man den Editinhalt ändert und nicht so belässt
Bezogen auf SelectDirectory...