Opdendialog FolderChange
-
hi
wie könnte ich mit einer TOpenDialog komponente realisieren, dass der Start-Ordner nicht gewechselt werden kann.
irgendwie muss man auf da ereigniss onFolderCange reagieren, ich weiss nur nicht wie, da keine Eigenschaft vorhanden ist um den Pfad einzustellen.
-
die Eigenschaft InitialDir gibt das Verzeichnis an, bei welchem der Opendialog geöffnet wird
ausserdem solltest du dir mal die Eigenschaft Options ansehen, dort kann man u.a. ofNoChangeDir einstellen
-
ja du hast recht.
nur bewirkt diese Option lediglich, dass man im selben Verzeichniss ist, in dem man den dialog geschlossen hat, wenn man ihn erneut aufruft.
Ich möchte aber, dass es, während der dialog angezeigt wird, gar nicht erst möglich ist den Ordner zu wechseln
-
ja du hast recht.
nur bewirkt diese Option lediglich, dass man im selben Verzeichniss ist, in dem man den dialog geschlossen hat, wenn man ihn erneut aufruft.
Ich möchte aber, dass es, während der dialog angezeigt wird, gar nicht erst möglich ist den Ordner zu wechseln
-
Hallo
das scheint mit TOpenDialog nicht möglich zu sein.
Programmier dir so einen Dialog selber, du brauchst ja nur noch eine Liste der Dateien, wenn Verzeichnisse nicht berücksichtigt werden sollen.bis bald
akari
-
stimmt eigentlich
-
irgendwo gibts immer ne Lösung
Quelle ist ein Delphiforum in Thailand, China oder anderen Ländern mit Schriftzeichen, die ich nicht verstehevoid __fastcall SetOpenDialogDirectory(TOpenDialog *Dlg, const String Path) { const unsigned int ID_FILENAME_WIN2K=1148; const unsigned int ID_FILENAME_98=1152; HWND hFileName; HWND hOK; if (Win32MajorVersion >= 5) { hFileName = GetDlgItem(GetParent(Dlg->Handle), ID_FILENAME_WIN2K); hFileName = FindWindowEx(hFileName,0,"ComboBox",NULL); hFileName = FindWindowEx(hFileName,0,"Edit",NULL); } else hFileName = GetDlgItem(GetParent(Dlg->Handle), ID_FILENAME_98); hOK = GetDlgItem(GetParent(Dlg->Handle), IDOK); String file = Dlg->FileName.LowerCase(); if (file.Pos(LowerCase(Path)) < 1) { SetWindowText(hFileName, Path.c_str()); SendMessage(hOK, WM_LBUTTONDOWN, MK_LBUTTON, MAKEWORD(0, 0)); SendMessage(hOK, WM_LBUTTONUP, MK_LBUTTON, MAKEWORD(0, 0)); SetWindowText(hFileName, '\0'); } } void __fastcall TForm1::OpenDialog1FolderChange(TObject *Sender) { SetOpenDialogDirectory(OpenDialog1,OpenDialog1->InitialDir); }
-
wow, danke
du hast mir ne Menge Arbeit erspartPS: ich will ja nicht klugscheissern aber ich war mal in Thailand und es ist j´kein Problem die Schrift von Chinesischen Schriftzeichen zu unterscheiden. Sieht ein bisschen so aus wie Griechisch.