Savant Napisano Sierpień 16, 2018 Autor Zgłoś Napisano Sierpień 16, 2018 Mam pytanie: Zrobilem sobie program ktory kopiuje plik do jakiegos wybranego katalogu. jak zrobic aby progressbar pokazywal jaka czesc pliku sie juz skopiowala? I jeszcze jedno. utworzylem sobie listboxa w ktorym mam dyski i katalogi i pliki. jednak nie chce aby wyswietlaly mi sie pliki tylko same dyski i katalogi robilem to za pomoca LB_DIR ustawiajac flage na DDL_DIRECTORY | DDL_DRIVES ale nie pomoglo :-( Cytuj
Generał Napisano Sierpień 16, 2018 Zgłoś Napisano Sierpień 16, 2018 Co do kopiowania i progressbara to zobatrz sobie Link Cytuj
Omega Napisano Sierpień 16, 2018 Zgłoś Napisano Sierpień 16, 2018 Co do okienka z katalogami i dyskami. Skompiluj nastepujacy plik zasobow do res : 1536 DIALOG 141, 24, 176, 135 STYLE DS_MODALFRAME | 0x6004L | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Otwórz" FONT 8, "Helv" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL { CONTROL "&Nazwa pliku:", 1090, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, -99, 6, 76, 9 CONTROL "", 1152, "EDIT", ES_LEFT | ES_AUTOHSCROLL | ES_OEMCONVERT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, -99, 16, 90, 12 CONTROL "", 1120, "LISTBOX", LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, -99, 32, 90, 68 CONTROL "&Foldery:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 6, 96, 9 CONTROL "", 1088, "STATIC", SS_LEFT | SS_NOPREFIX | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 18, 96, 9 CONTROL "", 1121, "LISTBOX", LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 32, 96, 68 CONTROL "&Wy\x9Cwietl pliki typu:", 1089, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, -99, 104, 90, 9 CONTROL "", 1136, "COMBOBOX", CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP, -99, 114, 90, 96 CONTROL "&Dyski:", 1091, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 104, 96, 9 CONTROL "", 1137, "COMBOBOX", CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 5, 114, 96, 68 CONTROL "OK", 1, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 114, 6, 50, 14 CONTROL "Anuluj", 2, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 114, 24, 50, 14 CONTROL "Pomo&c", 1038, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 114, 46, 50, 14 CONTROL "&Tylko do odczytu", 1040, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 107, 68, 67, 12 } Jest to standardowe stare okno wyciagniete z systemowych zasobow. Z tym, ze lista plikow zostala zaslonieta. Nasytepnie wykorzystaj GetOpenFileName, z tym ze w strukture OPENFILENAME dodaj flagi: OFN_ENABLEHOOK or OFN_ENABLETEMPLATE i w lpfnHook=DialogHook dodaj obsluge funkcji, ktora miejwiecej powinna wygladac tak (w delphi): function DialogHook(Wnd: HWnd; Msg: UINT; WParam: WPARAM; LParam: LPARAM): UINT; stdcall; begin Result := 0; case Msg of WM_INITDIALOG: ;//tutaj obsluga inicjacji dialogu WM_DESTROY: ; //tutaj obsluga konca dialogu end; end; oraz lpTemplateName:=MAKEINTRESOURCE(1536) musi wskazywac na ten zasob. Ten typ okienek wykorzystywaly wczesniejsze programy instalacyjne Cytuj
Aspect Napisano Sierpień 18, 2018 Zgłoś Napisano Sierpień 18, 2018 ptaku napisał: robilem to za pomoca LB_DIR ustawiajac flage na DDL_DIRECTORY | DDL_DRIVES ale nie pomoglo Dodaj jeszcze flagę DDL_EXCLUSIVE. Cytuj
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.