В чем можно проще написать GUI прогу?

0000

Прога такая: В главном окне программы имеется рабочая область. Фоном рабочей области является рисунок, загружаемый из файла. На рабочей области можно добавлять/удалять подписанные объекты (да хоть прямоугольники при этом подписанные могут быть как горизонтально, так и вертикально (выбирается в момент создания объекта). Потом расставленные объекты сохраняются в фаил. Так же будут пара модальных диалоговых окон.
Собственно, что получается надо с точки зрения написания программы:
1. На форму налепить картинку, которая будет по размеру соотв. оригинальному из файла
2. Картинка должна уметь скролится
3. Добавление элементов на рабочее пространство
4. Чтение/запись файлов
5. Не слишком сложное управление дочерними окошками приложения.
Я начал это дело писать на C++/WinAPI. В принципе все описаные задачи решил, но вот код страшен и абсолютно не поддерживаем (сказывается отсутствие опыта). Сейчас у меня два варианта, либо причесать код и продолжить разработку, либо выбрать более человечный способ написания, напр. может MFC заюзать?
P.S. Могу прогать на Delphi/C++/VBA/паре скриптовых языков... на этом уровне думаю язык не принципиален.

timefim

WinForm

Helga87

Соглашусь. C# + Windows Forms

timefim

C#
Зачем? Можно на тех же плюсах, делфях и не учить новый язык.

0000

Это с VS2005 можно поставить? или что то еще надо качать?

0000

WinForms это новая либа от MS, заменяющая MFC?

Helga87

Да, нужна только VS2005. Там делаешь New Project -> C# -> New Windows Forms Application
Если чо, ща уже вышел VS 2008, в сети есть.

Helga87

WinForms это новая либа от MS, заменяющая MFC?
да. Не самая новая (с 2002 года но заметно новее и удобнее MFC. Кроме того, это либа для C#, а не для C++. Есть еще более удобная, мощная, но для простых приложений ненужная WPF, которая тоже для C#

0000

VS2005 уже стоит... ща попробуем.

Helga87

Зачем? Можно на тех же плюсах, делфях и не учить новый язык.
потому что код для Windows Forms наиболее поддерживаем и читаем на C#. Страшную программу писать не надо, она уже написана.

timefim

потому что код для Windows Forms наиболее поддерживаем и читаем на C#.
Оно то конечно, вот если только сроки позволяют. Да и начиная изучать язык, код врядли получится вменяемым.

0000

Наваял уже (на С++ правда, поскольку кроме него больше в студии ничего не ставил).
О, скролл работает - крута, правда как сделать чтобы Image компонент позиционировался по центру? И как можно сделать чтобы его можно было мышкой таскать?

0000

Посмотрел генерируемый код на С++ - пришел в ужас.

Fragaria

На дельфи такая шняга пишется за час-два работы. Все описанные тобой задачи реализуемы стандартными контролами :) Даже программировать почти не понадобится.

0000

И вертикальный текст? Какая версия D? Последняя версия в какой я сидел седьмая была. Потом читал, что они сильно поменялись.
P.S. Delphi для меня даже лучше, т.к. с COM там работа простая, что может пригодится для импорта в Excel.

Fragaria

Вертикальный текст тоже не проблема :) Только его делать надо не лэйблами, а рендерингом TTF-шрифта на картинке, которую потом можно вращать.

Fragaria

А возможно, что и лэйбл можно вертикально поместить, не знаю. В крайнем случае можно реализовать онклик-событие, которое при вводе будет отображать стандартный горизонтальный Edit, а при потере фокуса будет после каждой буквы вставлять перенос строки и таким образом получать "вертикальный" текст. :)

0000

В этом случае код будет ничем не проще WinAPI :(

vall

тычо! это не Delphi Way! правильно облазить десяток форумов и выпросить компоненту с вертикальным текстом =)

Fragaria

Ну знаешь, так я тоже умею:
http://www.programmersheaven.com/download/5804/download.aspx

Fragaria

Бля, на секунду опередил меня :) Я уже нашол такую компоненту :)

0000

