Double Commander

Файловый менеджер

Модератор: Модераторы

Сообщение Attid » 05.03.2007 16:21:37

Lister(.exe) из состава Total Commander

не работает под линуксом так что свой все равно имеет смысл вести.
хоть и как отдельный бинарник.

Бросьте заниматься фигнёй.

ну пока ничего нового никто и не добавляет а пытаемся достичь стабильности. а про вынос утилит в отдельные бинарники я говорил что не против но ничего не порешили если Alexx2000 за то давайте разрезать что есть и каждому желающему по компоненту в руки и пусть доводит каждый свое.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Romtek » 05.03.2007 18:00:06

В KAStoolBar при попытке загрузить файл с относительным путём (что правильнее), например, 'pixmaps\11.png' , сообщает, что нет такого пути...
Аватара пользователя
Romtek
постоялец
 
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган

Сообщение Alexx2000 » 06.03.2007 02:47:22

Romtek писал(а):А вы всё ещё "распыляетесь" на создание примочек? Бросьте заниматься фигнёй.

По твоему исправление багов это фигня. :)
Romtek писал(а): Давайте лучше соберём хорошо работающий и выглядещий скелет-минимум, на который уже наращивать мясо (модули и т.д.).

А мне кажется, что скелет уже есть. И именно над стабильностью сейчас и работаем, находя и исправляя ошибки.
"Вырезал" из DblCmd путём хирургического вмешательства такие компоненты, как внутренние просмотрщик и редактор, а также сравнение файлов.

На счет редактора еще можно согласиться, а вот просмоторщик и сравнение файлов, если выносить, то в виде библиотеки.
В KAStoolBar при попытке загрузить файл с относительным путём (что правильнее), например, 'pixmaps\11.png' , сообщает, что нет такого пути...

Как, ты уже заметил, на данный момент относительные пути не поддерживаются. :(
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение shade » 06.03.2007 11:42:07

Ну в таком случае нужно использовать SysUtils.ExpandFileName
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Romtek » 07.03.2007 14:12:22

А мне кажется, что скелет уже есть.

Перечисли что входит в скелет и каким образом (форма, модуль или программа).

Как, ты уже заметил, на данный момент относительные пути не поддерживаются.

Функцией SysUtils.FileExists проверял, поддерживаются.

Замечание (так сказать, "фи"):
на мой взгляд, "встраивание" WinAPI (также касается и UNIX-функций) в код неприемлемо, нужно выносить ОС-зависимые участки кода в отдельные модули. Тот же uOSUtils.pas подойдёт для этих целей.
Аватара пользователя
Romtek
постоялец
 
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган

Сообщение Romtek » 07.03.2007 16:10:36

Как исправить глюк с отображением иконок в винде? По краям фон чёрного цвета. При этом, в иконках директорий всё как полагается.
Грешу на TPixMapManager.GetBitmap
Аватара пользователя
Romtek
постоялец
 
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган

Сообщение Romtek » 07.03.2007 22:11:17

С TPixMapManager.GetBitmap чуток разобрался, дело всё в неинициализированном Canvas в TBitmap.

А вот в семействе нитей (threads) творится нечто... что словами не описать. Да что там, и не такое видел. Тянется цепочка от одних модулей к другим, и кажется, что бесконечно.
Никогда не думал, что нити могут зависеть от диалогов сообщений и панелей с файлами. Оказывается, и такое возможно.

Alexx2000, ты наколдовал там немало. Только можно сделать проще. Вместо методов-форм для диалогов прогресса, сообщений и прочего, можно было воспользоваться процедурными типами.
Аватара пользователя
Romtek
постоялец
 
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган

Сообщение Alexx2000 » 08.03.2007 02:35:51

Romtek писал(а):Перечисли что входит в скелет и каким образом (форма, модуль или программа).


скелет :
главная форма fmain.pas
framepanel.pas модуль содержащий класс файловой панели
uCopyThread, uMoveThread, uDeleteThread модули ответственные за копирование, перемещение и удаление в потоке
uFileList содержит класс для хранения списка файлов
uFindThread поиск файлов в потоке
и другие модули (по памяти все не перечислю) В общем то что обеспечивает базовую функциональность.
Замечание (так сказать, "фи"):
на мой взгляд, "встраивание" WinAPI (также касается и UNIX-функций) в код неприемлемо, нужно выносить ОС-зависимые участки кода в отдельные модули. Тот же uOSUtils.pas подойдёт для этих целей.

Собственно для этих целей он и создан, однако еще не все что можно туда перенесено.
Насчет потоков наколдовал в основном не я,
так уже было. Хотя и я внес в них свою лепту, однако под Линукс данный вариант не работает.
В тоже время поиск в потоке работает, поэтому там действительно слишком намудрили.
Надо их оптимизировать, чтобы не было проблем не под windows, не под Linux.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение Romtek » 08.03.2007 15:35:44

Неплохо бы заменить панель с длинным списком устройств на TKAStoolbar на компактный TDriveComboBox. Вся беда, что для Лазаруса такого компонета нет, а как получать список устройств программно я не имею понятия (аналог виндовой GetLogicalDrives).
Аватара пользователя
Romtek
постоялец
 
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган

Сообщение Alexx2000 » 08.03.2007 20:35:12

Romtek писал(а):Неплохо бы заменить панель с длинным списком устройств на TKAStoolbar на компактный TDriveComboBox.

Ну это должно быть опциональным, кому то нравиться в виде кнопочек на панели, кому то в виде ComboBox.
И в чем собственно проблема в получении списка устройств, в исходниках все это есть.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение SergKam » 12.03.2007 20:08:04

:) а в линуксе нет "устройств" единая фаловая система с общим корнем.
вместо устройст лучше закладки настраиваемы сделать, или придется вывод команды mount парсить
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение Attid » 23.03.2007 17:37:12

поймал у себя ошибку
при запуске командора в венде шло обращение к диску D (cdrom\kombo)
и если там нет СД то соответственно вылетает ошибка что диска нет, ошибка системная.
ОС XP,SP2

Код: Выделить всё

unit uOSUtils;
****
function GetLabelDisk(const Drv: Char; const VolReal: Boolean): string;
****
   GetVolumeInformation(PChar(Drv + ':\'), Buf, DWORD(SizeOf(Buf)), nil,
      NotUsed, NotUsed, nil, 0);


на других машинах нормально =/
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Attid » 23.03.2007 17:54:55

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

кста обнаружил что для каждой панели операция повторяется
есть что оптимизировать =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Sergei I. Gorelkin » 23.03.2007 19:24:27

Если не ошибаюсь, системные ошибки такого рода можно попробовать удавить предварительным вызовом SetErrorMode().
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Attid » 26.03.2007 16:27:13

Пробывал ДК откомпелировать в гтк2, получилось =)
даже работал, естественно руский язык в меню\сообщениях не пошел
зато прекрастно отображает каталоги на русском языке. и вообще приятнее все , только разные артефакты вылазиют. а в целом пользоваться уже можно учитывая еще и возобновление копирования под линуксом =)

жаль что пока потерял возможность что-то делать нет времени.



Alexx2000
последних изменений "Function to Execute internal or external command"
не понял.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Пред.След.

Вернуться в Double Commander

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru