Автор | Сообщение |
|
| постоянный участник
|
Пост N: 75
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.11.06 21:58. Заголовок: Как прикрутить к терминалке "Окно проводника"
Возможно ли в терминалке вызвать стандарное окно "Выбор файла" как в других языках. И чтоб он вернул имя и путь выбранного файла. Заранее спасибо за ответ.
|
|
|
Ответов - 20
[только новые]
|
|
|
| |
Пост N: 465
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.11.06 08:58. Заголовок: Re:
Ты про чистый Harbour ? Andrey пишет: цитата: | Возможно ли в терминалке вызвать стандарное окно "Выбор файла" как в других языках. |
| Если так то видать как и в Clipper ;) На Clipper вообще то программил ?
|
|
|
|
| постоянный участник
|
Пост N: 77
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.11.06 14:14. Заголовок: Re:
Да я про чистый Harbour ! А в клипере разве можно управлять окном "Выбора файлов" ?
|
|
|
|
| Администратор
|
Пост N: 390
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.11.06 10:06. Заголовок: Re:
можно взять модуль source\s_dialogs.c, собрать его с терминальной программой и использовать Там много всяких вкусных диалогов: ChooseFont(), c_GetFile(), c_PutFile(), BrowseFolder(), ChooseColor()
|
|
|
|
| |
Пост N: 467
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.06 14:10. Заголовок: Re:
Pasha пишет: цитата: | можно взять модуль source\s_dialogs.c |
| Дружище а где такой модулек то ? ;) Не вижу в xHarbour однако......
|
|
|
|
| модератор
|
Пост N: 336
Зарегистрирован: 25.05.05
|
|
Отправлено: 12.11.06 18:12. Заголовок: Re:
Dima пишет: По-видимому, Pasha имел в виду файл minigui\source\c_dialogs.c из поставки библиотеки MiniGUI.
|
|
|
|
| |
Пост N: 468
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.06 18:58. Заголовок: Re:
Вот за что я люблю Minigui так это за огромное количество примеров и прочих вкусностей. Там все есть , как в Греции
|
|
|
|
| модератор
|
Пост N: 340
Зарегистрирован: 25.05.05
|
|
Отправлено: 13.11.06 12:40. Заголовок: Re:
Andrey пишет: цитата: | Возможно ли в терминалке вызвать стандарное окно "Выбор файла" как в других языках. И чтоб он вернул имя и путь выбранного файла. |
| Ниже пример с возможностью множественного выбора (использует xHarbour библиотеку what32): // sample test of what32 open file dialog #include "commdlg.ch" function main() local aFileName local cFileName local cPath := curdrive()+":\"+curdir() local aFilter := {{"Zip Files","*.zip"},{"Text Files","*.*"}} setmode(50,80) alert("Begin; OK to Continue") // what32 part aFileName := getopenfilename(; getactivewindow(),; // hWnd: cPath,; // cPath: "Select Files to Parse",; // cTitle: aFilter,; // aFilter: OFN_ALLOWMULTISELECT+OFN_EXPLORER,;// nFlags: cPath,; // cInitDir: "zip",; // cDefExt: 1) // nIndex: // show dialog results if !empty(aFileName) for each cFileName in aFileName ? "Selected-> "+cFileName next endif alert("End; OK to Exit") return(NIL)
|
|
|
|
| Администратор
|
Пост N: 391
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.11.06 15:50. Заголовок: Re:
Да, конечно же оттуда самое главное я и забыл написать
|
|
|
|
| постоянный участник
|
Пост N: 80
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.11.06 14:32. Заголовок: Re:
Не удается собрать библиотеку what32.lib Выдает такое сообщение: MAKE Version 5.2 Copyright (c) 1987, 2000 Borland bcc32 -tW -DHB_API_MACROS -DHB_STACK_MACROS -DHB_OS_WIN_32 -DHB_FM_STATISTICS_OFF -d -a8 -OS -O2 -5 -c -w-8075 -I.\include;..\..\include /nobj\b32 source\_wincall.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland source\_wincall.c: Warning W8002 source\_wincall.c 114: Restarting compile using assembly in function DynaCall Error E2133: Unable to execute command 'tasm32.exe' ** error 1 ** deleting obj\b32\_wincall.obj Я так понимаю, что нужен турбоассемблер, а где его взять ? У меня стандартный free Borland C. Киньте ссылку на tasm32 или если несложно на мыло: 30195@mail.ru Заранее спасибо.
|
|
|
|
| |
Пост N: 78
Зарегистрирован: 28.06.05
|
|
Отправлено: 14.11.06 18:59. Заголовок: Re:
а зачем собирать - выдрать из PRG getopenfilename и HB_FUNC( _GETOPENFILENAME ) -- обернуть в #pragma BEGINDUMP ... #pragma ENDDUMP и все.
|
|
|
|
| постоянный участник
|
Пост N: 36
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.11.06 21:46. Заголовок: Re:
Andrey пишет: цитата: | Киньте ссылку на tasm32 или если несложно на мыло: 30195@mail.ru |
| Не сложно кинул
|
|
|
|
|
| постоянный участник
|
Пост N: 84
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.06 22:00. Заголовок: Re:
А еще одну вещь для терминалки возможно ? Нужно вызвать стандартное Window окно сообщений с кнопочками ! С "крестиком" или "Восклиц.знаком" и "Да" - "Нет".
|
|
|
|
| Администратор
|
Пост N: 393
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.11.06 11:21. Заголовок: Re:
Из минигуи - это модуль c_msgbox.c Из what32 - функции MessageBox(), MessageBeep()
|
|
|
|
| постоянный участник
|
Пост N: 87
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.11.06 19:18. Заголовок: Re:
gfilatov пишет: цитата: | Ниже пример с возможностью множественного выбора (использует xHarbour библиотеку what32): |
| Так, собрал я библиотеку и пример. Классно, но "Окно выбора файла" под основную задачу прячется, хотя там вроде getactivewindow() стоить. И не по центру экрана. Что делать ? И как сразу бы открывать Окно проводника на "Мой компьютер" ? Я не знаю как задать "Мой копьютер" (или где он "живет") ?
|
|
|
|
| постоянный участник
|
Пост N: 92
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.11.06 22:18. Заголовок: Re:
Ну что вы все забыли про меня ?
|
|
|
|
| |
Пост N: 79
Зарегистрирован: 28.06.05
|
|
Отправлено: 18.11.06 18:05. Заголовок: Re:
есть MSDN совершенно нормально в xHarbour использовать Windows API.
|
|
|
|
| постоянный участник
|
Пост N: 94
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.11.06 00:54. Заголовок: Re:
А как его использовать ? Если ты его используешь, то скинь пример. Заранее спасибо.
|
|
|
|
| |
Пост N: 80
Зарегистрирован: 28.06.05
|
|
Отправлено: 19.11.06 18:52. Заголовок: Re:
Ну - надо установить MSDN (изрядно места занимает, но дело того стоит). Выбрать закладку "Index". Указать там GetOpenFileName. Рекомендую также ознакомиться с "OPENFILENAME Structure". Описание - на пару страниц. Внутре есть линк на пример. Как это прикручивается к Харбору см. в исходниках любой GUI-библиотеки. Удачи!
|
|
|
|
| |
Пост N: 219
Зарегистрирован: 08.04.06
|
|
Отправлено: 27.02.08 12:30. Заголовок: Петр пишет: цитата..
Петр пишет: цитата: | цитата: Киньте ссылку на tasm32 или если несложно на мыло: 30195@mail.ru Не сложно кинул |
| А мне можно на kniga@online.ru ? А то я один какой-то скачал (стало доставать окошко блокнота с ошибкой при сборке xHarbour'а), а он при запуске виндозную ошибку выдаёт... Спасибо!
|
|
|
|
| постоянный участник
|
Пост N: 514
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.08 15:39. Заголовок: Самый простой пример..
Самый простой пример у Александра Кресина: Function main( ) Local mypath := "\" + CURDIR() + IIF( EMPTY( CURDIR() ), "", "\" ) Local fname fname := SelectFile( "xBase prog files( *.prg )", "*.*", mypath ) ? fname ? wait return Nil // ----------------------------------------------- // Вставка на C в программе для Harbour'a #pragma BEGINDUMP #define _WIN32_WINNT 0x0400 #define OEMRESOURCE #include <windows.h> #include "hbapi.h" #include "hbapiitm.h" #include "hbvm.h" HB_FUNC( SELECTFILE ) { OPENFILENAME ofn; char buffer[512]; char *strFilter, *str1 = hb_parc( 1 ), *str2 = hb_parc( 2 ); char *initDir = ( hb_pcount()>2 && ISCHAR(3) )? hb_parc(3):NULL; char *cTitle = ( hb_pcount()>3 && ISCHAR(4) )? hb_parc(4):NULL; strFilter = (char*) hb_xgrab( strlen(str1) + strlen(str2) + 4 ); if( strFilter == NULL ) { hb_retc( "NULL" ); return; } memset( strFilter, 0, strlen(str1) + strlen(str2) + 4 ); strcpy( strFilter, str1 ); strcpy( strFilter+strlen(str1)+1, str2 ); memset( (void*) &ofn, 0, sizeof( OPENFILENAME ) ); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = GetActiveWindow(); ofn.lpstrFilter = strFilter; ofn.lpstrFile = buffer; buffer[0] = 0; ofn.nMaxFile = 512; ofn.lpstrInitialDir = initDir; ofn.lpstrTitle = cTitle; ofn.Flags = OFN_FILEMUSTEXIST|OFN_EXPLORER; if( GetOpenFileName( &ofn ) ) hb_retc( ofn.lpstrFile ); else hb_retc( "" ); hb_xfree( strFilter ); } #pragma ENDDUMP Другие тоже собрал которые рекомендовали. Сунулся пересобрать под хХарбор 1 - ошибки полезли. Если надо, то конечно соберу. А высылать куда ?
|
|
|
|