За все этими конструкциями WinAPI проглядывается :)
Видать у меня какие то дурацкие требования :( - что то в WinForms не понятно как сделать Align дочернего окна по центру и как сделать таскаемые элементы...

0000

Я не умею компоненты инсталить :grin:
надо будет после выходных delphi ставить и смотреть... может там и в правду проще. Тем более вызывать WinAPI там можно.

Fragaria

Да ладно :) Инсталить компоненты в дельфи - это примерно такой же необходимый скилл для продвинутого виндузятнега, как собирать свой дистриб миранды или крякать программы с помощью кейгенов и виртуальных сидиромов :)

kruzer25

А я не умею собирать дистрибутивы миранды и инсталить компоненты в дельфи :o

Fragaria

Да ты ваще кадр тот ещё.

timefim

что то в WinForms не понятно как сделать Align дочернего окна по центру
StartPosition
как сделать таскаемые элементы

http://www.codeproject.com/KB/cpp/SmartDragDrop.aspx

kruzer25

Хочешь сказать, я линуксоед? :smirk:

slonishka

всем привет, кто в этом чате!
пишу это сообщение из ОС "Виндовс" :D

Olenenok

пишу это сообщение из ОС "Виндовс" :D
да ты что! как там? по прежнему хреново?

slonishka

стрёмно как-то. она мне IE6 обновить предложила, я испугался

Elina74

до седьмого ИЕ не обновляйся ни в коем случае, будут траблы с активацией

slonishka

да у меня вроде легальная винда.
или с легальной тоже траблы?

klyv

будут траблы с активацией
А у меня на всех виндах, чесно скачанных откуда-то не было трабблов с ним :)

0000

Эмм, StartPosition есть только для формы, для дочерних окошек не увидел.
Ссылка про таскаемые - не работает.
Блин, в WinForms то же траблы.
Интеренсно в последних Дельфях стандартные окошечные компоненты это надстройка над чем?

stat7984215

кстати, я вот траблы с активацией имел только с легальной виндой :grin:

stat7984215

Интеренсно в последних Дельфях стандартные окошечные компоненты это надстройка над чем?
Да там с этим все довольно хитро, дело в том, что в последних версиях Дельфей добавилась поддержка .Net Framework, поэтому они могут генерировать как native, так и managed код. Соответственно, компоненты в VCL это как и раньше надстройка над Win32 API (причем, по большей части над неюникодными функциями а компоненты VCL.NET это надстройка над .Net Framework.

timefim

для дочерних окошек не увидел.
Что есть дочерние окошки, и почему они не являются формами?
Ссылка про таскаемые - не работает.

Работает.

mkrec

о, я такую хрень написал в 10 классе на ТП7. Только скроллинга не было. Картинка подгружалась из файла, модальные окна вылезали, линии строились, заливка была, текст разным кеглем и в разных направлениях.. Могу дать свой код. Думаю, он тоже плохо поддерживаем.

oliver11

Qt4 наше всё.

0000

> и почему они не являются формами
Эмм, я использовал компоненты с Toolbox, т.е. такие элементы в WinAPI это те же окна, но со стилем WS_CHILD. Так вот у этих элементов нет свойства.
Ссылка на работе открылась - бум смотреть. Псиб :)

0000

Не совсем то же самое. Да и на TP7 думаю все таки это не виндузятное приложение, т.е. ценного для меня там вряд ли что то есть.

timefim

В WinForm это называется контролы.
Anchor решит твою проблемму.

Werdna

Пиши на gtk!
Не пиши сраный чисто виндовый код.

0000

Мне задаром не сдался многоплатформенный.

agaaaa

WinForms распространён больше, чем gtk

Helga87

Смотря как мерить. Gtk имеет биндинги более чем к 10 языкам программирования, поэтому зная gtk, можно писать кроссплатформенный код и при этом на любом доступном языке.
Другое дело, что Gtk имеет не самую продуманную архитектуру, некоторые ругаются на сложность освоения внутренностей.

agaaaa

Для WinForms можно писать на любом .NET языке.

Helga87

Угу. А на Java, которая будет работать под jvm, уже нельзя. Впрочем, для нее Gtk не является заведомо хорошим выбором.
Оставить комментарий
Имя или ник:
Комментарий: