Rozszeczyć możliwość TOpenDialog

0

Witam!

Mam taki problem. Korzystam w programie z okna dialogowego TOpenDialog. Ale chciałbym to okno trochę rozbudować, tzn. dodać w nim dwie listy rozwijane. Jak mogę tego dokonać? Jak rozszeczyć możliwości standardowego okna dialogowego?

0

Bardzo prosto:

Stwórz nową formę lub panel.
Teraz wystarczy powstawiać te same rzeczy które są na OpenDialog: TreeView, przyciski, itp i dodajesz własne rzeczy od siebie na ta formę/panel.

0

A nie da się tylko <ort>ROZSZECZYĆ </ort>możliwości?

Tworząc własne okno trzeba na nowo zrobić sporo rzeczy (kontrola plików, itp.) co już jest zrobione. Dodatkowo - standardowe okna, po lewej, zawierają taki pasek z wyborem... Moje dokumenty, Pulpit itp. Samemu nie mam pojęcia jak takie zrobić.

// rozszeczyć??? - Ł

0

Stwórz nową formę lub panel.
Teraz wystarczy powstawiać te same rzeczy które są na OpenDialog: TreeView, przyciski, itp i dodajesz własne rzeczy od siebie na ta formę/panel.

To nie takie proste: OpenDialog to gotowiec ze wszystkimi funkcjami, zabezpieczeniami - podejrzewam, że pisanie formy na jego wzór zajmie więcej czasu autorowi, niż cały jego program.

Ewentualnie można zajrzeć w Dialogs.pas i coś pokombinować.

0

Z tego co wiem to wymaga grzebania się z WinAPI. Musisz zrezygnować z klasy OpenDialog, stworzyć własny szablon dodatków do okna otwierania, zapisać go w pliku z zasobami. A dalej są jakieś kosmosy :)

0

hmm

Bo zauważyłem, że jak się zainstaluje cały pakiet JVCL to w Delphi okienko otwierania plików się zmiania... na dole dodany zostaje ComboBox i można dodawać sobie katalogi. Ci co mają JVCL na pewno wiedzą. No i właścinie zauwazyłem, że to okienko został "rozszerzone" o tą funkcję... ale jak? ;)

No nic, dzięki za odpowiedzi, pozdrawiam

0

Jest to możliwe i to nawet nie jest jakoś wybitnie skomplikowane. Tworzysz klase pochodną od TOpenDialog i nadpisujesz metody TaskModalDialog, DoShow i DoClose. Poszukaj w necie informacji/przykładów z tymi metodami - na pewno będzie coś na temat rozszerzania funkcjonalności standardowych dialogów.

PS. Niestety nie poratuję cię kodami bo piszę w C++, ale myśle, że naprowadziłem w pewnym stopniu na rozwiązanie problemu ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1