Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2010, 18:17   #41
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,087
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Для сравнения - сколько потребуется строк кода, чтобы нарисовать на форме додж? Ответ: 10:

Код:
CreateApplication;
 FRMMain.Left := 10;
 FRMMain.Top  := 10;
 FRMMain.Width := 300;
 FRMMain.Height := 188;
 CreateForm(FRMMain, 'Small Fonts', 9);
 ShowForm(FRMMain, TRUE);
 LoadTexture(FRMMain, 'Dodge.bmp', 'Dodge');
 Draw(FRMMain, 'Dodge', 0, 0, TRUE);
 BufferDraw(FRMMain);
Могу сказать, что 10 строк унылого, некрасивого, непонятного кода.
Теперь более подробно:
1) CreateApplication выглядит лишним. При создании программы я мысленно уже создаю приложение, зачем мне его еще вручную создавать, да без всяких параметров?
2) Формы еще нет, а мы уже меняем её размеры и положение. Не логично;
3) CreateForm создано в процедурном стиле, т.е. в библиотеке просматривается помесь чего-то с чем-то. Метод Create выглядел бы более родным в ОО коде. Да даже не метод, а конструктор;
4) ShowForm - аналогичная процедурность. FRMMain.Show, FRMMain.Hide выглядели бы логичнее, понятнее и краше;
5) LoadTexture - про процедурность и моё к ней отношение уже все всё поняли я надеюсь. Зачем мы привязываем текстуру к форме? Эта две отдельных единицы, которые могут существовать отдельно, а тут получаем зависимость. Придется одну и ту же картинку дублировать на разных формах;
6) Draw - не айс. Допустим, нужно реализовать градиентный фон, одноцветный, текстуру, "плитку",... В итоге получим разный код заполнения фона? Некрасиво, неправильно;
7) BufferDraw - вообще не понял сути строчки. Удобства она явно не прибавляет.
Вывод: судя по этим строкам, библиотека получается еще более унылой, нежели VCL. Не модно сейчас так делать, старо, есть куча аналогов. Смысл делать очередную поделку? Если бы это был WPF под Delphi или HTMLayout, то без базара, а так... разве что для получения опыта.
pu4koff вне форума Ответить с цитированием
Старый 08.11.2010, 18:22   #42
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Допустим, нужно реализовать градиентный фон, одноцветный, текстуру, "плитку"
В ближайшее время собираюсь перенести эффекты FVFL в движок.
Цитата:
2) Формы еще нет, а мы уже меняем её размеры и положение. Не логично;
Мы заполняем данные - как мы создадим форму, не указав размеры и положение? Можно, конечно в процедуре указать, но зачем её усложнять? Если Вы привязываете размеры формы к вычислениям Вам придется вводить новые переменные, а так - нет.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.11.2010, 18:40   #43
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,087
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Мы заполняем данные - как мы создадим форму, не указав размеры и положение? Можно, конечно в процедуре указать, но зачем её усложнять? Если Вы привязываете размеры формы к вычислениям Вам придется вводить новые переменные, а так - нет.
При проектировании никогда не задумывайтесь о сложности реализации. Хотите создать удобный код - думайте об удобстве использования, а не реализации.
В VCL вот так форма создаётся, если мне не изменяет память:
Код:
with (TForm.Create()) do // Создаём форму
  Left := 10; // Изменяем позицию
  ...  // Делаем что-то еще
  Show; // Отображаем
end;
Как по мне, так более красиво и изящно получается, нежели в сабже.

Ну а вообще... Библиотека должна иметь свою атмосферу, если хотите. Изначально нужно определить что есть приложение в данной библиотеке, что есть форма, ... Плевать на устройство всего этого в винде. Ну и что, что кнопка окном является по сути, в библиотеке кнопки могут вообще быть отдельной единицей со своим устройством. Свойства, события... всё это повторение уже существующего материала. Всё это реализовано, работает и сильно лучше и удобнее на этой базе вряд ли что-то получится. А может форме события и не нужны? Ну есть она, какие-то кнопочки на ней, причем здесь нажатия кнопочек мыши, "горячие" клавиши,... Может тут нужна отдельная единица "форменный управлятор"? Прикрутили отдельный объект к форме и он следит за нужными событиями и делает что нужно? Или как в Java: реализовали нужный интерфейс - значит форма следит за нажатиями мыши, а иначе - они по барабану.
В общем, хотите, чтобы велосипед взлетел - мыслите нестандартно, ищите новые подходы, новые парадигмы.
pu4koff вне форума Ответить с цитированием
Старый 08.11.2010, 18:46   #44
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
В общем, хотите, чтобы велосипед взлетел - мыслите нестандартно, ищите новые подходы, новые парадигмы.
Не в этом суть. Приведу пример:
Сегодня на хабре шло обсуждение, что индикатор раскладки винды не удобен:

http://habrahabr.ru/blogs/ui_design_...bility/107732/
И? Хоть один сказал что-то про мой индикатор? НЕТ! Это дело пиара и только пиара. Будь система в десять раз неудобней - если её распиарят найдутся миллионы поклонников, которые не будут признавать ничего другого.
Изображения
Тип файла: jpg Screen195.jpg (11.4 Кб, 108 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.11.2010, 19:29   #45
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Alex Cones - у вас очень плохая привычка, вы игнорируете и видите только то что хотите. Я, и еще вот один человек pu4koff, а вы увидели проблему только в 2ом вопросе. А к примеру 1й, я уже писал решение про Signleton к примеру.

Ну я в принципе не удивлюсь если вы и этот пост проигнорируете.
BOBAH13 вне форума Ответить с цитированием
Старый 08.11.2010, 19:50   #46
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Мы заполняем данные - как мы создадим форму, не указав размеры и положение?
Могу прдложить такой вариант:
Подразумеваем под FormCreate что-то типа создания некого нового объекта, без его описания (реально формы никакой еще нет, но мы подразумеваем, что она есть, и задаем параметры, которые будут у формы, когда мы ее создадим (см. далее)), фактически что-то типа создания структуры, описывающей форму.

А вот ShowForm "реально" создает форму, т.е. регистрирует ее и т.п. (я тут плаваю в терминах, ибо WinAPI знаю плохо) (если она не была создана раньше) и показывает ее (в любом случае).
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 08.11.2010, 19:52   #47
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Цитата:
Мы заполняем данные - как мы создадим форму, не указав размеры и положение?
Можно попытаться в начале прочитать файлик конфы, и если его нет по дефолту выставить параметры.
Levsha100 вне форума Ответить с цитированием
Старый 09.11.2010, 07:15   #48
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Вопрос к аудитории - т.к. визуальными эффектами пользователь будет пользоваться не часто, имеет ли смысл вынести их в отдельную dll? Или оставить в основной? А то они весить мно-о-о-ого будут.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.11.2010, 07:16   #49
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Много это сколько?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.11.2010, 07:18   #50
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Ну сейчас основная dll проекта весит 20 с копейками. После импорта эффектов будет весить приблизительно 60-70. Прикидываю по FVFL.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание окон Asgard Общие вопросы Delphi 1 23.05.2010 08:42
Слипание 2-х окон AlexeiDelejov Мультимедиа в Delphi 2 19.05.2010 17:07
Система принятия решения (Экспертная система) daranton Microsoft Office Excel 4 01.05.2010 17:55
Сворачивание окон zzzzz Общие вопросы Delphi 4 20.10.2008 09:16
Сворачивание окон Legat Win Api 2 08.10.2007 16:36