Nur ganz kurz.
Ich möchte gerne hinter einer String-Variable die über Drag & Drop gefüllt wird einen weiteren String anfügen.
Es geht hier nur um einen kleinen Backslash.
Unter Delphi 7 funktioniert das so.
Delphi 7:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.OnFileDrop1FileDrop(filename: String); begin if DirectoryExists(filename)then begin Form1.Memo1.Lines.Add('Folder: ' + extractfilename(filename) + '\'); end else begin Form1.Memo1.Lines.Add('Path: ' + extractfilepath(fileName)); Form1.Memo1.Lines.Add('File: ' + extractfilename(filename)); end; end; |
Ergebnis im Memo-Feld:
Delphi-Quelltext
Unter Delphi 10.2 funktioniert das so aber NICHT...WARUM....
Delphi 10.2 Tokyo:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.DragDrop(var Message: TWmDropFiles); var Filename: String; begin SetLength(Filename,2000); DragQueryFile(Message.Drop,0,Pchar(Filename),2000); if directoryexists(Filename)= true then begin Form1.Memo1.Lines.Add('Folder: ' + ExtractFileName(Filename) + '\'); end else begin Form1.Memo1.Lines.Add('Path: ' + ExtractFilePath(Filename)); Form1.Memo1.Lines.Add('File: ' + ExtractFileName(Filename)); end; end; |
Ergebniss im Memo-Feld:
Delphi-Quelltext
Es ist egal, was für einen String ich anfügen möchte. Alles nach der Variable wird nicht mehr in die Memo-Zeile eingefügt.
Wenn an der Stelle von "Filename" eine andere "Random-String-Variable" steht, funktioniert das mit dem '\' hinzufügen.
Wird "Filename" in eine andere "Random-String-Variable" kopiert (Random:=Filename;) funktioniert es wiederum nicht mit dem '\' hinzufügen.
Wenn jemand eine Antwort darauf parat hat, würde ich mich über eine kurze Antwort freuen.
Mit besten Grüßen
teamrocket0