Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Пример плагина на ATL/WTL типа Экстформс-эксплорер (число прочтений - 12888 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Пример плагина на ATL/WTL типа Экстформс-эксплорер
22. Июня 2006 :: 15:41
Печать  
Пример плагина на ATL/WTL типа Экстформс-эксплорера..
Написан в порядке изучения ATL и WTL
В копилочку..... Если есть жалание покритиковать, милости просим..

http://www.1cpp.ru/forumfiles/Attachments/OCP_ExtFiles_2006-06-22_19-10.rar
  
Наверх
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #1 - 23. Июня 2006 :: 04:35
Печать  
Спасибо, теперь без проблем с обновлением окошка, как бывает с дельфюшными плагинами.
Очень надеюсь, что ты переведешь его из статуса "Пример".

Мне (прошу прощения за наглость) для этого достаточно пиктограмм к файлам и на тулбаре и минимальных возможностей по работе с файлами (переименовать, переместить, удалить).

А еще после загрузки конфигуратора дерево автоматически не обновляется (то есть структура директорий не прочитывается при загрузке), так предусмотрено?
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #2 - 23. Июня 2006 :: 04:41
Печать  
Еще.

В корне дерева лучше полный путь не показывать, а только имя его последней директории, а полный путь - в хинте, например, или в статусной строке при выделении соответствующей ветки дерева, а для традиционных предопределенных путей - их мнемо-имена (КаталогИБ и КаталогПриложения соответственно).
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #3 - 23. Июня 2006 :: 10:43
Печать  
kuntashov писал(а) 23. Июня 2006 :: 04:41:
В корне дерева лучше полный путь не показывать, а только имя его последней директории, а полный путь - в хинте, например, или в статусной строке при выделении соответствующей ветки дерева, а для традиционных предопределенных путей - их мнемо-имена (КаталогИБ и КаталогПриложения соответственно).

Да ладно тебе...
Цитата:
пиктограмм к файлам и на тулбаре и минимальных возможностей по работе с файлами (переименовать, переместить, удалить).

с пиктограммами медленне будет грузиться, но попробую..
Цитата:
А еще после загрузки конфигуратора дерево автоматически не обновляется (то есть структура директорий не прочитывается при загрузке), так предусмотрено?
Да, но сделаю опционально..
Хочу добавить, для того что-бы писать на ATL/WTL нужно хорошо знать API, с чем у меня не очень.
+Phoenix давно хотел переписать свой плагин с дельфы, так что может возьмет за основу и перепишет.
А так буду просто добавлять по мере надобности что потребуется и что смогу.
ЗЫ, если уж делать файловые операции, то все сразу, если есть пример, могу по быстрому вставить....
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #4 - 23. Июня 2006 :: 10:59
Печать  
Цитата:
ЗЫ, если уж делать файловые операции, то все сразу, если есть пример, могу по быстрому вставить....

могу дать пример переименования и помещения в корзину файла/папки, написано на дельфе, но происходит вызов команд WinAPI, так что думаю перевести тебе труда не составит.
или мне самому дописать на VC++?
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #5 - 23. Июня 2006 :: 11:37
Печать  
Phoenix писал(а) 23. Июня 2006 :: 10:59:
Цитата:
ЗЫ, если уж делать файловые операции, то все сразу, если есть пример, могу по быстрому вставить....

могу дать пример переименования и помещения в корзину файла/папки, написано на дельфе, но происходит вызов команд WinAPI, так что думаю перевести тебе труда не составит.
или мне самому дописать на VC++?

Давай конечно, добавлю...
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #6 - 23. Июня 2006 :: 12:09
Печать  
procedure SendToRecycleBin(FileName: string);
var
  SHF: TSHFileOpStruct;
begin
  try
    with SHF do begin
     Wnd := Application.Handle;
     wFunc := FO_DELETE;
     pFrom := PChar(FileName + #0 + #0);
     fFlags := FOF_ALLOWUNDO // Preserves undo information, if possible.
     or FOF_SILENT //  Does not display a progress dialog box.
     or FOF_NOCONFIRMATION; //  Responds with "yes to all" for any dialog box that is displayed.
     pTo := '';
     fAnyOperationsAborted := false;
     hNameMappings := nil;
     lpszProgressTitle := 'qwer';
    end;
    SHFileOperation(SHF);
  except
    // to do : generate error
  end;
end;

переименовать
    with SHF do begin
     Wnd := Application.Handle;
     wFunc := FO_RENAME;

     fFlags := FOF_ALLOWUNDO // Preserves undo information, if possible.
     or FOF_SILENT //  Does not display a progress dialog box.
     or FOF_NOCONFIRMATION; //  Responds with "yes to all" for any dialog box that is displayed.

     pFrom := PChar(vOldPos + #0);
     pTo := PChar(vNewPos);

     fAnyOperationsAborted := false;
     hNameMappings := nil;
     lpszProgressTitle := 'идет обработка ...';
    end;
    SHFileOperation(SHF);

Копирование перенос
  with OpStruc do begin
    Wnd := Handle;

    if cbMove.Checked then
     wFunc := FO_MOVE
    else
     wFunc := FO_COPY;

    pFrom := pchar(vOldPos + #0);
    pTo := pchar(vNewPos);

    case ComboBoxToDoWithSameName.ItemIndex of
     0: fFlags := FOF_NOCONFIRMMKDIR or FOF_NOCONFIRMATION;
     1: fFlags := FOF_NOCONFIRMMKDIR or FOF_RENAMEONCOLLISION;
    end;

    fAnyOperationsAborted := False;
    hNameMappings := nil;
    lpszProgressTitle := nil;
    ShFileOperation(OpStruc);
  end;
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #7 - 23. Июня 2006 :: 13:07
Печать  
ГЫ, давненько кода на паскале не видел )).
Здравствуй, родной! ))))))
  
