Программистам — дочитайте до конца.
Особенно это касается самых умных программистов с большими претензиями на мировое господство
Наверняка многие люди сталкивались с проблемой:
когда надо было написать маленькую, удобную, красивую программу,
а знаний для написания не хватало. Приходилось "перелопачивать"
большое количество литературы для написания какого-либо простого действия.
/*
Каждое десятое сообщение на форуме рсдн
Как изменить стиль progressbar? Как добавить на форму эту фигню?
Как разместить в программе браузер? Как проверить обновления через инет?...
*/
Всё это решается одним махом. Одним простым шаблоном программы.
Вот требования к нему.
1)При написании программы не должны использоваться
сложные конструкции и интерфейсы типа COM, ATL, MFC, ...
2)Программа должна занимать примерно от 10 килобайт места
3)Программа должна отображать все основные реСтилизованные конструкции
типа listbox, button, radiobutton без каких-либо знаний у программиста в WinAPI и т.д.
4)Ну и наконец программа должна работать с интернетом: авторегистрация, обновления и т.д.
опять-таки не требуя особых познаний программиста в протоколах.
Как-же всё это реализовать?
Ответ прост. Достаточно взять шаблон программы в которой реализован браузер на весь экран
и обмен данными между javascript и cpp
Сразу вся нагрузка с пользовательского интерфейса и работы с интернетом уйдёт в HTML,
а cpp будет выполнять локальные функции типа доступа к файлам и т.д.
Например смотрю в свои дистрибутивы, беру проги все подряд:
3dMark — Получится стильный интерфейс на html, а тастирующая часть на CPP
PowerStrip — Интерфейс на HTML был бы значительно красивее и удобнее,
а при этом все системные функции остались бы в теле проги.
HTML2CHM — занимает 900 кб. А, если бы программа была написана с этого шаблона,
то объём составил бы 20-30кб
А, если подумать сколько программ в России не было написано из-за сложности
программирования форм, интерфейсов и т.д, большого объёма программ в среде C Builder.
Не надо только писать сюда советы типа "зайди на firststeps.ru, там mfc подробно расписано на 3769 страниц"
Я пока вижу у этого шаблона один очень большой недостаток: он ещё не создан
У меня есть исходники программ, реализующих все необходимые функции. в zip 200кб или в rar 80кб
Осталось объединить всё это воедино.
Получается СуперЗадачка
Условие
Сделать программу отображающую html страницу на всю форму.
Не должно быть бордера, конт меню и т.д.
Должны быть функции взаимодействия JavaScript и CPP
Получится отличный шаблон маленькой программы
с возможностями CPP, но с интерфейсом HTML.
Программы, основанные на этом шаблоне будут занимать мало места
и будут поддерживать элементарную систему смены скинов.
Человек, написавший этот шаблон станет просто
родоначальником нового направления в программировании.
— Методов создания очень удобных, стильных и простых в написании программ.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Эпиграф: Говорят, что в аэропорту Тель-Авива приезжающих встречает плакат: "Не думай, что ты самый умный. Здесь все евреи".
ЗХ>http://terrainformatica.com/htmlayout/
КАЛ!!!
База не на ИЕ. Это очень плохо. htmlayout вообще не в тему.
Сравни html страницу "<table><td style=filter:glow>qwe" в IE и htmlayout
К тому же размер в 4 раза больше аналогов cwebpage и chtmlview
T>КАЛ!!!
T>База не на ИЕ. Это очень плохо. htmlayout вообще не в тему. T>Сравни html страницу "<table><td style=filter:glow>qwe" в IE и htmlayout
T>К тому же размер в 4 раза больше аналогов cwebpage и chtmlview
приведи псевдо код "простой" программы как она должна выглядеть с описываемым тобой шаблоном
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re[4]: Новое направление программирования - Просто, красиво,
Здравствуйте, dad, Вы писали:
T>>КАЛ!!!
T>>База не на ИЕ. Это очень плохо. htmlayout вообще не в тему. T>>Сравни html страницу "<table><td style=filter:glow>qwe" в IE и htmlayout
T>>К тому же размер в 4 раза больше аналогов cwebpage и chtmlview
dad>приведи псевдо код "простой" программы как она должна выглядеть с описываемым тобой шаблоном
Без проблем.
(CPP)
bool CppToHtml(char *caption,char *s[n],int N);
//Вызов javascript функции
//Например: CppToHtml("DropMainMenu","5\0_10\0",2);/*короче массив строк*/
<style>
textarea{width:100%;filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#7DaFd7,endColorStr=#CEDFF6,gradientType=1);}
</style>
<table width=100%><td>
<select>
<option>С английского на русский
<option>С русского на английский
</select>
<tr><td><textarea rows=10 onchange='external.Translate(sel.value,this.value)'></textarea>
<tr><td><textarea rows=10 id=to></textarea>
<script>
function Translated(s)
{
to.value=s
}
</script>
Вот, как просто дописать интерфейс к алгоритму перевода текстов, который к тому-же может быть реализован в виде dll.
А сколько потребовалось бы времени и знаний, чтобы написать это на WinAPI, mfc, ...
dad>>приведи псевдо код "простой" программы как она должна выглядеть с описываемым тобой шаблоном
T>Без проблем.
T>А сколько потребовалось бы времени и знаний, чтобы написать это на WinAPI, mfc, ...
во-первых, непонятно зачем в таких задачах c++, с ними справитс и ява-скрипт
во-вторых, зачем для просытх задач фреймворк? если ты хочешь использовать ие, то так или иначе у тебя будет замешах СОМ, а если не использовать ИЕ, то это может быть либо свой рендерер либо мозила.
Свой рендерер с тем, что ты описываешь есть в wxWindows (wxWidget) а в мозиле , как я и говорил, 90% задач решаются на ява скрипте, а остальные 10% от обратного делается модуль который из яваскрипта используется.
изучил ли ты эти вреймворки прежде чем предлагать такую задачу? я думаю нет.
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re[5]: Новое направление программирования - Просто, красиво,
T>А сколько потребовалось бы времени и знаний, чтобы написать это на WinAPI, mfc, ...
а, ну и если тебе прямо уже сейчас нжна подобная интеграция и не лень с СОМ повозиться то есть
класс шаблон обертка Dynamic IDispatch handler от Bjarke Viksoe (viksoe.dk)
я использовал именно так как ты описываешь (посложнее задачи были конечно)
единсвенное что там были какие грабли я помню что переделывал класс но не помню как и зачем
// IDispDynImpl methodstemplate< class T, const IID* pdiid = &IID_NULL >
class ATL_NO_VTABLE IDispDynImpl : public IDispatch
в итогед класс реализация этого интерфейса был такоим:
class EditParameters :
CreatorStep,
public IDispDynImpl<EditParameters>
{
protected:
....
unsigned long _state;
bool _hasChanges;
XString _file;
XString _style;
//<complect-param>
XXMLNode _compParam;
XXMLNode _objects;
//CreatorStep methodspublic:
virtual CreatorStep* moveNext();
virtual CreatorStep* movePrev();
virtual CreatorStep* jump(LPCWSTR);
virtual IDispatch* getExternalDisp()
{ return this; }
virtual bool prepareHTML(LPTSTR* src);
// IDispDynImpl methodspublic:
//это обрабочики события и элементов из ява скрипта window.external.onSetLevel(val);
// пример не очень удачный я передаю только простые значения
// а можно передавать указатели на объекты DOM модели , несколько парметров и возращаемое значение
BEGIN_DISPATCH_MAP(EditParameters)
DISP_METHOD1(onSetLevel,VT_EMPTY, VT_BSTR)
DISP_METHOD1(onSetExamen,VT_EMPTY, VT_BSTR)
DISP_METHOD1(onSetPrimaryGroup,VT_EMPTY, VT_BSTR)
DISP_METHOD1(onSetForm,VT_EMPTY, VT_BSTR)
DISP_METHOD1(onPushGroup,VT_EMPTY, VT_BSTR)
DISP_METHOD0(onClearGroups,VT_EMPTY)
END_DISPATCH_MAP()
//IDsipEvenDynImplvoid onSetLevel(BSTR id)
{
//..........
}
void onSetExamen(BSTR id)
{
//..........
}
void onSetPrimaryGroup(BSTR id)
{
//..........
}
void onSetForm(BSTR name)
{
//..........
}
void onPushGroup(BSTR id)
{
//..........
}
void onClearGroups(void)
{
//..........
}
};
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re: Новое направление программирования - Просто, красиво, уд
tiberius пишет:
> /* > Каждое десятое сообщение на форуме рсдн > Как изменить стиль progressbar? Как добавить на форму эту фигню? > Как разместить в программе браузер? Как проверить обновления через > инет?... > */
Читать про Swing в Java, адназначна...
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[6]: Новое направление программирования - Просто, красиво,
Здравствуйте, dad, Вы писали:
dad>во-первых, непонятно зачем в таких задачах c++, с ними справится и ява-скрипт
Доступ к диску и памяти, вызов dll, любые сложные задачи, не решаемые js в html.
К тому-же ява open-source.
dad>во-вторых, зачем для просытх задач фреймворк? если ты хочешь использовать ие, то так или иначе у тебя будет замешах СОМ, а если не использовать ИЕ, то это может быть либо свой рендерер либо мозила. dad>Свой рендерер с тем, что ты описываешь есть в wxWindows (wxWidget) а в мозиле , как я и говорил, 90% задач решаются на ява скрипте, а остальные 10% от обратного делается модуль который из яваскрипта используется.
Мозилла не раскрывает и половины возможностей ИЕ типа множества DirectX фильтров и, например, рисования диаграмм. К тому-же мозилла занимает слишком много места. тогда как реализация IE- занимает несколько килобайт.
dad>изучил ли ты эти вреймворки прежде чем предлагать такую задачу? я думаю нет.
Я ничего не изучал, кроме c и html. А также сотни и тысячи других людей
знают только эти 2 языка и хотят писать программы.
И никто не знает и не хочет (и не имеет времени и возможностей)
изучать DOM, COM, ATL, MFC, FrameWork, WinAPI-визуализацию, и т.д.
Всем нужен всего-лишь один шаблон, описанный выше.
T>>А сколько потребовалось бы времени и знаний, чтобы написать это на WinAPI, mfc, ...
dad>а, ну и если тебе прямо уже сейчас нжна подобная интеграция и не лень с СОМ повозиться то есть dad>класс шаблон обертка Dynamic IDispatch handler от Bjarke Viksoe (viksoe.dk) dad>я использовал именно так как ты описываешь (посложнее задачи были конечно) dad>единсвенное что там были какие грабли я помню что переделывал класс но не помню как и зачем dad>[c] dad>// IDispDynImpl methods.............
Я не знаю com и все интерфейсы типа IDispatch IUnknownn не понимаю. Этому надо учиться.
У меня есть готовый (чужой) проект на mfc с реализацией приёма функций из браузером.
И есть другой проект, тоде на mfc с вызовом ява функций из си.
Мне надо всего-лишь их объединить.
Для "бывалого" программиста это 5-10 минут, а для это сложная проблема.
отличие мозилы от ИЕ развивать не буду. Хочешь под ие — пиши под ие, только без кома ты там не обойдешься.
на заре помню, я работал с формами ччерез парсинг строки POST запроса, отличное ыбло извращение+ весь ком был спрятан в MFC
T>Я не знаю com и все интерфейсы типа IDispatch IUnknownn не понимаю. Этому надо учиться. T>У меня есть готовый (чужой) проект на mfc с реализацией приёма функций из браузером. T>И есть другой проект, тоде на mfc с вызовом ява функций из си. T>Мне надо всего-лишь их объединить. T>Для "бывалого" программиста это 5-10 минут, а для это сложная проблема.
короче этой теме не место в ресеч.
мало кто знает только си и штмл , а кто то только бэйсик и поскаль
чтоже теперь мне горбатиться для того чтобы таким нербхам была возможность мой кусок хлеба отнимать?
(шучу конечно, но в каждой шутке есть доля шутки)
мне сложно у меня голова пухнет просто от других задач.
скоди на виское дк там самплы качни. лучшего варианта в данный момент ты не найдешь. ковырять мфц который 400К тебе с совту добавит это не программка на 10К (заявленная в требованиях), да и с ие, повторюсь, несбыточная мечта тебе без зенания КОМ работать, неужели ты не понимаешь этого?
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re: Новое направление программирования - Просто, красиво, уд
Здравствуйте, tiberius, Вы писали:
T>Программистам — дочитайте до конца. T>Особенно это касается самых умных программистов с большими претензиями на мировое господство
T>Наверняка многие люди сталкивались с проблемой: T>когда надо было написать маленькую, удобную, красивую программу, T>а знаний для написания не хватало. Приходилось "перелопачивать" T>большое количество литературы для написания какого-либо простого действия.
XAML от MS и будет реализовывать подобную идею. Если очень хочется здесь и сейчас — пожалуйста, XUL от Mozilla в зубы — и в бой...
Re[7]: Новое направление программирования - Просто, красиво,
T>тогда как реализация IE- занимает несколько килобайт.
Блин, круто однако! И зачем в Mozilla столько кода сунули, если даже какие-то там DX фильтры не поддерживает и диаграммки не рисует...
Парезать нада Мазилу адназначна!!!
Re[2]: Новое направление программирования - Просто, красиво,
Java медленно работает и её ещё ДОПОЛНИТЕЛЬНО ПРИДЁТСЯ ИЗУЧАТЬ.
Я же говорю о шаблоне для низкоквалифицированных программистов.
Например как написать антивирус касперского в яве? Он-же будет искать вирусы в 2-3 раза медленнее и будет жрать много памяти и т.д.
А этот-же антивирус на ASM & С++ будет работать идеально.
А например такая фича типа движение окна программы при перетаскивании её за форму элементарно решится в вышеупомянутом шаблоне добавлением одного тега в интерфейс:
Кстати создайте htm-страницу с этим кодом. Такая фича запросто работает в MS IE.
(Путем легкой модификации легко убирается баг при хватании за край окна)
Блин, я не прошу вас реализовывать COM-интерфейсы. У меня есть 2 исходника, где всё уже сделано!
В обоих MFC, CHTMLview. Мне надо перекинуть ОДНУ функцию из одного проекта (JSCalls_demo) в (CustomBrowser).
JSCalls_demo (MFC,CHTMLview) — может вызывать ява функции из MFC.
CustomBrowser (MFC,CHTMLview) — уже почти идеал, но реализации вызова ява функций нет.
вот эту функцию мне надо перенести из JSCalls_demo в CustomBrowser
)
Как будто я пишу printf("%s,"string); и не знаю, где ошибка.
Знающий MFC человек всё сможет сделать за 5 минут.
dad>ковырять мфц который 400К
CustomBrowser занимает 40-50кб,
а исходного кода в JSCalls_demo всего несколько килобайт.
dad>горбатиться
Ну я, это, ко всем обращаюсь
dad>бэйсик и поскаль
Вот потому и никто не хочет в сях ковыряться, так как программирование интерфейса слишком сложно.
А в C Builder программы занимают слишком много места.
Re[7]: Новое направление программирования - Просто, красиво,
От:
Аноним
Дата:
09.02.05 05:56
Оценка:
T>Мозилла не раскрывает и половины возможностей ИЕ типа множества DirectX фильтров и, например, рисования диаграмм. К тому-же мозилла занимает слишком много места. тогда как реализация IE- занимает несколько килобайт.
Это наверное на базе ie.exe такое заключение сделано?
Re[8]: Новое направление программирования - Просто, красиво,
Pre>Часто хватает функции
Pre>function ShowHTMLDialog(hwndParent:HWND;
Да у меня всё готовое есть на MFC, я прошу только помочь перенести одну функцию из одного проекта MFC в другой.
>Это наверное на базе ie.exe такое заключение сделано?
При добавлении в программу окна IE, её размер увеличивается на 5-10 кб.
Если делать фрейм от мозиллы, то размер вырастет на 50-70 кб.
T>При добавлении в программу окна IE, её размер увеличивается на 5-10 кб. T>Если делать фрейм от мозиллы, то размер вырастет на 50-70 кб.
Настоятельно рекомендую изучить Delphi, C#.Net. Все равно что-то учить придется . Быстрый и легкий интерфейс у тебя с ними будет. И взаимодействие с C/С++ попроще. А на ограничения IE ты наткнешься все равно, и даже с хорошим знанием COM некоторые из них непросто преодолеть а просто вставить <td><button> что ты нам показываешь — все равно, что в дизайнере диалогов для MFC-приложения насовать кнопок, edit'ов и говорить — "вот оно, все умеет, и удобно как. Несколько кликов, пара строчек — и есть функционал, контролы дизаблятся, скрываются, клево ".
По теме программирования в XML/HTML + скрипт.
IE база не катит. Попробуй на mshtml хороший интерфейс сделать, с собственными контролами, чтобы ничего не косило (особенно с большими шрифтами и нестандартными глобаными настройками IE), выделение и навигация с клавиатуры нормально работало, чтобы поведение у контролов было нормальным (а не то, что сейчас в html-диалогах Visual Studio)... Там столько мелочей, что для написания хорошей программы, с хорошим интерфейсом придется сделать целую книгу-руководство.
А у Мозиллы — RDF... XBL... все продумано. . Вот только напрягает, что каждый раз все эти xml парсятся заново, скрипты транслируются — там 99% можно написать на С++ (например, отлаживать на скрипте, а в релизе это будет компилироваться). А еще кросплатформенные glib/NSPR, Necko — для Win32 её 12-меговый дистриб можно сократить немало.
Много людей пыталось приспособить MSHTML и под интерфейс, и под редактор, только все равно танк получается . Я по нескольким кликам мышкой в чужой программе, которую вижу в первый раз, определяю, что в ней MSHTML. Кстати, MS движок и особенно поддержку HTA несколько лет назад забросила, уже сколько там висят нереализованные интерфейсы, MLang, куцый MSHTML editing... И что-то не собирается это дальше развивать (ну конечно — все тут же кинутся писать HTA и кому будут нужны Windows API?).
Хотя я уверен, что в ближайшем будущем все равно воцарится HTA . Уж очень заманчивая идея, но это будет не на MSHTML.
Re[7]: Новое направление программирования - Просто, красиво,
tiberius пишет:
> dad>во-вторых, зачем для просытх задач фреймворк? если ты хочешь > использовать ие, то так или иначе у тебя будет замешах СОМ, а если не > использовать ИЕ, то это может быть либо свой рендерер либо мозила. > dad>Свой рендерер с тем, что ты описываешь есть в wxWindows (wxWidget) > а в мозиле , как я и говорил, 90% задач решаются на ява скрипте, а > остальные 10% от обратного делается модуль который из яваскрипта > используется. > Мозилла не раскрывает и половины возможностей ИЕ типа множества > DirectX фильтров и, например, рисования диаграмм. К тому-же мозилла > занимает слишком много места. тогда как реализация IE- занимает > несколько килобайт.
Много травы выкурил? Покажи мне хоть один DirectX "филтьр" в IE.