A A A A Автор Тема: РОС - программа расчёта оптики телескопов  (Прочитано 85867 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
у меня в каталоге загрузки ROS заглючил и завис...
Думаю, этот вопрос к Б.Гейтсу, т.к. для Windows XP вопрос решен положительно.

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
Думаю, этот вопрос к Б.Гейтсу, т.к. для Windows XP вопрос решен положительно.

Тестировал на win7 x64.
 ;)

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
Думаю, этот вопрос к Б.Гейтсу, т.к. для Windows XP вопрос решен положительно.

Тестировал на win7 x64.
 ;)

Я это знаю.

Кстати, Сычевский обращался к Вам по вопросу работы РОС на 7ке?
И мне тоже интересно, как Вы решили проблему с размером окна РОС на мониторе с более высоким разрешением, чем 1280*800?
« Последнее редактирование: 17 Ноя 2014 [10:11:10] от ekvi »

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
Думаю, этот вопрос к Б.Гейтсу, т.к. для Windows XP вопрос решен положительно.

Тестировал на win7 x64.
 ;)

Я это знаю.

Кстати, Сычев обращался к Вам по вопросу работы РОС на 7ке?
Нет.
Цитата
И мне тоже интересно, как Вы решили проблему с размером окна РОС на мониторе с более высоким разрешением, чем 1280*800?

Перепрограммированием и компиляцией измененного кода.
« Последнее редактирование: 20 Окт 2013 [10:49:07] от Дмитрий Серегин »

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
В программе РОС в качестве альтернативы известному методу оптимизации BFGS в мульти-параметрическом оптимизаторе (МПО) восстановлен и снова стал доступен метод наименьших квадратов (МНК). Но он пока не самостоятелен - в качестве конечного доводчика в него встроен метод линейной оптимизации (LMSearch).

Как ни странно, МНК заработал и в 2 раза быстрее BFGS, но "роет" мельче и не так стабилен.
« Последнее редактирование: 29 Июл 2014 [09:23:25] от ekvi »

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
И мне тоже интересно, как Вы решили проблему с размером окна РОС на мониторе с более высоким разрешением, чем 1280*800?

Расположение и размеры выводимой информации можно как-то отрегулировать с помощью "условных директив компиляции", а вот как изменить то, что рисуется в ресурсах(размеры окон) при компиляции для Delphi, это выше моего понимания, т.к. я работал только с Си и Фортраном, и это было давно, 10 и 20 лет соответственно. :(
« Последнее редактирование: 22 Окт 2013 [20:49:03] от Дмитрий Серегин »

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
Сейчас решаю эту задачу: пытаюсь обойтись Дельфи-настроками, без внедрения в дебри монитора.
« Последнее редактирование: 23 Окт 2013 [16:37:21] от ekvi »

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
При содействии ДимСаныча восстановил целостность темы и дополнил сообщение #151 от 05.10.2013 (с. 8 ) необходимыми иллюстрациями.
« Последнее редактирование: 24 Окт 2013 [11:55:54] от ekvi »

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
Расположение и размеры выводимой информации можно как-то отрегулировать с помощью "условных директив компиляции", а вот как изменить то, что рисуется в ресурсах(размеры окон) при компиляции для Delphi, это выше моего понимания, т.к. я работал только с Си и Фортраном, и это было давно, 10 и 20 лет соответственно.
У моего монитора разрешение 1280х800, и я лишен возможности увидеть интерфейс своей программы при более высоком разрешении, но могу себе представить этот эффект.
Для решения этой проблемы возможны несколько вариантов.

Первый, надежный, но самый опасный (и квалифицированные пользователи РОС могут им воспользоваться): при своем запуске программа опрашивает список разрешений монитора и устанавливает 1280х800 (или ниже), а при выходе - восстанавливает его первоначальное разрешение.  Но лично я не возьмусь за его реализацию, так как заочно результат не просто не гарантирован, а может сделать программу недоступной для ее использования.

Второй, еще надежней, безопасней, но самый трудоемкий для ее создателя: при запуске программы опрашивать разрешение экрана и скрупулезно задавать каждому элементу программы (более 340 элементов) его новые размеры и положение. По сути программисту надо вручную  написать код, создающий в реальном времени интерфейс программы с ориентацией на исходный размер экрана. Затем программа по этому коду будет отрисовывать свой интерфейс при каждом своём запуске. Сейчас размер программы РОС - подходит к 10 тыс. строк или к 35 тыс операторов. Побаиваюсь, что на деловую-то ее часть может не хватить мощи у Дельфи - она уже сейчас часто "скользит", не то, что на второстепенную часть, каковой является интерфейс.

Третий: пользователю установить и запустить Дельфи на своем компьютере, открыть поставляемый проект ROS.dpr, и, используя визуальные средства Дельфи, изменить интерфейс программы под разрешение своего монитора, скомпилировать проект и работать с новым интерфейсом. Но при этом пользователю придется поступить по принципу "спасение утопающих - дело рук самих утопающих".

Четвертый - самый легкий и самый реальный для любого пользователя: в настройках программы РОС задать разрешение экрана и совместимость нового компьютера и его операционной системы с Windows XP, в которой рожден РОС. Однако тенденция развития операционных систем такова, что с каждой новой версией разработчики Windows все более жестко отключают совместимость со своими же старыми версиями.
 
« Последнее редактирование: 27 Окт 2013 [12:33:14] от ekvi »

Оффлайн Дрюша

  • *****
  • Сообщений: 4 946
  • Благодарностей: 99
  • Вы сышите только мой голос...
    • Сообщения от Дрюша
Я когда-то работал хоть и не в Delphi, но в Borland С++ Builderе, так там у всех интерфейсных элементов есть свойство Anchors (задаётся в обжект инспекторе). Тем более, вся библиотека VCL написана на Deplhi. Это - привязка положения элемента интерфейса к родительскому окну или элементу, к которому он относится (группа, панель и т.п.). Так, например, по умолчанию там стоит обычно acLeft, acTop, что значит привязка к левому верхнему углу (клиентской области). Но можно поставить acRight, acBotom - тогда привяжется к правому нижнему углу. Можно указывать хоть все (acLeft, acTop,acRight, acBottom) - тогда при изменении размеров клиентской области (окна, группы, панели, и т.п.) будет меняться РАЗМЕР соответствующего элемента управления, а можно - вообще ничего или только по вертикали (например, асTop или acBottom, но ни acRight, ни acLeft). Тогда положение и размеры элемента по неуказанному направлению (в данном случае - по горизонтали) будет автоматически подбираться примерно (с точностью до целочисленного округления) пропорционально соответствующим размерам клиентской области.
« Последнее редактирование: 27 Окт 2013 [01:23:11] от Дрюша »

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
Да, на Дельфи-форумах Ваш, Дрюша, вариант рассматривается, но он вызывает сомнение: так ли развернется интерфейс, как ожидается. Скорее всего, криво. Вот и придется "нянькаться" с каждым пользователем.
Будет время, испробую Ваш вариант с одновременной установкой всех уставок группы Anchor. Спасибо за подсказку.

Оффлайн Дрюша

  • *****
  • Сообщений: 4 946
  • Благодарностей: 99
  • Вы сышите только мой голос...
    • Сообщения от Дрюша
Да, на Дельфи-форумах Ваш, Дрюша, вариант рассматривается, но он вызывает сомнение: так ли развернется интерфейс, как ожидается. Скорее всего, криво. Вот и придется "нянькаться" с каждым пользователем.
Будет время, испробую Ваш вариант с одновременной установкой всех уставок группы Anchor. Спасибо за подсказку.
Да вроде, всю жизнь всё работало. А ещё можно установить обработчик события OnResize. Только при опреледении размеров рабочей области окна надо тонко чувствовать, где уместен Width и Height окна, а где ClientWidth и ClientHeight. У меня работало даже когда я использовал OpenGL и передавал хендл окна опенжиэлевской библиотеке. И при ресайзе (в т.ч. развёртывании на весь эеран и переводе в полноэкранный режим) всё было чики-поки. В дюбом случае, если какие-то сомнения, - не лучше ли просто попробовать (предварительно забэкапив проект)?

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
Работа над программой РОС приблизилась к "обеду".
Хочу во время перекура "попялиться в окуляр", чтобы вдохнуть свободы от беспредельности Творения.
Замечания-предложения пишите в тему или на e-mail.
дистрибутив для пользователей:
http://yadi.sk/d/igg9zkWOJNZZU
« Последнее редактирование: 29 Июл 2014 [09:24:50] от ekvi »

Оффлайн Константин С.

  • Новичок
  • *
  • Сообщений: 16
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Константин С.
   Когда-то писал на Дельфи и проблему с разрешением решал следующим образом: писалась процедура, которая при запуске программы читала разрешение из реестра и передавала компонентам. Подробностей не помню, нужно старые записи раскапывать.

Оффлайн Дрюша

  • *****
  • Сообщений: 4 946
  • Благодарностей: 99
  • Вы сышите только мой голос...
    • Сообщения от Дрюша
А по-моему, там есть предопределённый объект, то ли Screen, то ли как-то ещё похоже... И у него есть свойства Width и Height. Но. Не надо забывать, что бывает ешё и многодисплейная конфигурация...

Оффлайн Константин С.

  • Новичок
  • *
  • Сообщений: 16
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Константин С.
Но. Не надо забывать, что бывает ешё и многодисплейная конфигурация...
   Так об этом и речь. Текущее разрешение, да и остальные праметры, нужно получать из Windows. Они у каждого свои - угадывать бесполезно, а устанавливать вручную или жестко прописывать неудобно.

Оффлайн Дрюша

  • *****
  • Сообщений: 4 946
  • Благодарностей: 99
  • Вы сышите только мой голос...
    • Сообщения от Дрюша
А может быть, встроенный (предопрелелённый) объект Screen - именно так и делает? Причем, автоматически имеет в виду именно тот дисплей, на котором конкретно отображается окно программы. Так что, я бы стал просто тупо исходить из размеров окна, которое может быть развёрнутым или свёрнутым, или "нормальных" размеров.

Оффлайн Константин С.

  • Новичок
  • *
  • Сообщений: 16
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Константин С.
  Да, действительно. Использование класса TScreen многое упрощает.

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 6 955
  • Благодарностей: 401
    • Сообщения от ekvi
На вкладке TestParams введена кнопка ScreenScale для масштабирования интерфейса программы РОС. Она неплохо работает в сторону увеличения, но бесполезна в сторону уменьшения и для графиков.
« Последнее редактирование: 29 Июл 2014 [09:25:56] от ekvi »

Оффлайн serega2007

  • ...
  • *
  • Сообщений: 67 126
  • Благодарностей: 1127
    • Сообщения от serega2007
    Андрэ и Все ! Добро пожаловать в тему " Разрешение глаза" . Попытался навести хотя-бы для себя некоторый порядок в этом вопросе . Есть некоторые шероховатости , но постарался , наиболее строго .
    Прямую ссылку дать не могу - я на телефоне . Тема в Клубе .
    Замечания приветствуются .
До встречи на Астрофесте !
Ибо на Астрофоруме жизни нет .
                                            Серега .