Наверх
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #8 - 23. Июня 2006 :: 13:47
Печать  
trdm писал(а) 23. Июня 2006 :: 10:43:
Да ладно тебе...


??

Цитата:
с пиктограммами медленне будет грузиться, но попробую..

Достаточно двух пиктограмм - папка и файл.

Цитата:
А так буду просто добавлять по мере надобности что потребуется и что смогу.


Ага, понял. В любом случае, спасибо... за пример Улыбка.
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #9 - 23. Июня 2006 :: 15:54
Печать  
Цитата:
Достаточно двух пиктограмм - папка и файл.

Я думал будет достаточно сделать жирным текстом названия каталогов. Хорошо, сделаю..
Цитата:
??
Не обращай внимание, просто на тот момент меня окончательно жара достала...
Да и не в курсе есть ли в ATL или WTL что-нибудь на подобие карт типа как в MFC CMamStringTo.... Надо поискать....
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #10 - 26. Июня 2006 :: 13:32
Печать  
Вроде финал-релиза:
- файловые операции как в виндовом проводнике (ч/з динам. меню..),
- включение дополнительных директорий,
- включение, отключение стандартных каталогов IBDir & BinDir,
- включения/исключения файлов по имени и расширению,
- минимум дефолтных настроек,
- может еще чего найдете..
Пиктограммы пока не делал, если есть желающие, могу выложить исходники...
  

OCP_ExtFiles.rar ( 33 KB | Загрузки )
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #11 - 26. Июня 2006 :: 13:53
Печать  
Вот только бяку с пиктограммами "Записать" и т.п.
как решить не знаю. К Саше не прорвешся.
если убрать из контрола родительский класс      
IPersistStorageImpl<CefExplorer>,
поможет ли????
« Последняя редакция: 26. Июня 2006 :: 22:49 - trdm »  
Наверх
IP записан
 
kuntashov
Full Member
***
Отсутствует


1С:Специалист

Сообщений: 130
Местоположение: Саратов
Зарегистрирован: 13. Июня 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #12 - 27. Июня 2006 :: 05:04
Печать  
trdm писал(а) 26. Июня 2006 :: 13:32:
Вроде финал-релиза:
- файловые операции как в виндовом проводнике (ч/з динам. меню..),


Шикарно! Спасибо!

Цитата:
...могу выложить исходники...


Почему бы их по умолчанию сразу не выкладывать, раз не жалко? Так больше шансов, что кто-то решит ими воспользоваться, тем более, что не сделанные фичи здесь же озвучены.
  

С уважением, &&Александр Кунташов&&http://kuntashov.ru/
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #13 - 27. Июня 2006 :: 07:36
Печать  
Исходники.
  

OCP_ExtFiles_2006_06_27-11_30.rar ( 129 KB | Загрузки )
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Пример плагина на ATL/WTL типа Экстформс-экспл
Ответ #14 - 10. Июля 2006 :: 23:03
Печать  
Эх.......
Видимо не слишком востребован функционал..... Ни кто пиктограмки так и не прикрутил....
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать