Страница 6 из 35

СообщениеДобавлено: 05.03.2007 16:21:37
Attid
Lister(.exe) из состава Total Commander

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

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

ну пока ничего нового никто и не добавляет а пытаемся достичь стабильности. а про вынос утилит в отдельные бинарники я говорил что не против но ничего не порешили если Alexx2000 за то давайте разрезать что есть и каждому желающему по компоненту в руки и пусть доводит каждый свое.

СообщениеДобавлено: 05.03.2007 18:00:06
Romtek
В KAStoolBar при попытке загрузить файл с относительным путём (что правильнее), например, 'pixmaps\11.png' , сообщает, что нет такого пути...

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

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

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

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

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

СообщениеДобавлено: 06.03.2007 11:42:07
shade
Ну в таком случае нужно использовать SysUtils.ExpandFileName

СообщениеДобавлено: 07.03.2007 14:12:22
Romtek
А мне кажется, что скелет уже есть.

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

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

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

Замечание (так сказать, "фи"):
на мой взгляд, "встраивание" WinAPI (также касается и UNIX-функций) в код неприемлемо, нужно выносить ОС-зависимые участки кода в отдельные модули. Тот же uOSUtils.pas подойдёт для этих целей.

СообщениеДобавлено: 07.03.2007 16:10:36
Romtek
Как исправить глюк с отображением иконок в винде? По краям фон чёрного цвета. При этом, в иконках директорий всё как полагается.
Грешу на TPixMapManager.GetBitmap

СообщениеДобавлено: 07.03.2007 22:11:17
Romtek
С TPixMapManager.GetBitmap чуток разобрался, дело всё в неинициализированном Canvas в TBitmap.

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

Alexx2000, ты наколдовал там немало. Только можно сделать проще. Вместо методов-форм для диалогов прогресса, сообщений и прочего, можно было воспользоваться процедурными типами.

СообщениеДобавлено: 08.03.2007 02:35:51
Alexx2000
Romtek писал(а):Перечисли что входит в скелет и каким образом (форма, модуль или программа).


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

Собственно для этих целей он и создан, однако еще не все что можно туда перенесено.
Насчет потоков наколдовал в основном не я,
так уже было. Хотя и я внес в них свою лепту, однако под Линукс данный вариант не работает.
В тоже время поиск в потоке работает, поэтому там действительно слишком намудрили.
Надо их оптимизировать, чтобы не было проблем не под windows, не под Linux.

СообщениеДобавлено: 08.03.2007 15:35:44
Romtek
Неплохо бы заменить панель с длинным списком устройств на TKAStoolbar на компактный TDriveComboBox. Вся беда, что для Лазаруса такого компонета нет, а как получать список устройств программно я не имею понятия (аналог виндовой GetLogicalDrives).

СообщениеДобавлено: 08.03.2007 20:35:12
Alexx2000
Romtek писал(а):Неплохо бы заменить панель с длинным списком устройств на TKAStoolbar на компактный TDriveComboBox.

Ну это должно быть опциональным, кому то нравиться в виде кнопочек на панели, кому то в виде ComboBox.
И в чем собственно проблема в получении списка устройств, в исходниках все это есть.

СообщениеДобавлено: 12.03.2007 20:08:04
SergKam
:) а в линуксе нет "устройств" единая фаловая система с общим корнем.
вместо устройст лучше закладки настраиваемы сделать, или придется вывод команды mount парсить

СообщениеДобавлено: 23.03.2007 17:37:12
Attid
поймал у себя ошибку
при запуске командора в венде шло обращение к диску 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);


на других машинах нормально =/

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

кста обнаружил что для каждой панели операция повторяется
есть что оптимизировать =)

СообщениеДобавлено: 23.03.2007 19:24:27
Sergei I. Gorelkin
Если не ошибаюсь, системные ошибки такого рода можно попробовать удавить предварительным вызовом SetErrorMode().

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

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



Alexx2000
последних изменений "Function to Execute internal or external command"
не понял.