olegy123 писал(а):Ваш клиент в Андройде точно стал бы делать.
Понимаете, какая фигня в жизни бывает. Если человек попросил приложение именно для компьютера, значит, для компьютера и надо делать. Если бы попросил для смартфона - я бы отказался, я с андроидом еще лет 8 назад нажрался неприятных продуктов и завязал. Есть круг задач, которые не то, чтобы невозможно решить на андроидной платформе, а просто эти задачи возникают у людей, которые смартфонами сроду не пользуются. Но это философия, конечно. А философствовать как-то не хочется, мне бы по конкретике, а тут флуд, который никому не нужен.
Я, раз уж заговорили про жуткую сложную житуху под "зеленым антропоидом", другую историю вспомню, которую краешком проходил. Есть, наверное, и поныне такая среда, как Allegro Common Lisp. В 2012-м пришлось один раз воспользоваться. В чем там прикол - это компилятор лиспа. Который не псевдокод гонит, а нативный машинный, причем, очень оптимизированный. Правда, к программке идет рантайм-библа метров на 20, но это и 10 лет назад уже никого не пугало. Второй прикол среды - это графическая IDE с сильным закосом под дельфи и билдер. То есть, весь оконный интерфейс можно спокойно в ней сделать. Самый тяжкий недостаток - коммерческая. Однако, была бесплатная триал-версия, которая не запускалась без наличия инета. И матов я выпустил в адрес создателей этой хрени немало.
И вот вопрос - а на хрена она вообще нужна-то была? Почему не дельфи? Да потому, блин, что интерфейс, как бы страшно с ним ни было возиться на Лиспе, был лишь верхушкой айсберга. Или какашкой вороны, пролетавшей над этим айсбергом. А "внутри", под этим интерфейсом работала отличная, очень крупная, но при этом хорошо сколоченная "тематическая" библиотека на Лиспе. На других языках ничего подобного не нашлось, а эта - ну просто конфетка. И можно было подрочиться с Аллегро только ради этого.
Если же программа состоит ТОЛЬКО ИЗ ОДНОГО ИНТЕРФЕЙСА - ну, блин, есть БДСМ, есть ЛГБТ, кто как хочет, так и тешится... Нравится под андроид писать нашлепки, возясь с каждой кнопочкой и чекбоксом, под которыми две-три формулы - да кто ж запретит!
Вот и в моем проекте, спровоцировавшем это обсуждение, та же фигня. Скроллинг картинки - да, но кроме него, еще другие интерфейсные элементы надо обслуживать, а код, лежащий под интерфейсом на порядки сложнее и в разы крупнее того, что я тут, как демку, выложил. Там даже обслуживание событий для других элементов управления ощутимо крупнее, чем обслуживание скроллинга. А поскольку так, то уже не критично, пишем мы на лазаре с помощью IDE или подтягиваем fpGUI какой-нибудь, или прямо на иксах молотим (или на чистом WinAPI, тут, кстати, есть опыт). Правда, для меня эти варианты ведут к погружению на месяцы в документацию по библиотекам, с которыми я никогда не сталккивался. На чистом WinAPI на дельфях писал, было. Но тут не тот случай, нужна кроссплатформа.
Добавлено спустя 10 минут 56 секунд:iskander писал(а):Ага, ляпнул не подумав.
А если вот так?
Понравилось! Я просто поясню для случайных прохожих, в чем юмор. Мы создаем две панели - вертикальную и горизонтальную - для линеек, которые хранятся в TImage и занимают всю панель. При скроллинге за пределы начала картинки этим TImage задается отрицательная координата Left или Top. То есть, это работает! И я нахожу это приемлемым.
Но, уважаемый
iskander, на данный момент, когда я пишу этот пост, у меня башка вообще не варит. И я просто не могу оценить накладные расходы на ПОЛНУЮ реализацию. Вот, я уже выкладывал свой вариант, на котором остановился, потому что он меня полностью устраивает.
https://yadi.sk/d/asFcGhYPrZITRAЕсли Ваш подход реализовать полностью, то есть, корректно обслужить все нужные события, возможность изменения размера окна программы, позиционирование рисунка и линеек... У меня подозрение, что в итоге кода выйдет не меньше, чем в моем варианте. Он не будет сложнее, скорее всего, то на то и выйдет.
А для быстрой демки при постоянных нулевых координатах края "несущих" панелей - конфетка! Просто и понятно.