Delphi для Web
От: gangastyle  
Дата: 29.10.17 16:37
Оценка:
http://unigui.com/



Есть смысл использовать для web-приложений в шароваре?
Re: Delphi для Web
От: turbocode  
Дата: 29.10.17 16:45
Оценка: +1 -1
G>Есть смысл использовать для web-приложений в шароваре?

Нет. Выглядит ужасно.
Re: Delphi для Web
От: wamaco  
Дата: 29.10.17 17:29
Оценка:
Здравствуйте, gangastyle, Вы писали:

G>Есть смысл использовать для web-приложений в шароваре?


Есть. Сам присматриваюсь.
Re[2]: Delphi для Web
От: rkcsoft Россия  
Дата: 29.10.17 17:38
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Нет. Выглядит ужасно.


CSS новый прикрутить и все дела.
Re: Delphi для Web
От: GarryIV  
Дата: 29.10.17 18:42
Оценка: -2
Здравствуйте, gangastyle, Вы писали:

G>Image: webapp.png


G>Есть смысл использовать для web-приложений в шароваре?


Конечно, если ты пишешь из 2001 года.
WBR, Igor Evgrafov
Re[3]: Delphi для Web
От: turbocode  
Дата: 29.10.17 21:55
Оценка:
T>>Нет. Выглядит ужасно.
R>CSS новый прикрутить и все дела.

Не поможет, а на мобильниках такое вообще не взлетит.
Re[4]: Delphi для Web
От: rkcsoft Россия  
Дата: 30.10.17 05:40
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Не поможет, а на мобильниках такое вообще не взлетит.


А вот коллеги на sql.ru и мои собственнные глаза (смотрел на iPhone) говорят об обратном. Месье теоретик?
Там компилируется в JavaScript (sencha framework), а его много кто и без Delphi использует.
Re: Delphi для Web
От: Submitter  
Дата: 30.10.17 05:49
Оценка:
Здравствуйте, gangastyle, Вы писали:

G>Есть смысл использовать для web-приложений в шароваре?


Это что-то типа местного Sciter?
Re[2]: Delphi для Web
От: marcopolo Россия  
Дата: 30.10.17 07:59
Оценка:
Здравствуйте, Submitter, Вы писали:

S>Это что-то типа местного Sciter?


И как использовать Web-приложения, есть пример полезного продукта?
Re[3]: Delphi для Web
От: Submitter  
Дата: 30.10.17 08:30
Оценка:
Здравствуйте, marcopolo, Вы писали:

M>И как использовать Web-приложения, есть пример полезного продукта?


Вот пример, если я правильно тебя понял.
Re: Delphi для Web
От: cjazz  
Дата: 30.10.17 09:37
Оценка:
Здравствуйте, gangastyle, Вы писали:

G>http://unigui.com/


G>Image: webapp.png


G>Есть смысл использовать для web-приложений в шароваре?


Нет смысла. В современных веб приложениях основная часть кода UI выполняется в браузере.
Возможность накидывания контролов на формы тут не панацея.

.
Re[4]: Delphi для Web
От: marcopolo Россия  
Дата: 30.10.17 10:11
Оценка:
Здравствуйте, Submitter, Вы писали:
M>>И как использовать Web-приложения, есть пример полезного продукта?

S>Вот пример, если я правильно тебя понял.


Я так понял, это что-то для разработчиков. Конечный вменяемый продукт есть?
Re[5]: Delphi для Web
От: Submitter  
Дата: 30.10.17 10:19
Оценка:
Здравствуйте, marcopolo, Вы писали:

M>Я так понял, это что-то для разработчиков. Конечный вменяемый продукт есть?


Как раз нет, это — хранитель заметок. Самый что ни на есть Home Desktop Product.
Re[2]: Delphi для Web
От: wamaco  
Дата: 30.10.17 18:23
Оценка:
Здравствуйте, cjazz, Вы писали:


C>Нет смысла. В современных веб приложениях основная часть кода UI выполняется в браузере.

C>Возможность накидывания контролов на формы тут не панацея.

Так финальное приложение и выполняется в браузере. Просто делать такое приложение на UniGUI на порядок быстрее.
Re[5]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 30.10.17 19:22
Оценка:
Здравствуйте, marcopolo, Вы писали:


S>>Вот пример, если я правильно тебя понял.


M>Я так понял, это что-то для разработчиков. Конечный вменяемый продукт есть?


Как я понял, это возможность писать приложение на дельфях как обычное нативное, и путем несложных манипуляций его можно заставить работать в браузере. Выглядит не хуже других дельфовых приложений, право на жизнь имеет, особенно для внутренних корпоративных проектов.

Хотя сам язык бы давно надо на помоечку. Зря они C++ Builder довеском сделали, был бы основным — имхо летело бы лучше. А Pascal — можно вторым, для формошлепшиков, которые C++ не осилили. Да и расширение — property — довольно удобно, им надо было напрячься и протащить его в стандарт C++
Маньяк Робокряк колесит по городу
Re[2]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 30.10.17 19:28
Оценка:
Здравствуйте, cjazz, Вы писали:

G>>http://unigui.com/


G>>Image: webapp.png


G>>Есть смысл использовать для web-приложений в шароваре?


C>Нет смысла. В современных веб приложениях основная часть кода UI выполняется в браузере.

C>Возможность накидывания контролов на формы тут не панацея.

Так я так понял, что в этом то и идея — накидать контролов на форму, накидать обработчиков событий, и все это дело скомпилить в сборку-dll'ку, которая эти формы в бравзер выводит, и часть логики обработчиков выносится на сторону клиента/бравзера. Интересно, возможность компиляции в нативное приложение осталась или нет?
Маньяк Робокряк колесит по городу
Re[3]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 30.10.17 19:31
Оценка:
Здравствуйте, wamaco, Вы писали:


C>>Нет смысла. В современных веб приложениях основная часть кода UI выполняется в браузере.

C>>Возможность накидывания контролов на формы тут не панацея.

W>Так финальное приложение и выполняется в браузере. Просто делать такое приложение на UniGUI на порядок быстрее.


Он видимо демки не смотрел. А я посмотрел. Выглядит аляповато, как и всё дельфовое, но право на жизнь имеет. Я только не понял, а нативное приложение можно из этого собрать, или нет?
Маньяк Робокряк колесит по городу
Re[6]: Delphi для Web
От: icezone  
Дата: 30.10.17 19:33
Оценка:
Здравствуйте, Marty, Вы писали:

M>А Pascal — можно вторым, для формошлепшиков, которые C++ не осилили.


А можно объяснить связь между Паскалем и формошлепаньем?
Re[7]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 30.10.17 20:06
Оценка: -3
Здравствуйте, icezone, Вы писали:

M>>А Pascal — можно вторым, для формошлепшиков, которые C++ не осилили.


I>А можно объяснить связь между Паскалем и формошлепаньем?


Батхерт написавшего что-то серьезное на Дельфи вижу я в твоем посте

А связь простая. Паскаль не предназначен и не приспособлен для написания чего-то сложного. В юз-кейсе — создать обработчик события контрола и в нем одной строчкой изменить состояние другого контрола — можно и на Паскале писать. Это, собственно, и есть формошлепство.

Что-то более сложное писать на Паскале — это адЪ. Не, если C++ не знаешь, то норм. Но если ты что-то писал на плюсах, а потом нуждажизнь заставила сесть за Дельфи — вот тут и понимаешь глубину своего падения
Маньяк Робокряк колесит по городу
Re: Delphi для Web
От: wamaco  
Дата: 30.10.17 20:16
Оценка:
Вот, например, сделано на UniGUI, демка

https://www.youtube.com/watch?time_continue=66&v=vjWurKVPuzM
Re[3]: Delphi для Web
От: cjazz  
Дата: 30.10.17 21:37
Оценка:
Здравствуйте, wamaco, Вы писали:
C>>Нет смысла. В современных веб приложениях основная часть кода UI выполняется в браузере.
C>>Возможность накидывания контролов на формы тут не панацея.

W>Так финальное приложение и выполняется в браузере. Просто делать такое приложение на UniGUI на порядок быстрее.


Быстрее, до тех пор пока не понадобится изменить клиентский код. Вообще забавная штука, для простых проектов пойдет.

.
Re[4]: Delphi для Web
От: wamaco  
Дата: 30.10.17 21:54
Оценка:
Здравствуйте, cjazz, Вы писали:


C>Быстрее, до тех пор пока не понадобится изменить клиентский код. Вообще забавная штука, для простых проектов пойдет.


Можно тут по-подробнее... Зачем менять клиентский код?
Для этого есть специалист, который за денежку все поменяет на сервере.
Мы же тут деньги зарабатываем, а не предоставляем клиентский код менять!

Насчет "забавной штуки"... знаю проект, который тянет 600 одновременно работающих клиентов, пишущих и читающих БД.
Re[2]: Delphi для Web
От: loginx  
Дата: 30.10.17 22:09
Оценка: +1
Нет, т.к. Дельфи то что компилит в нэйтив и потому быстрее явы на андроид например.
Кроме того Дельфи и сам кросс-платформа и потому в одну кросс платформу вставлять другую
это какой-то театр абсурда.

Паскаль плохой — то из 1970 года что ли изречение? какая-то чушь, дельфийская версия просто, мощно, удобно, быстро.
Не понятно о каких таких сложных задачах речь идет, БПФ и DSP и 3D на нем все Ок... компилятор на нем еще 7 летиями
назад как курсовик написан.. что за такие сложны езадачи никак ни в какую не пишушщиеся ну прям ни в какую на Паскале...
Их просто нет, потому тот оратор и не назвал имен, а ограничился обезличенными обвинениями в адрес великого Паскаля
Re[8]: Delphi для Web
От: T4r4sB Россия  
Дата: 30.10.17 22:13
Оценка:
Здравствуйте, Marty, Вы писали:

M>А связь простая. Паскаль не предназначен и не приспособлен для написания чего-то сложного. В юз-кейсе — создать обработчик события контрола и в нем одной строчкой изменить состояние другого контрола — можно и на Паскале писать. Это, собственно, и есть формошлепство.


А что не так-то с Паскалем?
Ну кроме того, что пальцам больно набирать begin/end и когнитивного искажения "если МНЕ неудобно смотреть на begin/end, то всем неудобно".
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[5]: Delphi для Web
От: cjazz  
Дата: 30.10.17 22:16
Оценка:
Здравствуйте, wamaco, Вы писали:
C>>Быстрее, до тех пор пока не понадобится изменить клиентский код. Вообще забавная штука, для простых проектов пойдет.
W>Можно тут по-подробнее... Зачем менять клиентский код?

Вот пример. Только что нашел у них баг: в окне которое открывается на Show Source Files , после перехода по табам отваливается прокрутка текста колесом мыши. Это в Сафари, а в Хроме все норм. Сколько времени займет поиск и исправление?
Скорее всего намного больше, чем время сэкономленное на "накидывании контролов".

W>Насчет "забавной штуки"... знаю проект, который тянет 600 одновременно работающих клиентов, пишущих и читающих БД.


Интересно, насколько команда Delphi программистов обходится дешевле в сравнении с .NET командой?

.
Re[8]: Delphi для Web
От: marcopolo Россия  
Дата: 30.10.17 22:48
Оценка: +2
Здравствуйте, Marty, Вы писали:


M>Что-то более сложное писать на Паскале — это адЪ. Не, если C++ не знаешь, то норм. Но если ты что-то писал на плюсах, а потом нуждажизнь заставила сесть за Дельфи — вот тут и понимаешь глубину своего падения


Угу, почему-то сишные программы тащут мегатонны всяких DLL и фреймворков за собой, в отличие от нативного кода, генерируемого в Delphi.
Re[8]: Delphi для Web
От: icezone  
Дата: 30.10.17 23:12
Оценка:
Здравствуйте, Marty, Вы писали:

M>Батхерт написавшего что-то серьезное на Дельфи вижу я в твоем посте


что-то ламерством запахло
Re: Delphi для Web
От: rean  
Дата: 31.10.17 06:37
Оценка:
deleted
Отредактировано 22.04.2019 9:35 deleted2 . Предыдущая версия . Еще …
Отредактировано 31.10.2017 6:41 deleted2 . Предыдущая версия .
Отредактировано 31.10.2017 6:40 deleted2 . Предыдущая версия .
Re[9]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.10.17 07:42
Оценка:
Здравствуйте, T4r4sB, Вы писали:

M>>А связь простая. Паскаль не предназначен и не приспособлен для написания чего-то сложного. В юз-кейсе — создать обработчик события контрола и в нем одной строчкой изменить состояние другого контрола — можно и на Паскале писать. Это, собственно, и есть формошлепство.


TB>А что не так-то с Паскалем?

TB>Ну кроме того, что пальцам больно набирать begin/end и когнитивного искажения "если МНЕ неудобно смотреть на begin/end, то всем неудобно".

Ты еще then/else забыл

Еще я никак не могу запмнить, где там надо ставить ';', а где не надо.

Ну и вообще, языковые средства крайне убоги
Маньяк Робокряк колесит по городу
Re[9]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.10.17 07:43
Оценка:
Здравствуйте, icezone, Вы писали:

M>>Батхерт написавшего что-то серьезное на Дельфи вижу я в твоем посте


I>что-то ламерством запахло


Сходи в душ
Маньяк Робокряк колесит по городу
Re[10]: Delphi для Web
От: T4r4sB Россия  
Дата: 31.10.17 07:50
Оценка: +2
Здравствуйте, Marty, Вы писали:

M>Еще я никак не могу запмнить, где там надо ставить ';', а где не надо.


Я в С++ не могу запомнить. Ставлю ; везде, все смеются над моим кодом, хотя он компилится.

M>Ну и вообще, языковые средства крайне убоги


Да что не так-то?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[11]: Delphi для Web
От: Kerk  
Дата: 31.10.17 09:02
Оценка: +2
Здравствуйте, T4r4sB, Вы писали:

M>>Ну и вообще, языковые средства крайне убоги


TB>Да что не так-то?


Никогда не пойму почему Delphi вызывает у некоторых такую попоболь. Не нравится, не пользуйся. Но нет, обязательно при каждом упоминании Delphi вылезет кто-то со своим ценным мнением.
Re[12]: Delphi для Web
От: T4r4sB Россия  
Дата: 31.10.17 09:07
Оценка: +1 :)
Здравствуйте, Kerk, Вы писали:

K>Никогда не пойму почему Delphi вызывает у некоторых такую попоболь. Не нравится, не пользуйся. Но нет, обязательно при каждом упоминании Delphi вылезет кто-то со своим ценным мнением.


Да это с тех времён, когда на Дельфи за 5 минут делали программы с интерфейсом без утечек памяти, в то время, как сишно-крестовое сообщество представляло собой сборище кульных мамкиных какиров с пубертатной психологией, среди которых было круто как можно сильнее задолбать себя вознёй с АПИ, вознёй с управлением памятью. При этом эти какиры были уверены, что Дельфи всей этой возни не умеет.
А уж про то, что на С++ можно использовать деструкторы, не делать грубые касты, и тоже уберечь себя от кучи проблем, те какиры не знали и знать не желали, это же "путь неосилятора".
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[6]: Delphi для Web
От: Mr.Delphist  
Дата: 31.10.17 13:15
Оценка:
Здравствуйте, Marty, Вы писали:

M>Хотя сам язык бы давно надо на помоечку. Зря они C++ Builder довеском сделали, был бы основным — имхо летело бы лучше. А Pascal — можно вторым, для формошлепшиков, которые C++ не осилили. Да и расширение — property — довольно удобно, им надо было напрячься и протащить его в стандарт C++


Да не в языке дело. Какая разница, какой пиджак оденет дедушка-пенсионер: вельветовый или парусиновый? Он всё равно останется дедушкой-пенсионером. Так и формошлёпить — можно хоть на Visual Basic, но удобнее-то от этого не становится. Пока проект мал — разницы не чувствуешь, а затем начинается сбор граблей, некоторым из которых лет эдак десять, а то и пятнадцать... Ключевая проблема, что после ухода Хейлсберга никому этот Delphi уже не нужен был в менеджменте компании. Поэтому и не было развития, поэтому и стал он дедушкой. Хоть и подтянули его малость в Эмбаркадеро ребята, но тоже кончился у них интерес.
Re[9]: Delphi для Web
От: Mr.Delphist  
Дата: 31.10.17 13:24
Оценка:
Здравствуйте, marcopolo, Вы писали:

M>Угу, почему-то сишные программы тащут мегатонны всяких DLL и фреймворков за собой, в отличие от нативного кода, генерируемого в Delphi.


А не приходилось ли многоуважаемому дону жонглировать с порядком установки компонент в палитру Delphi, чтобы открыть проект без ошибок в DFM? Или обращаться с двумя разными проектами, которые ожидали две разные версии одного и того же компонента (и с другим работать не могли)? Ну и рантайм-пакеты — суть те же DLL, их можно статически втянуть, раздувая EXE, либо точно так же тащить за собой, как те самые сишечки

В общем, у Delphi все те же проблемы, что у сишечки, только в профиль.
Re[10]: Delphi для Web
От: marcopolo Россия  
Дата: 31.10.17 13:46
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>А не приходилось ли многоуважаемому дону жонглировать с порядком установки компонент в палитру Delphi, чтобы открыть проект без ошибок в DFM?


Было что-то подобное. Но к конечному продукут это не имеет отношения.

\\Или обращаться с двумя разными проектами, которые ожидали две разные версии одного и того же компонента (и с другим работать не могли)?

Проблему с левыми компонентами я иногда решал созданием их в рунтайме.

Ну и рантайм-пакеты — суть те же DLL, их можно статически втянуть, раздувая EXE, либо точно так же тащить за собой, как те самые сишечки

Ну какие там пакеты, смешные размеры.
Re[7]: Delphi для Web
От: turbocode  
Дата: 31.10.17 13:54
Оценка:
MD>Хоть и подтянули его малость в Эмбаркадеро ребята, но тоже кончился у них интерес.
Главная их ошибка в том что они начали городить какой то там костыльный и бажный FireMonkey параллельно к VCL, вместо того что бы отвязать VCL от WinAPI и сделать ему кроссплатформенный рендеринг.
И получился бы такой себе продвинутый и приятный в использовании аналог QT но на базе VCL.
Re[2]: Delphi для Web
От: Grayscaler Россия  
Дата: 31.10.17 14:20
Оценка:
Здравствуйте, rean, Вы писали:

R>Но не проще ли эти промежуточные стадии выкинуть и сразу использовать HTML и Ajax?


Нет. Для более-менее серьёзной системы любое переписывание это адские затраты. Не только на саму разработку/тестирование, но и на внедрение в первую очередь. Так что финансово это интересный вариант.
Re[8]: Delphi для Web
От: Mr.Delphist  
Дата: 31.10.17 15:15
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Главная их ошибка в том что они начали городить какой то там костыльный и бажный FireMonkey параллельно к VCL, вместо того что бы отвязать VCL от WinAPI и сделать ему кроссплатформенный рендеринг.

FireMonkey был изначально 3rd-party, как тот же Indy, так что — чему удивляться
Насчёт костыльности — согласен полностью. Этим страдают все "всемогуторы", и даже бережно пестуемый сейчас Xamarin — не исключение.

T>И получился бы такой себе продвинутый и приятный в использовании аналог QT но на базе VCL.

Не получился бы. Там слишком сильно на Win32 API всё завязано, проще всё с нуля.
Re[10]: Delphi для Web
От: icezone  
Дата: 31.10.17 15:53
Оценка:
Здравствуйте, Marty, Вы писали:

M>Сходи в душ


ты снова точку с запятой забыл
Re[8]: Delphi для Web
От: temnik Россия  
Дата: 31.10.17 18:59
Оценка:
Здравствуйте, Marty, Вы писали:

M>Что-то более сложное писать на Паскале — это адЪ. Не, если C++ не знаешь, то норм. Но если ты что-то писал на плюсах, а потом нуждажизнь заставила сесть за Дельфи — вот тут и понимаешь глубину своего падения


Извини, братка, это бред.
Лучший хостинг от 4 евро, VPS от 6 евро, разные локации, оплата картами без проблем, скидки до 20%.
50 бесплатных смс
Re[9]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.10.17 19:02
Оценка:
Здравствуйте, temnik, Вы писали:


M>>Что-то более сложное писать на Паскале — это адЪ. Не, если C++ не знаешь, то норм. Но если ты что-то писал на плюсах, а потом нуждажизнь заставила сесть за Дельфи — вот тут и понимаешь глубину своего падения


T>Извини, братка, это бред.


Бывает, братиш. Извиняю.
Маньяк Робокряк колесит по городу
Re[8]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.10.17 20:16
Оценка:
Здравствуйте, Marty, Вы писали:

Вижу, любители паскуаля ставят мне минусы.

Хочу посмотреть на вашу реализацию какого-нибудь контейнера из stl

ЗЫ Слышал краем уха, вроде к последним дельфям прикрутили какое-то подобие шаблонов. Можно и с их помощью. Но интереснее посмотреть на классический Дельфи (5-7)
Маньяк Робокряк колесит по городу
Re[6]: Delphi для Web
От: wamaco  
Дата: 31.10.17 20:32
Оценка:
Здравствуйте, cjazz, Вы писали:

C>Вот пример. Только что нашел у них баг: в окне которое открывается на Show Source Files , после перехода по табам отваливается прокрутка текста колесом мыши. Это в Сафари, а в Хроме все норм. Сколько времени займет поиск и исправление?

C>Скорее всего намного больше, чем время сэкономленное на "накидывании контролов".

У них поддержка отличная, напиши, быстро поправят.
Версия пока 1-ая, дальше лучше будет!
Но подход и реализация супер!
Re[6]: Delphi для Web
От: wamaco  
Дата: 31.10.17 20:35
Оценка:
Здравствуйте, cjazz, Вы писали:

C>Интересно, насколько команда Delphi программистов обходится дешевле в сравнении с .NET командой?


Разумеется команда Delphi дешевле, т.к. Delphi не в тренде!
Вот такой вот парадокс, а на выходе иногда даже качественнее продукты получаются!
Re[2]: Delphi для Web
От: wamaco  
Дата: 31.10.17 20:40
Оценка:
Здравствуйте, rean, Вы писали:


R>PS. Судя по всему, с адаптивностью под разные экраны тут совсем все плохо. Так что это вообще невозможно будет использовать под мобильники.


Все там хорошо с мобильниками, для них спец.компоненты даже есть...
http://unigui.com/explore/matrix/#featurem
гляньте...
http://prime.fmsoft.net/demo/touch/mdemo.dll/m
Re[3]: Delphi для Web
От: loginx  
Дата: 31.10.17 21:20
Оценка:
Здравствуйте, wamaco, Вы писали:

W>Здравствуйте, rean, Вы писали:



R>>PS. Судя по всему, с адаптивностью под разные экраны тут совсем все плохо. Так что это вообще невозможно будет использовать под мобильники.


W>Все там хорошо с мобильниками, для них спец.компоненты даже есть...

W>http://unigui.com/explore/matrix/#featurem
W>гляньте...
W>http://prime.fmsoft.net/demo/touch/mdemo.dll/m

Но Дельфи сам делает под мобильники! Самомлично делал! Все работает! Много разных компонент, на разные размеры укладывается на ура.
Нафига тут еще что-то кроме самого Дельфи?!?!
Re[4]: Delphi для Web
От: wamaco  
Дата: 31.10.17 22:02
Оценка:
Здравствуйте, loginx, Вы писали:


L>Но Дельфи сам делает под мобильники! Самомлично делал! Все работает! Много разных компонент, на разные размеры укладывается на ура.

L>Нафига тут еще что-то кроме самого Дельфи?!?!

Так Вы делали нативные приложения видимо, а UniGUI позволяет разрабатывать WEB приложения! Это другое!
Re[9]: Delphi для Web
От: marcopolo Россия  
Дата: 31.10.17 23:38
Оценка:
Здравствуйте, Marty, Вы писали:

M>ЗЫ Слышал краем уха, вроде к последним дельфям прикрутили какое-то подобие шаблонов. Можно и с их помощью. Но интереснее посмотреть на классический Дельфи (5-7)


Пользователю софта на ваши шаблоны глубоко на**.
Re[9]: Delphi для Web
От: Kerk  
Дата: 01.11.17 07:37
Оценка:
Здравствуйте, Marty, Вы писали:

M>ЗЫ Слышал краем уха, вроде к последним дельфям прикрутили какое-то подобие шаблонов. Можно и с их помощью. Но интереснее посмотреть на классический Дельфи (5-7)


Ага. Уже почти лет 10 как прикрутили. Вот заметил закономерность. Хейтеры делфи нихрена про делфи не знают как правило.
Re[9]: Delphi для Web
От: rkcsoft Россия  
Дата: 01.11.17 09:31
Оценка:
Здравствуйте, Marty, Вы писали:

M>ЗЫ Слышал краем уха, вроде к последним дельфям прикрутили какое-то подобие шаблонов. Можно и с их помощью. Но интереснее посмотреть на классический Дельфи (5-7)


Ок, но ждём ответную реализацию на C++ образца начала 90-х годов.
Re[5]: Delphi для Web
От: loginx  
Дата: 01.11.17 11:04
Оценка:
Здравствуйте, wamaco, Вы писали:

W>Здравствуйте, loginx, Вы писали:



L>>Но Дельфи сам делает под мобильники! Самомлично делал! Все работает! Много разных компонент, на разные размеры укладывается на ура.

L>>Нафига тут еще что-то кроме самого Дельфи?!?!

W>Так Вы делали нативные приложения видимо, а UniGUI позволяет разрабатывать WEB приложения! Это другое!


А разве html + css + JS + скажем фреймворки разные, тот же бутсрап разеве не позволяют делать Web приложения?
Ну и редактор формошлем в тутошней терминолокии, например адобовский ДримВивер...
Нафига еще тут еще какой-то юнигуи нужен? и так инструментов переизбыток! Уже инструментов больше чем заказчиков
Re: Delphi для Web
От: milvic  
Дата: 01.11.17 13:14
Оценка:
Здравствуйте, gangastyle, Вы писали:

G>Есть смысл использовать для web-приложений в шароваре?

Я может чего то не понимаю, но в примере же sencha/extjs чистой воды, причем здесь Delphi?
Сделали обертку над потихоньку устаревающей технологией и предложили юзать разработчикам?
Re[2]: Delphi для Web
От: rkcsoft Россия  
Дата: 01.11.17 13:36
Оценка:
Здравствуйте, milvic, Вы писали:

M>Я может чего то не понимаю, но в примере же sencha/extjs чистой воды, причем здесь Delphi?


Я об этом на первой странице написал, но здесь же клуб писателей, а не читателей
Re[10]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 18:17
Оценка:
Здравствуйте, rkcsoft, Вы писали:

M>>ЗЫ Слышал краем уха, вроде к последним дельфям прикрутили какое-то подобие шаблонов. Можно и с их помощью. Но интереснее посмотреть на классический Дельфи (5-7)


R>Ок, но ждём ответную реализацию на C++ образца начала 90-х годов.


Дамы — вперед В смысле — только после васвашей реализации.


И не надо про начало 90ых мне тут заливать. Первые Дельфи (1.0 которые, и 2.0) еще можно отнести к началу 90ых, они для Win3.1 были. C++ Builder 1.0, который был бастардом, вышел в комплекте к Дельфи 3.0, билдер в3.0 — Дельфи 5, шестой билдер — дельфи 7. Это 2002ой год, какое тут начало 90ых?

В шестом билдере и мапы и вектора и прочий stl уже вовсю был
Маньяк Робокряк колесит по городу
Re[10]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 18:34
Оценка:
Здравствуйте, Kerk, Вы писали:


M>>ЗЫ Слышал краем уха, вроде к последним дельфям прикрутили какое-то подобие шаблонов. Можно и с их помощью. Но интереснее посмотреть на классический Дельфи (5-7)


K>Ага. Уже почти лет 10 как прикрутили. Вот заметил закономерность. Хейтеры делфи нихрена про делфи не знают как правило.



10 лет как? Ого, прогресс. Шаблоны, на минуточку, еще в Borland C++ 3.1 (от 1992 года) были (а в языке и в реализации Страуструпа и раньше). Любители Дельфи такие любители

Давай еще сравним Дельфи 2017 и C++ 2017?


А по поводу незнания — я дельфи по-любительски кушал начиная с версии 1, потом профессионально работал пару лет на дельфи 7. Тогда же понемногу подсадил коллег на билдер, и ты не поверишь, но они мне потом говорили, что на билдере можно решать такие задачи, которые на дельфи были в разряде нереализуемых


Так что кушать Дельфи еще раз не охота. Если C++ у них сейчас не довеском идет, как раньше, то, в принципе, можно глянуть. Но пока лень и не вижу смысла
Маньяк Робокряк колесит по городу
Re[11]: Delphi для Web
От: Kerk  
Дата: 01.11.17 18:36
Оценка: :)
Здравствуйте, Marty, Вы писали:

M>И не надо про начало 90ых мне тут заливать. Первые Дельфи (1.0 которые, и 2.0) еще можно отнести к началу 90ых, они для Win3.1 были. C++ Builder 1.0, который был бастардом, вышел в комплекте к Дельфи 3.0, билдер в3.0 — Дельфи 5, шестой билдер — дельфи 7. Это 2002ой год, какое тут начало 90ых?


В 2017м году-то тебе все это зачем? Ты в 2002 году не смог сдать курсовик на делфи и с тех пор не можешь этого забыть? Это многое бы объясняло.
Re[10]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 18:39
Оценка: :)
Здравствуйте, marcopolo, Вы писали:


M>>ЗЫ Слышал краем уха, вроде к последним дельфям прикрутили какое-то подобие шаблонов. Можно и с их помощью. Но интереснее посмотреть на классический Дельфи (5-7)


M>Пользователю софта на ваши шаблоны глубоко на**.



Зато пользователю не насрать на скорость выпуска новых фич. Если все новые фичи сводятся к паре новых бесполезных кнопок в интерфейсе, то тут дельфи рулит. Если пользователю нужен новый функционал, то ему на шаблоны точно так же насрать, но он его получит гораздо быстрее, если разработчик умеет C++
Маньяк Робокряк колесит по городу
Re[12]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 18:46
Оценка:
Здравствуйте, Kerk, Вы писали:


M>>И не надо про начало 90ых мне тут заливать. Первые Дельфи (1.0 которые, и 2.0) еще можно отнести к началу 90ых, они для Win3.1 были. C++ Builder 1.0, который был бастардом, вышел в комплекте к Дельфи 3.0, билдер в3.0 — Дельфи 5, шестой билдер — дельфи 7. Это 2002ой год, какое тут начало 90ых?


K>В 2017м году-то тебе все это зачем? Ты в 2002 году не смог сдать курсовик на делфи и с тех пор не можешь этого забыть? Это многое бы объясняло.


Дельфидрочер?

У нас в вузе был только хардкор, а на дельфях я делал иногда халтуры да пару лет сопровождал один национальный бизнес
Маньяк Робокряк колесит по городу
Re[13]: Delphi для Web
От: Kerk  
Дата: 01.11.17 18:50
Оценка:
Здравствуйте, Marty, Вы писали:

M>>>И не надо про начало 90ых мне тут заливать. Первые Дельфи (1.0 которые, и 2.0) еще можно отнести к началу 90ых, они для Win3.1 были. C++ Builder 1.0, который был бастардом, вышел в комплекте к Дельфи 3.0, билдер в3.0 — Дельфи 5, шестой билдер — дельфи 7. Это 2002ой год, какое тут начало 90ых?


K>>В 2017м году-то тебе все это зачем? Ты в 2002 году не смог сдать курсовик на делфи и с тех пор не можешь этого забыть? Это многое бы объясняло.


M>Дельфидрочер?


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

P.S. Для таких как ты тут есть специальный раздел. "Священные войны" называется. Не засирай форум.
Отредактировано 01.11.2017 18:51 _____ . Предыдущая версия .
Re: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 18:53
Оценка:
Здравствуйте, gangastyle, Вы писали:

Мое замечание об убогости Дельфи породило некоторое жжение у части коллег. Предлагаю ту часть обсуждения вынести в КСВ.

А по поводу Дельфи — снимаю шляпу перед теми, кто на Дельфи сделал что-то полезное и тем более продающееся
Маньяк Робокряк колесит по городу
Re[11]: Delphi для Web
От: ukraineyalta  
Дата: 01.11.17 18:53
Оценка:
Здравствуйте, Marty, Вы писали:


M>Зато пользователю не насрать на скорость выпуска новых фич. Если все новые фичи сводятся к паре новых бесполезных кнопок в интерфейсе, то тут дельфи рулит. Если пользователю нужен новый функционал, то ему на шаблоны точно так же насрать, но он его получит гораздо быстрее, если разработчик умеет C++


Имхо шаблоны и переопределения операторов только усложняют чтение кода, когда в проект нужно вносить изменения пару раз в год.
Re[12]: Delphi для Web
От: Kerk  
Дата: 01.11.17 18:55
Оценка:
Здравствуйте, ukraineyalta, Вы писали:

M>>Зато пользователю не насрать на скорость выпуска новых фич. Если все новые фичи сводятся к паре новых бесполезных кнопок в интерфейсе, то тут дельфи рулит. Если пользователю нужен новый функционал, то ему на шаблоны точно так же насрать, но он его получит гораздо быстрее, если разработчик умеет C++


U>Имхо шаблоны и переопределения операторов только усложняют чтение кода, когда в проект нужно вносить изменения пару раз в год.


Ты погоди, упоротый нам сейчас еще расскажет с аргументами, что скорость релиза новых фич зависит от скорости печати кода на клавиатуре.
Re[11]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 18:57
Оценка:
Здравствуйте, T4r4sB, Вы писали:


M>>Еще я никак не могу запмнить, где там надо ставить ';', а где не надо.


TB>Я в С++ не могу запомнить. Ставлю ; везде, все смеются над моим кодом, хотя он компилится.


Правильно ставишm. Семиколоном кода не испортишь (только не ставь его сразу после for или if)
Смеются — дураки наверно. Пробовал им пальцы показывать? Тоже смеются?


M>>Ну и вообще, языковые средства крайне убоги


TB>Да что не так-то?


Всё хорошо
Маньяк Робокряк колесит по городу
Re[11]: Delphi для Web
От: rkcsoft Россия  
Дата: 01.11.17 18:59
Оценка:
Здравствуйте, Marty, Вы писали:

M>Зато пользователю не насрать на скорость выпуска новых фич. Если все новые фичи сводятся к паре новых бесполезных кнопок в интерфейсе, то тут дельфи рулит. Если пользователю нужен новый функционал, то ему на шаблоны точно так же насрать, но он его получит гораздо быстрее, если разработчик умеет C++


Коллега, вы что-то путаете. Быстрее считается в нашем новом мире php да JavaScript. Ну, или, си решетка, но уж никак не си плас плас.
Re[12]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:00
Оценка:
Здравствуйте, Kerk, Вы писали:


M>>>Ну и вообще, языковые средства крайне убоги


TB>>Да что не так-то?


K>Никогда не пойму почему Delphi вызывает у некоторых такую попоболь. Не нравится, не пользуйся. Но нет, обязательно при каждом упоминании Delphi вылезет кто-то со своим ценным мнением.


Никак не пойму, почему в любом обсуждении любого вопроса в середине обсуждения кто-то вылезает со своим ценным мнением
Маньяк Робокряк колесит по городу
Re[13]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:01
Оценка:
Здравствуйте, T4r4sB, Вы писали:


K>>Никогда не пойму почему Delphi вызывает у некоторых такую попоболь. Не нравится, не пользуйся. Но нет, обязательно при каждом упоминании Delphi вылезет кто-то со своим ценным мнением.


TB>Да это с тех времён, когда на Дельфи за 5 минут делали программы с интерфейсом без утечек памяти, в то время, как сишно-крестовое сообщество представляло собой сборище кульных мамкиных какиров с пубертатной психологией, среди которых было круто как можно сильнее задолбать себя вознёй с АПИ, вознёй с управлением памятью. При этом эти какиры были уверены, что Дельфи всей этой возни не умеет.

TB>А уж про то, что на С++ можно использовать деструкторы, не делать грубые касты, и тоже уберечь себя от кучи проблем, те какиры не знали и знать не желали, это же "путь неосилятора".

Тебя в детстве изнасиловал C++ник?
Маньяк Робокряк колесит по городу
Re[13]: Delphi для Web
От: rkcsoft Россия  
Дата: 01.11.17 19:01
Оценка: +2 :))
Здравствуйте, Marty, Вы писали:

M>Никак не пойму, почему в любом обсуждении любого вопроса в середине обсуждения кто-то вылезает со своим ценным мнением


Совершенно с вами согласен, коллега
Re[10]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:10
Оценка: -1
Здравствуйте, Mr.Delphist, Вы писали:

M>>Угу, почему-то сишные программы тащут мегатонны всяких DLL и фреймворков за собой, в отличие от нативного кода, генерируемого в Delphi.


MD>А не приходилось ли многоуважаемому дону жонглировать с порядком установки компонент в палитру Delphi, чтобы открыть проект без ошибок в DFM? Или обращаться с двумя разными проектами, которые ожидали две разные версии одного и того же компонента (и с другим работать не могли)? Ну и рантайм-пакеты — суть те же DLL, их можно статически втянуть, раздувая EXE, либо точно так же тащить за собой, как те самые сишечки


MD>В общем, у Delphi все те же проблемы, что у сишечки, только в профиль.


Ага, спасибо. Я вот все помнил, что от билдера там по-любому тыщетонные по тем временам .bpl надо было за собой таскать, вроде не было варианта статически линковать, с дельфями казалось вроде, что при статической линковке можно было сэкономить, но тоже пухло выходило. Так что да, про мегатонны фреймворков без дельфи в отличие от нативного кода, генерируемого в Delphi, это враки
Маньяк Робокряк колесит по городу
Re[11]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:15
Оценка:
Здравствуйте, marcopolo, Вы писали:

MD>>А не приходилось ли многоуважаемому дону жонглировать с порядком установки компонент в палитру Delphi, чтобы открыть проект без ошибок в DFM?


M>Было что-то подобное. Но к конечному продукут это не имеет отношения.


Зато имеет непосредственное отношение к процессу разработки



M>\\Или обращаться с двумя разными проектами, которые ожидали две разные версии одного и того же компонента (и с другим работать не могли)?


M>Проблему с левыми компонентами я иногда решал созданием их в рунтайме.


Костыль? Или велосипедуницикл?


M>Ну и рантайм-пакеты — суть те же DLL, их можно статически втянуть, раздувая EXE, либо точно так же тащить за собой, как те самые сишечки


Те же самые сишечки ничего не раздувают и не тянут за собой. Да, понимаю, по нынешним временам это даже как-то не солидно


M>Ну какие там пакеты, смешные размеры.


По нынешним временам — да, те размеры смешны
Маньяк Робокряк колесит по городу
Re[8]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:21
Оценка:
Здравствуйте, turbocode, Вы писали:

MD>>Хоть и подтянули его малость в Эмбаркадеро ребята, но тоже кончился у них интерес.

T>Главная их ошибка в том что они начали городить какой то там костыльный и бажный FireMonkey параллельно к VCL, вместо того что бы отвязать VCL от WinAPI и сделать ему кроссплатформенный рендеринг.
T>И получился бы такой себе продвинутый и приятный в использовании аналог QT но на базе VCL.

Путь Qt спорен. КуТешные приложения выглядят неродными на всех платформах
Маньяк Робокряк колесит по городу
Re[9]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:23
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:


T>>И получился бы такой себе продвинутый и приятный в использовании аналог QT но на базе VCL.

MD>Не получился бы. Там слишком сильно на Win32 API всё завязано, проще всё с нуля.

wxWidgets на каждой платформе завязан на нативное апи. И UI на нем на каждой платформе выглядит и работает, как родное
Маньяк Робокряк колесит по городу
Re[7]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:25
Оценка:
Здравствуйте, wamaco, Вы писали:

C>>Интересно, насколько команда Delphi программистов обходится дешевле в сравнении с .NET командой?


W>Разумеется команда Delphi дешевле, т.к. Delphi не в тренде!

W>Вот такой вот парадокс, а на выходе иногда даже качественнее продукты получаются!

А иногда не получаются
Маньяк Робокряк колесит по городу
Re[8]: Delphi для Web
От: wamaco  
Дата: 01.11.17 19:40
Оценка:
Здравствуйте, Marty, Вы писали:

C>>>Интересно, насколько команда Delphi программистов обходится дешевле в сравнении с .NET командой?


W>>Разумеется команда Delphi дешевле, т.к. Delphi не в тренде!

W>>Вот такой вот парадокс, а на выходе иногда даже качественнее продукты получаются!

M>А иногда не получаются


был у нас случай на работе, заказали разработку, прибежали люди, стали про новые технологии рассказывать,
Java и C# втирать для реализации, все бы хорошо, но они СПЕЦЫ и ОЧЕНЬ востребованые, зарплата 200 тыщ.каждому!
Нашли Delphi программиста (двух), т.к. Delphi не в тренде, то и зарплата у них 65 тыщ.!
Сделали все в лучшем виде! Начальство довольно! да и не знает оно, что популярно, а что нет, оно только деньги платит!
Re[3]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:41
Оценка:
Здравствуйте, loginx, Вы писали:

L>Нет, т.к. Дельфи то что компилит в нэйтив и потому быстрее явы на андроид например.

L>Кроме того Дельфи и сам кросс-платформа и потому в одну кросс платформу вставлять другую
L>это какой-то театр абсурда.

L>Паскаль плохой — то из 1970 года что ли изречение? какая-то чушь, дельфийская версия просто, мощно, удобно, быстро.


Пока ты не попробовал C++


L>Не понятно о каких таких сложных задачах речь идет, БПФ и DSP и 3D на нем все Ок... компилятор на нем еще 7 летиями

L>назад как курсовик написан.. что за такие сложны езадачи никак ни в какую не пишушщиеся ну прям ни в какую на Паскале...
L>Их просто нет, потому тот оратор и не назвал имен, а ограничился обезличенными обвинениями в адрес великого Паскаля

Тот оратор — это кто?
Великий Паскаль — это кто? Блез Паскаль? Или недоязык, который лег в основу ObjectPascal?
То, что компилятор написан как курсовик — это в плюс идет?
Сложные задачи ты все обозначил, остались простые: префиксное дерево (trie), совместимое по интерфейсу с std::map. Аналог std::map найди самостоятельно в библиотеке великих дельфей
Маньяк Робокряк колесит по городу
Re[14]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 19:55
Оценка:
Здравствуйте, Kerk, Вы писали:

K>>>В 2017м году-то тебе все это зачем? Ты в 2002 году не смог сдать курсовик на делфи и с тех пор не можешь этого забыть? Это многое бы объясняло.

M>>Дельфидрочер?


K>Ты? Возможно. Не готов ставить тебе диагноз по интернету. От чего у тебя такая дичайшая попоболь-то? Объясни. Девушка ушла к дельфисту?


Не готов? Смотри выше, я там выделил, как ты мне диагноз поставил Про попоболь не понял, а то, что у тебя были проблемы с курсачами и девушками — тут даже к фрейду не ходи


K>P.S. Для таких как ты тут есть специальный раздел. "Священные войны" называется. Не засирай форум.


Хамство — наипервейшее оружие вежливого человека
Маньяк Робокряк колесит по городу
Re[13]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:03
Оценка:
Здравствуйте, Kerk, Вы писали:


M>>>Зато пользователю не насрать на скорость выпуска новых фич. Если все новые фичи сводятся к паре новых бесполезных кнопок в интерфейсе, то тут дельфи рулит. Если пользователю нужен новый функционал, то ему на шаблоны точно так же насрать, но он его получит гораздо быстрее, если разработчик умеет C++


U>>Имхо шаблоны и переопределения операторов только усложняют чтение кода, когда в проект нужно вносить изменения пару раз в год.


K>Ты погоди, упоротый нам сейчас еще расскажет с аргументами, что скорость релиза новых фич зависит от скорости печати кода на клавиатуре.



Упоротый — это видимо я?

Ты еще в десны с украинцемялта стукнись, а то скучно
Маньяк Робокряк колесит по городу
Re[12]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:09
Оценка:
Здравствуйте, rkcsoft, Вы писали:


M>>Зато пользователю не насрать на скорость выпуска новых фич. Если все новые фичи сводятся к паре новых бесполезных кнопок в интерфейсе, то тут дельфи рулит. Если пользователю нужен новый функционал, то ему на шаблоны точно так же насрать, но он его получит гораздо быстрее, если разработчик умеет C++


R>Коллега, вы что-то путаете. Быстрее считается в нашем новом мире php да JavaScript. Ну, или, си решетка, но уж никак не си плас плас.


хз, хз, что у вас за новый да лучший мир


но вы что-то подменяете. Вы перечитайте то что выше, в том числе и своё сообщение, а после мы с вами подискутируем
Маньяк Робокряк колесит по городу
Re[10]: Delphi для Web
От: turbocode  
Дата: 01.11.17 20:09
Оценка:
M>wxWidgets на каждой платформе завязан на нативное апи. И UI на нем на каждой платформе выглядит и работает, как родное
В этом подходе есть один существенный недостаток, тебе нужно немного поправить поведение контрола под себя и ты в этот момент понимаешь что твой код перестает быть кроссплатформенным потому что в каждой платформе это нововведение делается разными способами.
Re[9]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:12
Оценка:
Здравствуйте, wamaco, Вы писали:


W>был у нас случай на работе, заказали разработку, прибежали люди, стали про новые технологии рассказывать,

W>Java и C# втирать для реализации, все бы хорошо, но они СПЕЦЫ и ОЧЕНЬ востребованые, зарплата 200 тыщ.каждому!
W>Нашли Delphi программиста (двух), т.к. Delphi не в тренде, то и зарплата у них 65 тыщ.!
W>Сделали все в лучшем виде! Начальство довольно! да и не знает оно, что популярно, а что нет, оно только деньги платит!
W>


Я рад и за вас и за ваше начальство. Обсудим вопрос через пять, а лучше через десять лет. Хорошо?
Маньяк Робокряк колесит по городу
Re[9]: Delphi для Web
От: turbocode  
Дата: 01.11.17 20:15
Оценка: +1
M>Путь Qt спорен. КуТешные приложения выглядят неродными на всех платформах
Сейчас это не актуально, потому что GUI давно перестали стандартизировать и каждый делает себе GUI в программе как ему удобно по стилю "а я так вижу".

Я художник, я так вижу:
Re[11]: Delphi для Web
От: turbocode  
Дата: 01.11.17 20:19
Оценка:
M>Ага, спасибо. Я вот все помнил, что от билдера там по-любому тыщетонные по тем временам .bpl надо было за собой таскать, вроде не было варианта статически линковать, с дельфями казалось вроде, что при статической линковке можно было сэкономить, но тоже пухло выходило. Так что да, про мегатонны фреймворков без дельфи в отличие от нативного кода, генерируемого в Delphi, это враки

Была в билдере статическая линковка, можно было полностью создать автономное приложение не зависящее от Borland Runtime.
Re[11]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:19
Оценка: -1 :)
Здравствуйте, turbocode, Вы писали:

M>>wxWidgets на каждой платформе завязан на нативное апи. И UI на нем на каждой платформе выглядит и работает, как родное

T>В этом подходе есть один существенный недостаток, тебе нужно немного поправить поведение контрола под себя и ты в этот момент понимаешь что твой код перестает быть кроссплатформенным потому что в каждой платформе это нововведение делается разными способами.

Если ты пишешь адоб фотошоп или еще что-то такое, то да.

Если ты пишешь приложение для всех, такого быть не должно

У меня такое было в 96ом году на дельфи 1 поседний раз
Маньяк Робокряк колесит по городу
Re[10]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:22
Оценка:
Здравствуйте, turbocode, Вы писали:

M>>Путь Qt спорен. КуТешные приложения выглядят неродными на всех платформах

T>Сейчас это не актуально, потому что GUI давно перестали стандартизировать и каждый делает себе GUI в программе как ему удобно по стилю "а я так вижу".

Для хомячков — наверно да

T>Я художник, я так вижу:

T>Image: 3547626_600.jpg

повод пересесть на что-то другое
Маньяк Робокряк колесит по городу
Re[12]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:23
Оценка:
Здравствуйте, turbocode, Вы писали:

M>>Ага, спасибо. Я вот все помнил, что от билдера там по-любому тыщетонные по тем временам .bpl надо было за собой таскать, вроде не было варианта статически линковать, с дельфями казалось вроде, что при статической линковке можно было сэкономить, но тоже пухло выходило. Так что да, про мегатонны фреймворков без дельфи в отличие от нативного кода, генерируемого в Delphi, это враки


T>Была в билдере статическая линковка, можно было полностью создать автономное приложение не зависящее от Borland Runtime.


спасибо, а то я запамятовал
Маньяк Робокряк колесит по городу
Re[10]: Delphi для Web
От: wamaco  
Дата: 01.11.17 20:37
Оценка:
Здравствуйте, Marty, Вы писали:

M>Я рад и за вас и за ваше начальство. Обсудим вопрос через пять, а лучше через десять лет. Хорошо?


Хорошо! Вот только ПО это, никому через 10 лет не нужно будет! написанное хоть на Delphi, хоть на Java, и т.д.
Но, сегодня дешевле на Delphi!
Разница на лицо!
Хотя сам буду заказчику на C# делать, потому как оплата больше будет! Мне выгоднее!
Вот такая ситуация...
Re[12]: Delphi для Web
От: turbocode  
Дата: 01.11.17 20:39
Оценка:
T>>В этом подходе есть один существенный недостаток, тебе нужно немного поправить поведение контрола под себя и ты в этот момент понимаешь что твой код перестает быть кроссплатформенным потому что в каждой платформе это нововведение делается разными способами.
M>Если ты пишешь адоб фотошоп или еще что-то такое, то да.
M>Если ты пишешь приложение для всех, такого быть не должно

Поверь такое всегда случается, если ты хочешь сделать свою работу качественно, а не на #####ись.
Re[11]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:44
Оценка:
Здравствуйте, wamaco, Вы писали:


M>>Я рад и за вас и за ваше начальство. Обсудим вопрос через пять, а лучше через десять лет. Хорошо?


W>Хорошо! Вот только ПО это, никому через 10 лет не нужно будет! написанное хоть на Delphi, хоть на Java, и т.д.

W>Но, сегодня дешевле на Delphi!
W>Разница на лицо!
W>Хотя сам буду заказчику на C# делать, потому как оплата больше будет! Мне выгоднее!
W>Вот такая ситуация...

А я разве не о том же самом говорил? Быстренько барахло налабать, пока есть спрос — это — Дельфи. Проект с большим сроком жизни — это не дельфи
Маньяк Робокряк колесит по городу
Re[13]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:45
Оценка:
Здравствуйте, turbocode, Вы писали:

T>>>В этом подходе есть один существенный недостаток, тебе нужно немного поправить поведение контрола под себя и ты в этот момент понимаешь что твой код перестает быть кроссплатформенным потому что в каждой платформе это нововведение делается разными способами.

M>>Если ты пишешь адоб фотошоп или еще что-то такое, то да.
M>>Если ты пишешь приложение для всех, такого быть не должно

T>Поверь такое всегда случается, если ты хочешь сделать свою работу качественно, а не на #####ись.


Кванторы перепутал, всегда и иногда это немного разное
Маньяк Робокряк колесит по городу
Re[14]: Delphi для Web
От: turbocode  
Дата: 01.11.17 20:51
Оценка:
T>>Поверь такое всегда случается, если ты хочешь сделать свою работу качественно, а не на #####ись.
M>Кванторы перепутал, всегда и иногда это немного разное

Поверь что всегда это всегда.
Поэтому и писалось такое большое количество компонентов для Delphi&Builder потому что даже стандартные были далеки от идеала и всегда нужно было что то добавить.
Re[15]: Delphi для Web
От: ukraineyalta  
Дата: 01.11.17 20:55
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Поэтому и писалось такое большое количество компонентов для Delphi&Builder потому что даже стандартные были далеки от идеала и всегда нужно было что то добавить.


Но сейчас-то от этого ушли.
Re[12]: Delphi для Web
От: ukraineyalta  
Дата: 01.11.17 20:57
Оценка:
Здравствуйте, Marty, Вы писали:

M>А я разве не о том же самом говорил? Быстренько барахло налабать, пока есть спрос — это — Дельфи. Проект с большим сроком жизни — это не дельфи


Большой срок это насколько я понимаю — срок дольше жизни операционной системы?
Re[16]: Delphi для Web
От: turbocode  
Дата: 01.11.17 20:59
Оценка:
T>>Поэтому и писалось такое большое количество компонентов для Delphi&Builder потому что даже стандартные были далеки от идеала и всегда нужно было что то добавить.
U>Но сейчас-то от этого ушли.

Куда ушли?
Re[13]: Delphi для Web
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.11.17 20:59
Оценка:
Здравствуйте, ukraineyalta, Вы писали:


M>>А я разве не о том же самом говорил? Быстренько барахло налабать, пока есть спрос — это — Дельфи. Проект с большим сроком жизни — это не дельфи


U>Большой срок это насколько я понимаю — срок дольше жизни операционной системы?


нет
Маньяк Робокряк колесит по городу
Re: Delphi для Web
От: sharez  
Дата: 02.11.17 11:36
Оценка:
Когда-то изучал Delphi и мне понравилась большая библиотека компонентов, и простота создания форм.
Но...
Но ведь писать код было невозможно. Во времена Java+Eclipse, редактор Delphi не позволял даже базовые вещи рефакторить, как то переименование локальной переменной, функции, проперти. Я помню все эти безумные button154 и textarea5. Единожды создав, уже фиг чо переименуешь. Что-то поменялось?
Re[2]: Delphi для Web
От: icezone  
Дата: 02.11.17 12:21
Оценка: +2 :)
Здравствуйте, sharez, Вы писали:

S>Единожды создав, уже фиг чо переименуешь. Что-то поменялось?


И не говори — у меня все приложения так и называются Project1, Project2...
Юзеры жалуются, что не понимают в чем отличие Button1 от Button2, но я им хелп подробный составил.

p.s. в целом, тема скатилась в холивар, причем основная причина — плохое знание предмета спора.
для меня единственный недостаток Delphi — компилятор не поддерживает автоматическую векторизацию,
поэтому тяжелые вычисления приходится писать на C++ или на ASM
Re[2]: Delphi для Web
От: SabaiSabai  
Дата: 02.11.17 12:27
Оценка:
Здравствуйте, sharez, Вы писали:

S>Но ведь писать код было невозможно. Во времена Java+Eclipse, редактор Delphi не позволял даже базовые вещи рефакторить, как то переименование локальной переменной, функции, проперти. Я помню все эти безумные button154 и textarea5. Единожды создав, уже фиг чо переименуешь. Что-то поменялось?


И зачем создавать такие безумные названия? Agile-стайл тогда не был популярен, я всегда называю переменные осмысленно, чтобы не заниматься рефакторингом. Опять же есть поиск и замена в участке текста.
Re[3]: Delphi для Web
От: sharez  
Дата: 02.11.17 20:30
Оценка:
Здравствуйте, SabaiSabai, Вы писали:

SS>И зачем создавать такие безумные названия? Agile-стайл тогда не был популярен, я всегда называю переменные осмысленно, чтобы не заниматься рефакторингом. Опять же есть поиск и замена в участке текста.


Чтобы не заниматься рефакторингом, нужно... не получится так. Даже аргументировать лень. Да постоянно хочется сменить название на более вменяемое.
Поиск-замена настолько примитивный способ, что не подойдёт в ряде случаев.
Судя потому, что полыхнуть полыхнуло, а прямо на мой вопрос никто не ответил, делаю вывод, что рефакторинг ИДЕ Делфи так и не поддерживает
Re[4]: Delphi для Web
От: grafmontecristo  
Дата: 02.11.17 20:43
Оценка: +1
Здравствуйте, sharez, Вы писали:

Уже 2017 год, но в рекламных проспектах Delphi все та же рыба от Парадокса 1992 года. Тьфу.

Re[4]: Delphi для Web
От: marcopolo Россия  
Дата: 02.11.17 20:46
Оценка:
Здравствуйте, sharez, Вы писали:

S>Чтобы не заниматься рефакторингом, нужно... не получится так. Даже аргументировать лень. Да постоянно хочется сменить название на более вменяемое.

S>Поиск-замена настолько примитивный способ, что не подойдёт в ряде случаев.

Кому как. Лично мне более удобны более примтивные инструменты, они не зависят от криворукой реализации рукожопых индусов и стабильны и их не нужно изучать каждые полгода. У меня такой подход в целом по жизни, не только к ПРГ.
Re[5]: Delphi для Web
От: sharez  
Дата: 02.11.17 21:03
Оценка:
Здравствуйте, marcopolo, Вы писали:

M>Здравствуйте, sharez, Вы писали:


S>>Чтобы не заниматься рефакторингом, нужно... не получится так. Даже аргументировать лень. Да постоянно хочется сменить название на более вменяемое.

S>>Поиск-замена настолько примитивный способ, что не подойдёт в ряде случаев.

M>Кому как. Лично мне более удобны более примтивные инструменты, они не зависят от криворукой реализации рукожопых индусов и стабильны и их не нужно изучать каждые полгода. У меня такой подход в целом по жизни, не только к ПРГ.


Чо там изучать-то. Курсор на идентификатор, F2, Enter. В языках со строгой типизацией всё работает со 100% надежностью. В Java и C# давно уж пользуются благами цивилизации, и только пользователи Delphi до сих пор не видят необходимости туалета в доме.
Re[6]: Delphi для Web
От: marcopolo Россия  
Дата: 02.11.17 21:38
Оценка:
Здравствуйте, sharez, Вы писали:

S>Чо там изучать-то. Курсор на идентификатор, F2, Enter. В языках со строгой типизацией всё работает со 100% надежностью. В Java и C# давно уж пользуются благами цивилизации, и только пользователи Delphi до сих пор не видят необходимости туалета в доме.


И что, вы выпустите проект раньше на день?
Re[4]: Delphi для Web
От: Kerk  
Дата: 02.11.17 22:16
Оценка:
Здравствуйте, sharez, Вы писали:

S>делаю вывод, что рефакторинг ИДЕ Делфи так и не поддерживает


Поддерживает очень давно.

Твой коллега ушел в закат, может ты хоть объяснишь, почему ты с делфи никак не связан (ну а иначе почему ты нихрена о делфи не знаешь), но тем не менее у тебя из-за делфи такая сильная попоболь? Почему тебе не пофиг, дружок?
Re: Delphi для Web
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 03.11.17 11:14
Оценка:
Здравствуйте, gangastyle, Вы писали:

G>Есть смысл использовать для web-приложений в шароваре?

Резонерский ответ звучит так: зависит от того, что вы планируете делать.

В целом, концепция у ребят очень напоминает ASP.Net Web Forms. Я не знаю, смогли ли они избежать проблем, которые были присущи технологии от MS — для этого нужно куда более глубокое погружение...
Но если в 2-х словах, Web Forms — были попыткой притянуть в Web методологии разработки как на Desktop, причем в серверном коде.
В частности они хотели чтобы программист мог:
Т.е. чтобы он писал на C#/VB не особо заморачиваясь особенностями Web, и не задумываясь о сложностях клиент-серверной разработки.

Ради этого пришлось создать весьма сложный цикл обработки запросов. Т.е. после того, как пользователь на вашей форме нажал кнопку (или сделал что-то, что требовало обоработки на сервере), и запрос приходил на сервер, происходило просто куча всего:

Собственно, эта модель и продила весь ворох проблем, который был у Web Forms

Честно говоря, очень быстро стало понятно, что идея "сделать модель разработки как в Desktop, но для Web" — провалилась. И разработчики вместо использования своего имевшегося опыта в настольной (или web, но для других платформ) были вынуждены изучать особенности Web Forms, а затем бороться с ними.

Возможно разработчики этого фреймворка учли неудачный опыт Microsoft, и описанные мною проблемы (или их аналоги) здесь отсутствуют.
Понять это по их примерам практически не реально — там нет никаких сложных форм, там только демонстрация отдельных контролов

Если же нет (т.е. не смогли избежать тех же проблем), то я бы скзал что единственный резон использования данного фреймворка — создание небольших "на скорую руку" приложений для какого-то из имеющихся заказчиков.
Т.е. когда своих готовых Web разработчиков нет, изучать ни времени, ни желани — тоже нет. а заказчик просит.
Re[7]: Delphi для Web
От: sharez  
Дата: 03.11.17 11:57
Оценка:
Здравствуйте, marcopolo, Вы писали:

M>И что, вы выпустите проект раньше на день?


Я выпущу стабильный проект, который проще поддерживать, раньше на день, да.
Re[2]: Delphi для Web
От: turbocode  
Дата: 03.11.17 16:23
Оценка:
МР>В целом, концепция у ребят очень напоминает ASP.Net Web Forms.

Я так понял что там всё заделали на JavaScript+Ajax никаких ASP.Net Web Forms там и близко нету.
Но как они организовали обработку на серверной стороне неясно (я так понимаю что это ложится тяжелым грузом на разработчика потому что ему придется самому выискивать в HTML где там что хранится и малейшее изменение HTML разметки может нарушить работу такого веб-приложения)
Отредактировано 03.11.2017 16:30 turbocode . Предыдущая версия .
Re[5]: Delphi для Web
От: sharez  
Дата: 03.11.17 18:38
Оценка:
Здравствуйте, Kerk, Вы писали:

K>Твой коллега ушел в закат, может ты хоть объяснишь, почему ты с делфи никак не связан (ну а иначе почему ты нихрена о делфи не знаешь), но тем не менее у тебя из-за делфи такая сильная попоболь? Почему тебе не пофиг, дружок?


Никакой попоболи. Интерес абсолютно теоретический, ибо уже много лет я занимаюсь вебом, Delphi там совсем нерилейтед. А вот Java — очень даже, и с рефакторингом у него всё в шоколаде было даже в те времена, когда многие делфисты и знать не знали слова "рефакторинг".
А вот ваши коллеги в соседней ветке доказывают мне, что рефакторинг нинужен. Надо всем рассказать благую весть

P. S.: расслабьтесь, я просто полюбопытствовать зашел и пошутить. Не могу пройти мимо любителей Delphi или Gimp. Впрочем, на Delphi я сам пописывал (но продать не смог), и ведь когда-то особых альтернатив по удобству и функционалу не было. Так же как и Gimp когда-то был так же неюзабелен, как и Photoshop (теперь неюзабелен только Gimp).
Re[2]: Delphi для Web
От: rfillipenko  
Дата: 03.11.17 18:50
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>
  • затраты на сохранение/восстановление состояния контролов. Один из способов — сохранение всего состояния внутри самой передаваемой страницы, в скрытом поле (пресловутый ViewState) порождал огромные тяжеловесные страницы (особенно когда число компоенентов начинало превосходить "пару полей и 2 кнопки")

    Но ведь древний RDS обеспечивает хорошую скорость отклика. Почему нельзя выполнять приложение на сервере, и содержимое окна программы передавать аналогично тому, как работает RDS?
  • Re[3]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 18:57
    Оценка:
    >Но ведь древний RDS обеспечивает хорошую скорость отклика. Почему нельзя выполнять приложение на сервере, и содержимое окна программы передавать аналогично тому, как работает RDS?

    Потому что с RDS одновременно работает максимум 10 человек, тогда как с веб-сайтом могут работать сотни тысяч одновременно.
    Re[3]: Delphi для Web
    От: wamaco  
    Дата: 03.11.17 19:05
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    МР>>В целом, концепция у ребят очень напоминает ASP.Net Web Forms.


    T>Я так понял что там всё заделали на JavaScript+Ajax никаких ASP.Net Web Forms там и близко нету.

    T>Но как они организовали обработку на серверной стороне неясно (я так понимаю что это ложится тяжелым грузом на разработчика потому что ему придется самому выискивать в HTML где там что хранится и малейшее изменение HTML разметки может нарушить работу такого веб-приложения)

    Там все гораздо КРУЧЕ!
    Используется https://www.sencha.com/products/extjs/#overview
    Кстати, эту контору (SENCHA) сейчас покупает Embarcadero и UniGUI будет
    включен в Delphi...
    так что вот такие дела, друзья...
    Re[3]: Delphi для Web
    От: Kerk  
    Дата: 03.11.17 19:51
    Оценка:
    Здравствуйте, rfillipenko, Вы писали:

    МР>>затраты на сохранение/восстановление состояния контролов. Один из способов — сохранение всего состояния внутри самой передаваемой страницы, в скрытом поле (пресловутый ViewState) порождал огромные тяжеловесные страницы (особенно когда число компоенентов начинало превосходить "пару полей и 2 кнопки")


    R>Но ведь древний RDS обеспечивает хорошую скорость отклика. Почему нельзя выполнять приложение на сервере, и содержимое окна программы передавать аналогично тому, как работает RDS?


    Не поверишь, но и такое бывает
    https://www.cybelesoft.com/Thinfinity/VirtualUI/
    Отредактировано 03.11.2017 20:09 _____ . Предыдущая версия .
    Re[6]: Delphi для Web
    От: Kerk  
    Дата: 03.11.17 20:08
    Оценка:
    Здравствуйте, sharez, Вы писали:

    K>>Твой коллега ушел в закат, может ты хоть объяснишь, почему ты с делфи никак не связан (ну а иначе почему ты нихрена о делфи не знаешь), но тем не менее у тебя из-за делфи такая сильная попоболь? Почему тебе не пофиг, дружок?


    S>Никакой попоболи. Интерес абсолютно теоретический, ибо уже много лет я занимаюсь вебом, Delphi там совсем нерилейтед. А вот Java — очень даже, и с рефакторингом у него всё в шоколаде было даже в те времена, когда многие делфисты и знать не знали слова "рефакторинг".


    Ну а в Delphi, например, анонимные функции появились когда "многие джависты и знать не знали такого слова", лет на 5 раньше.

    Это бесконечный холивар. Да и бессмысленный
    Я и сам на делфи уже не пишу, но не понимаю этого хейтерства. Детство какое-то.

    ---

    Вспомнилась история.

    Есть у меня знакомый, в прошлом фанатик C++. Холиварил всегда и со всеми. В сторону Делфи у него был любимый аргумент, что в Делфи нет множественного наследования и это отстой (вообще тогда это был очень распространенный аргумент в холиварах).

    В те годы дотнет только появлялся и приехал к нам пропагандист мелкософта рассказать про новые технологии, про C#. И в какой-то момент уже после выступления этот товарищ встал и гордо спросил про множественное наследование. Мелкософтовец ответил: "В C# множественного наследования нет, да и не нужно оно никому на самом деле". Я лицо товарища до сих пор помню Но ничего, проглотил. Пишет до сих пор на C# и Java.

    Вы заметили, кстати, что сейчас никто не говорит, что в Делфи нет множественного наследования? Как-то действительно оказалось оно никому не нужно, был прав мелкософтовец

    Уровень холиваров упал. Нынче делфи обвиняют не в отсутствии множественного наследования (что правда), а в отсутствии вещей, которые в Делфи лет 10 уже как есть.
    Отредактировано 03.11.2017 20:11 _____ . Предыдущая версия .
    Re[7]: Delphi для Web
    От: AWSVladimir  
    Дата: 03.11.17 20:24
    Оценка:
    Здравствуйте, Kerk, Вы писали:
    K>Уровень холиваров упал. Нынче делфи обвиняют не в отсутствии множественного наследования (что правда), а в отсутствии вещей, которые в Делфи лет 10 уже как есть.
    Да можно, не объектами правда, а интерфейсами.
    Re[8]: Delphi для Web
    От: Kerk  
    Дата: 03.11.17 20:34
    Оценка:
    Здравствуйте, AWSVladimir, Вы писали:

    K>>Уровень холиваров упал. Нынче делфи обвиняют не в отсутствии множественного наследования (что правда), а в отсутствии вещей, которые в Делфи лет 10 уже как есть.

    AWS>Да можно, не объектами правда, а интерфейсами.

    Множественное наследование интерфейсов, а не классов, нынче по сути мейнстрим. Но 15 лет назад сишники про это не знали и очень смешно холиварили
    Re[4]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 20:37
    Оценка:
    W>Там все гораздо КРУЧЕ!
    W>Используется https://www.sencha.com/products/extjs/#overview
    Это фронтенд, про сервер-сайд ничего не пишут.

    W>Кстати, эту контору (SENCHA) сейчас покупает Embarcadero и UniGUI будет

    Писали что "Компания Embarcadero Technologies продана компании Idera"
    Там уже не поймешь кто кого продал и кто кого купил.
    Re[5]: Delphi для Web
    От: wamaco  
    Дата: 03.11.17 20:57
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    W>>Кстати, эту контору (SENCHA) сейчас покупает Embarcadero и UniGUI будет

    T>Писали что "Компания Embarcadero Technologies продана компании Idera"
    T>Там уже не поймешь кто кого продал и кто кого купил.

    ну да...
    https://community.embarcadero.com/blogs/entry/embarcadero-delphi-sencha
    Re[5]: Delphi для Web
    От: wamaco  
    Дата: 03.11.17 20:59
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    W>>Там все гораздо КРУЧЕ!

    W>>Используется https://www.sencha.com/products/extjs/#overview
    T>Это фронтенд, про сервер-сайд ничего не пишут.

    Так сервер сайд это программа на Delphi, она все и делает, обращается к БД и т.д.
    Сервер должен быть на Windows
    Re[6]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 21:13
    Оценка:
    W>Так сервер сайд это программа на Delphi, она все и делает, обращается к БД и т.д.
    W>Сервер должен быть на Windows

    То есть на каждого посетителя сайта будет на сервере запускаться программа на Delphi?
    Отредактировано 03.11.2017 21:13 turbocode . Предыдущая версия .
    Re[6]: Delphi для Web
    От: Kerk  
    Дата: 03.11.17 21:14
    Оценка:
    Здравствуйте, wamaco, Вы писали:

    W>>>Там все гораздо КРУЧЕ!

    W>>>Используется https://www.sencha.com/products/extjs/#overview
    T>>Это фронтенд, про сервер-сайд ничего не пишут.

    W>Так сервер сайд это программа на Delphi, она все и делает, обращается к БД и т.д.

    W>Сервер должен быть на Windows

    Не знаю конкретно про эту либу, но вообще Delphi может и под линукс компилить.
    Re[7]: Delphi для Web
    От: Kerk  
    Дата: 03.11.17 21:15
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    W>>Так сервер сайд это программа на Delphi, она все и делает, обращается к БД и т.д.

    W>>Сервер должен быть на Windows

    T>То есть на каждого посетителя сайта будет на сервере запускаться программа на Delphi?


    А как по-твоему работают сайты? Ну вот RSDN, например?
    Re[8]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 21:16
    Оценка:
    T>>То есть на каждого посетителя сайта будет на сервере запускаться программа на Delphi?
    K>А как по-твоему работают сайты? Ну вот RSDN, например?

    Вебсервер обрабатывает HTTP-запросы но он не хранит состояние сайта, а только принял, обработал и отдал назад.
    Отредактировано 03.11.2017 21:17 turbocode . Предыдущая версия .
    Re[9]: Delphi для Web
    От: Kerk  
    Дата: 03.11.17 21:20
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    T>>>То есть на каждого посетителя сайта будет на сервере запускаться программа на Delphi?

    K>>А как по-твоему работают сайты? Ну вот RSDN, например?

    T>Вебсервер обрабатывает HTTP-запросы но он не хранит состояние сайта, а только принял, обработал и отдал назад.


    Веб-сервера поддерживают сессии с незапамятных времен.

    У них, в общем, на сайте примерно так и написано

    In general each uniGUI application is a standard Delphi executable powered with specialized modules which all together turn the application into a full featured web server. Among these modules we can count Session Manager, Web HTTP Server, ISAPI Handler, Cache Eraser and Server Module. These modules cooperate to create sessions, handle Ajax calls, create web UI and manage session lifetime.

    Re[10]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 21:26
    Оценка:
    K>Веб-сервера поддерживают сессии с незапамятных времен.
    K>У них, в общем, на сайте примерно так и написано
    K>

    K>In general each uniGUI application is a standard Delphi executable powered with specialized modules which all together turn the application into a full featured web server. Among these modules we can count Session Manager, Web HTTP Server, ISAPI Handler, Cache Eraser and Server Module. These modules cooperate to create sessions, handle Ajax calls, create web UI and manage session lifetime.


    Сессия это просто (key, value) контейнер данных, она сама по себе ничего не делает. Как видно из описания любая программа на Delphi так просто не заработает в вебе, а нужно еще делать поддержку каких то там модулей.
    Re[11]: Delphi для Web
    От: wamaco  
    Дата: 03.11.17 21:30
    Оценка:
    Здравствуйте, turbocode, Вы писали:
    ]

    T>Сессия это просто (key, value) контейнер данных, она сама по себе ничего не делает. Как видно из описания любая программа на Delphi так просто не заработает в вебе, а нужно еще делать поддержку каких то там модулей.


    они из коробки ISAPI
    Re[12]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 21:33
    Оценка:
    T>>Сессия это просто (key, value) контейнер данных, она сама по себе ничего не делает. Как видно из описания любая программа на Delphi так просто не заработает в вебе, а нужно еще делать поддержку каких то там модулей.
    W>они из коробки ISAPI

    Допустим есть приложение на старом добром VCL, этот VCL ничего не знает о вебе. Что дальше?
    Re[13]: Delphi для Web
    От: Kerk  
    Дата: 03.11.17 21:38
    Оценка: :)
    Здравствуйте, turbocode, Вы писали:

    T>>>Сессия это просто (key, value) контейнер данных, она сама по себе ничего не делает. Как видно из описания любая программа на Delphi так просто не заработает в вебе, а нужно еще делать поддержку каких то там модулей.

    W>>они из коробки ISAPI

    T>Допустим есть приложение на старом добром VCL, этот VCL ничего не знает о вебе. Что дальше?


    И ничего. Этот uniGUI — это отдельная от VCL визуальная библиотека. Ну почитай ты сайт, елки-палки. Я тоже этой штукой ни разу не пользовался, но за полторы минуты сайты посмотрел.
    Re[9]: Delphi для Web
    От: icezone  
    Дата: 03.11.17 22:07
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    T>Вебсервер обрабатывает HTTP-запросы но он не хранит состояние сайта, а только принял, обработал и отдал назад.


    Правда что-ли? Вебсервер сам запросы обрабатывает? Ты где-то в 90х застрял, на уровне статических страниц.
    Re[10]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 22:17
    Оценка:
    I>Правда что-ли? Вебсервер сам запросы обрабатывает? Ты где-то в 90х застрял, на уровне статических страниц.

    В смысле сам? Кто то на PHP, кто на ASP.NET сидит. Но это ж никакие не приложения на Delphi.
    Re[14]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 22:19
    Оценка:
    T>>Допустим есть приложение на старом добром VCL, этот VCL ничего не знает о вебе. Что дальше?
    K>И ничего. Этот uniGUI — это отдельная от VCL визуальная библиотека.

    Это еще ужаснее чем я думал: потому что создавать одно и тоже приложение с разными наборами визуальных библиотек это самое худшее что может быть.
    Re[11]: Delphi для Web
    От: icezone  
    Дата: 03.11.17 22:33
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    T>В смысле сам? Кто то на PHP, кто на ASP.NET сидит. Но это ж никакие не приложения на Delphi.


    Это были твои слова. Теперь осталось объяснить разницу между интерпретатором PHP и приложением на Delphi.
    Re[12]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 22:45
    Оценка:
    T>>В смысле сам? Кто то на PHP, кто на ASP.NET сидит. Но это ж никакие не приложения на Delphi.
    I>Это были твои слова. Теперь осталось объяснить разницу между интерпретатором PHP и приложением на Delphi.

    Мне неизвестен принцип того как приложения на Delphi будут работать в вебе. Если ты знаешь то расскажи, вместо того чтобы здесь газировать лужи тупыми вопросами.
    Re[15]: Delphi для Web
    От: icezone  
    Дата: 03.11.17 22:45
    Оценка: +1
    Здравствуйте, turbocode, Вы писали:

    T>Это еще ужаснее чем я думал: потому что создавать одно и тоже приложение с разными наборами визуальных библиотек это самое худшее что может быть.


    Почему ты упорно отказываешься читать описание и выдумываешь проблемы?
    Технология предлагает единый GUI для веба и десктопа. Бекэнд делаешь на delphi, а фронтэнд генерируется на js.

    Я примерно так реализовал просмотр отчетов в одной программе, когда попросили сделать удаленный доступ, только фронтэнд сделал руками.
    На Indy сделал сервер с генерацией отчетов и авторизацией. При удаленном просмотре человек использует браузер,
    а на десктопе все отображается через приложение с EmbeddedWB.
    Отредактировано 03.11.2017 22:58 icezone . Предыдущая версия . Еще …
    Отредактировано 03.11.2017 22:58 icezone . Предыдущая версия .
    Re[13]: Delphi для Web
    От: icezone  
    Дата: 03.11.17 22:57
    Оценка: +1
    Здравствуйте, turbocode, Вы писали:

    T>Мне неизвестен принцип того как приложения на Delphi будут работать в вебе. Если ты знаешь то расскажи, вместо того чтобы здесь газировать лужи тупыми вопросами.


    Я с тебя угораю — как работает ты не знаешь, но мнение имеешь.
    Ок, приложения на Delphi будут работать точно так же как и приложения на C++, PHP, Perl,...
    а еще ведь Node.js есть, он тебе точно мозг взорвет

    Может с чего-нибудь попроще начнем? Например, как любой бекэнд общается с вебсервером?
    Или — зачем веб приложению внешний вебсервер?
    Re[16]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 22:59
    Оценка:
    I>Технология предлагает единый GUI для веба и десктопа.
    Это ж разные наборы VCL, где ты видишь единость? Ну да визуально они похожи но от этого ни холодно ни жарко, потому что морду для приложения нужно делать дважды: одну для десктопа, а другую для веба.

    I>Бекэнд делаешь на delphi,

    Есть языки и получше для бекенда чем Delphi.

    I>а фронтэнд генерируется на js.

    Где генерируются (на фронте или на бекенде)? Чем генерируются? На основании чего генерируются?
    Re[14]: Delphi для Web
    От: turbocode  
    Дата: 03.11.17 23:02
    Оценка:
    I>Может с чего-нибудь попроще начнем? Например, как любой бекэнд общается с вебсервером?
    I>Или — зачем веб приложению внешний вебсервер?

    Это оффтоп.
    Re[17]: Delphi для Web
    От: icezone  
    Дата: 03.11.17 23:39
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    T>Это ж разные наборы VCL, где ты видишь единость?


    Это замена для стандартного VCL.

    T>Есть языки и получше для бекенда чем Delphi.


    Об этом можно спорить бесконечно. Зависит от поставленной задачи.

    T>Где генерируются (на фронте или на бекенде)? Чем генерируются? На основании чего генерируются?


    Я подробностей реализации не знаю, но полагаю что этот набор VCL генерирует html/js фронтэнд. Т.е. вместо формы будут html страница.
    В некоторых случаях — это удобно. Но не во всех.
    Re[15]: Delphi для Web
    От: icezone  
    Дата: 03.11.17 23:49
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    T>Это оффтоп.


    Почему? Ты же сам спросил как delphi может взаимодействовать с вебсервером...
    Под Apache модули делаются через FastCGI, под IIS на ISAPI. На любом языке.
    Можно и сам сервер сделать на Delphi с блекджеком и ...
    Re: Delphi для Web
    От: icezone  
    Дата: 03.11.17 23:51
    Оценка:
    Здравствуйте, gangastyle, Вы писали:

    G>http://unigui.com/

    G>Есть смысл использовать для web-приложений в шароваре?

    немного погуглил — есть масса альтернатив
    Raudus, ExtPascal, Morfik
    Re[3]: Delphi для Web
    От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
    Дата: 04.11.17 04:46
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    МР>>В целом, концепция у ребят очень напоминает ASP.Net Web Forms.


    T>Я так понял что там всё заделали на JavaScript+Ajax никаких ASP.Net Web Forms там и близко нету.

    Не знаю. По тому, что я увидел, выглядит похоже:

    Т.е. всяко должен быть механизм создания этой самой формы, приема изменений от клиента, передачи результата на клиент (причем, т.к. поддерживается динамическое создание компонент передвать надо не только данные, но и разметку в каком-то виде).
    Большой разницы с ASP.Net я не вижу.

    Правда, сейчас посмотрел документацию, там пишут вот такое:

    Each time a user opens a new instance of the Web application, the server creates a new session. A session will remain active until the user logs out, closes the browser/tab, or it times out. Each session keeps a complete state of the running Web application so that uniGUI sessions are called stateful. You can consider each session as a private copy of your Web application, which co-exists with other sessions in the server address space but is isolated from all others.


    Т.е. им нет нужды заботиться о сохранении состояния, у них сессия (которая включает все переменные среды, а также все открытые в текущий момент формы) — всегда находится в памяти.
    С другой стороны, как это будет масштабироваться — я плохо представляю.
    У большинства (если не у всех) известных мне веб-решений время жизни 99% объектов равно времени обработки запроса, а здесь даже в руководстве разработчика есть специальный пункт посвященный экономии ресурсов и создании их on demand.

    T>Но как они организовали обработку на серверной стороне неясно (я так понимаю что это ложится тяжелым грузом на разработчика потому что ему придется самому выискивать в HTML где там что хранится и малейшее изменение HTML разметки может нарушить работу такого веб-приложения)

    Там всё достаточно интересно, на самом деле.
    Судя по всему они реализовали нечто вроде RDP.
    По крайней мере открытие формы ведет к загрузке следующих данных с сервера:
      Это, видимо, аналог разметки

    _rsov_(O1D,10); O3F8=new Ext.panel.Panel({id:"O3F8_id",itemId:"5",bodyBorder:false,header:false,border:false,bodyBorder:false,layout:"absolute",title:"Fish Facts",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__BBB72767EDA6DFE6A95E21BE.ico",closable:true,style:"border:none;",uniFMask:{beforeclose:true},width:1717,height:481,x:0,y:0});O3F8.nm="O3F8";_cdo_("O3F8_C",O3F8,null,MainForm);O6F.add(O3F8); O400=new Ext.panel.Panel({id:"O400_id",border:false,bodyBorder:false,layout:"absolute",border:false,style:"border:none;",width:1715,height:481,x:0,y:0});O400.nm="O400";_cdo_("UniDatabaseFishFacts");UniDatabaseFishFacts.ajxS=AjaxSuccess;UniDatabaseFishFacts.ajxF=AjaxFailure;UniDatabaseFishFacts.form=O8;O400.rootObj=true;UniDatabaseFishFacts.appRoot="/demo/desktop/mdemo.dll/";_cdo_("FramePanel",O400,null,UniDatabaseFishFacts); O408=new Ext.form.Label({id:"O408_id",cls:"x-unilabel",text:"Category",x:8,y:5});O408.nm="O408";_cdo_("UniLabel1",O408,null,UniDatabaseFishFacts);O400.add(O408); O40C=new Ext.form.Label({id:"O40C_id",cls:"x-unilabel",text:"Common Name",x:8,y:44});O40C.nm="O40C";_cdo_("UniLabel2",O40C,null,UniDatabaseFishFacts);O400.add(O40C); O410=new Ext.form.Label({id:"O410_id",cls:"x-unilabel",text:"Length (cm)",x:8,y:85});O410.nm="O410";_cdo_("UniLabel3",O410,null,UniDatabaseFishFacts);O400.add(O410); O414=new Ext.form.Label({id:"O414_id",cls:"x-unilabel",text:"Length (In)",x:8,y:127});O414.nm="O414";_cdo_("UniLabel4",O414,null,UniDatabaseFishFacts);O400.add(O414); O418=new Ext.form.Label({id:"O418_id",cls:"x-unilabel",text:"Picture",x:173,y:5});O418.nm="O418";_cdo_("UniLabel5",O418,null,UniDatabaseFishFacts);O400.add(O418); O41C=new Ext.form.Label({id:"O41C_id",cls:"x-unilabel",text:"Notes",x:575,y:5});O41C.nm="O41C";_cdo_("UniLabel6",O41C,null,UniDatabaseFishFacts);O400.add(O41C); O420=new Ext.Component({id:"O420_id",html:"\x3Cimg src='/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__21858F79576234F27860D0B9.png' alt='UniDBImage1' width='270' height='162' hspace='0' vspace='0'\x3E",style:"background: none;clip:rect(0px,277px,162px,0px);",width:277,height:162,x:173,y:22});O420.nm="O420";_cdo_("UniDBImage1",O420,null,UniDatabaseFishFacts);O400.add(O420); O424=new Ext.form.field.Text({id:"O424_id",trackBlurChange:true,maxLength:15,enforceMaxLength:true,value:"Triggerfish",name:"O424",enableKeyEvents:true,width:159,height:21,x:8,y:20});O424.nm="O424";_cdo_("UniDBEdit1",O424,null,UniDatabaseFishFacts);O400.add(O424); O428=new Ext.form.field.Text({id:"O428_id",trackBlurChange:true,maxLength:30,enforceMaxLength:true,value:"Clown Triggerfish",name:"O428",enableKeyEvents:true,width:159,height:21,x:8,y:60});O428.nm="O428";_cdo_("UniDBEdit2",O428,null,UniDatabaseFishFacts);O400.add(O428); O42C=new Ext.form.field.Text({id:"O42C_id",trackBlurChange:true,value:"50",name:"O42C",enableKeyEvents:true,fieldStyle:"text-align:right;background-color:#C1E0FF;background-image:none;",width:159,height:21,x:8,y:101});O42C.nm="O42C";_cdo_("UniDBEdit3",O42C,null,UniDatabaseFishFacts);O400.add(O42C); O430=new Ext.form.field.Text({id:"O430_id",trackBlurChange:true,value:"19.6850393700787",name:"O430",enableKeyEvents:true,fieldStyle:"text-align:right;",width:159,height:21,x:8,y:142});O430.nm="O430";_cdo_("UniDBEdit4",O430,null,UniDatabaseFishFacts);O400.add(O430); O434=new Ext.container.Container({id:"O434_id",border:false,layout:"absolute",style:"border:none;",width:270,height:25,x:178,y:190});O434.nm="O434";_cdo_("UniDBNavigator1",O434,null,UniDatabaseFishFacts); O43C=new Ext.button.Button({id:"O43C_id",disabled:true,icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__B176963BE18EA589930533A3.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:0,y:0});O43C.nm="O43C";_cdo_("uni_dbn_FIRST",O43C,null,MainForm);O434.add(O43C); O440=new Ext.button.Button({id:"O440_id",disabled:true,icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__63B080C285DCE118E98D53F5.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:27,y:0});O440.nm="O440";_cdo_("uni_dbn_PRIOR",O440,null,MainForm);O434.add(O440); O444=new Ext.button.Button({id:"O444_id",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__17B3F33D151B57F62CCF3E2D.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:54,y:0});O444.nm="O444";_cdo_("uni_dbn_NEXT",O444,null,MainForm);O434.add(O444); O448=new Ext.button.Button({id:"O448_id",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__453D57B97251D77AB78F23F1.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:81,y:0});O448.nm="O448";_cdo_("uni_dbn_LAST",O448,null,MainForm);O434.add(O448); O44C=new Ext.button.Button({id:"O44C_id",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__C54023110DE0CCCFD320E30C.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:108,y:0});O44C.nm="O44C";_cdo_("uni_dbn_INSERT",O44C,null,MainForm);O434.add(O44C); O450=new Ext.button.Button({id:"O450_id",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__9D6B72164DCF4B41EB3AB138.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:135,y:0});O450.nm="O450";_cdo_("uni_dbn_DELETE",O450,null,MainForm);O434.add(O450); O454=new Ext.button.Button({id:"O454_id",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__FD3EE3324C3E355B497D0DB6.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:162,y:0});O454.nm="O454";_cdo_("uni_dbn_EDIT",O454,null,MainForm);O434.add(O454); O458=new Ext.button.Button({id:"O458_id",disabled:true,icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__E52FCDA7287642EE0DA60524.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:189,y:0});O458.nm="O458";_cdo_("uni_dbn_POST",O458,null,MainForm);O434.add(O458); O45C=new Ext.button.Button({id:"O45C_id",disabled:true,icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__42514CD6C2AD61A404FEA406.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:216,y:0});O45C.nm="O45C";_cdo_("uni_dbn_CANCEL",O45C,null,MainForm);O434.add(O45C); O460=new Ext.button.Button({id:"O460_id",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__377DA7BA83A8B696BB26540F.png",iconCls:"x-uni-btn-icon-notext",width:27,height:25,x:243,y:0});O460.nm="O460";_cdo_("uni_dbn_REFRESH",O460,null,MainForm);O434.add(O460); O464=new Ext.button.Button({id:"O464_id",hidden:true,width:27,height:25,x:270,y:0});O464.nm="O464";_cdo_("uni_dbn_APPLYUPDATES",O464,null,MainForm);O434.add(O464); O468=new Ext.button.Button({id:"O468_id",hidden:true,width:27,height:25,x:297,y:0});O468.nm="O468";_cdo_("uni_dbn_CANCELUPDATES",O468,null,MainForm);O434.add(O468);O400.add(O434); O46C=new Ext.form.field.Number({id:"O46C_id",trackBlurChange:true,allowExponential:false,decimalPrecision:2,decimalSeparator:",",hideTrigger:true,keyNavEnabled:false,step:1,name:"O46C",enableKeyEvents:true,fieldStyle:"text-align:right;",width:159,x:8,y:169});O46C.nm="O46C";_cdo_("UniDBNumberEdit1",O46C,null,UniDatabaseFishFacts);O400.add(O46C); O474=new Ext.data.Store({fields:[],storeId:"O474_id",remoteSort:true,remoteGroup:true,pageSize:25,proxy:{type:"ajax",url:"/demo/desktop/mdemo.dll/HandleEvent?IsEvent=1&Obj=O470&Evt=data&"+_S_ID,reader:{type:"json"},timeout:60000}}); O47B=new Ext.selection.CellModel({}); O487=new Ext.toolbar.Paging({id:"O487_id",store:O474}); O4C2=new Object({}); O470=new Ext.grid.Panel({id:"O470_id",store:O474,columns:[],columnLines:true,bodyBorder:true,border:true,selModel:O47B,bbar:O487,loadDataMask:O4C2,enableColumnMove:false,viewConfig:{preserveScrollOnRefresh:true,markDirty:false,loadMask:false},plugins:[Ext.create("Ext.grid.plugin.CellEditing",{pluginId:"uniGridEditor",clicksToEdit:2})],width:1715,height:217,x:0,y:264});O470.nm="O470";_cdo_("UniDBGrid1",O470,null,UniDatabaseFishFacts);O474.nm="O474";_cdo_("UniDBGrid1",O474,"store",UniDatabaseFishFacts);O474.grid=O470;O474.dbgrid=true; O475= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O474&Evt=load&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O474,e:"load"});});O475.nm="O475";O474.on("load",O475); O476= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O474&Evt=prefetch&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O474,e:"prefetch"});});O476.nm="O476";O474.on("prefetch",O476); O477=new Ext.form.field.Hidden({name:"O477",enableKeyEvents:true});O477.nm="O477";O47B.nm="O47B";_cdo_("UniDBGrid1",O47B,"cellModel",UniDatabaseFishFacts); O47C=new Ext.selection.RowModel({});O47C.nm="O47C";_cdo_("UniDBGrid1",O47C,"rowModel",UniDatabaseFishFacts); O47D=new Ext.selection.CheckboxModel({});O47D.nm="O47D";_cdo_("UniDBGrid1",O47D,"checkboxModel",UniDatabaseFishFacts);O47B.grid=O470;O47C.grid=O470;O477.grid=O470;O470.hidField=O477; O47E= (function(P0,P1){_src_(O477,xlatRow(P1),P1.column.dataIndex,null,P1.record,true);_ae_(P1);return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O470&Evt=edit&VR="+_o2s_(P1.newValues, P1.originalValues)+"&V="+_xl_(P1.value)+"&O="+_xl_(P1.originalValue)+"&R="+xlatRow(P1)+"&C="+P1.column.dataIndex+"&RN="+_getrno_(P1.record)+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O470,e:"edit"});});O47E.nm="O47E";O470.on("edit",O47E); O47F= (function(P0,P1){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O470&Evt=canceledit&R="+P1.rowIdx+"&C="+P1.column.dataIndex+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O470,e:"canceledit"});});O47F.nm="O47F";O470.on("canceledit",O47F); O480= (function(P0,P1){if(!_ce_(P1))return(false);if(!_src_(O477,xlatRow(P1),P1.column.dataIndex,null,P1.record,true))return(false);return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O470&Evt=beforeedit&V="+_xl_(P1.value)+"&O="+_xl_(P1.originalValue)+"&R="+xlatRow(P1)+"&C="+P1.column.dataIndex+"&RN="+_getrno_(P1.record)+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O470,e:"beforeedit"});});O480.nm="O480";O470.on("beforeedit",O480,O470,{delay:1}); O481= (function(P0,P1,P2,P3){_cge_(P0);_src_(O477,xlatRecRow(P2,P1),_gcdi_(P0,P3),null,P1);if(_ccell_(P0))return;return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O47B&Evt=select&This="+P0.nm+"&rr="+xlatRecRow(P2,P1)+"&cc="+P3+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O47B,e:"select"});});O481.nm="O481";O47B.on("select",O481); O482= (function(P0,P1){_src_(O477,null,null,false,P1);return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O47C&Evt=selectionchange&This="+P0.nm+"&sels="+P1.length+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O47C,e:"selectionchange"});});O482.nm="O482";O47C.on("selectionchange",O482); O483= (function(P0,P1){_src_(O477,null,null,false,P1);return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O47D&Evt=selectionchange&This="+P0.nm+"&sels="+P1.length+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O47D,e:"selectionchange"});});O483.nm="O483";O47D.on("selectionchange",O483);O470.on("columnresize",function(ct,c,w){if(c.fedit)c.fedit.setWidth(w-10)}); O484= (function(P0,P1,P2,P3){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O470&Evt=columnmove&OldIndex="+P2+"&NewIndex="+P3+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O470,e:"columnmove"});});O484.nm="O484";O470.on("columnmove",O484); O485= (function(P0,P1){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O470&Evt=columnhide&col="+P1.dataIndex+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O470,e:"columnhide"});});O485.nm="O485";O470.on("columnhide",O485); O486= (function(P0,P1){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O470&Evt=columnshow&col="+P1.dataIndex+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O470,e:"columnshow"});});O486.nm="O486";O470.on("columnshow",O486);O487.nm="O487";_cdo_("UniDBGrid1",O487,"pagingBar",UniDatabaseFishFacts);O400.add(O470);O400.add(O477); O48F=new Ext.data.Store({proxy:{type:"ajax",url:"/demo/desktop/mdemo.dll/HandleEvent?IsEvent=1&Obj=O48F&Evt=data&"+_S_ID,reader:{type:"json"},timeout:60000},storeId:"O48F_id",fields:["id","val"],data:[["0","Clown Triggerfish"],["1","Red Emperor"],["2","French Grunt"]]}); O48B=new Ext.form.field.ComboBox({id:"O48B_id",displayField:"val",valueField:"val",trackBlurChange:true,queryMode:"local",minChars:1,value:"Clown Triggerfish",editable:true,store:O48F,name:"O48B",enableKeyEvents:true,width:159,x:8,y:197});O48B.nm="O48B";_cdo_("UniDBComboBox1",O48B,null,UniDatabaseFishFacts);O48F.nm="O48F";_cdo_("UniDBComboBox1",O48F,"store",UniDatabaseFishFacts); O490= (function(){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O48F&Evt=data&"+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O48F,e:"data"});});O490.nm="O490";O48F.on("data",O490); O491= (function(){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O48B&Evt=select&"+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O48B,e:"select"});});O491.nm="O491";O48B.on("select",O491);O400.add(O48B); O492=new Ext.form.Label({id:"O492_id",cls:"x-unilabel",text:"Clown Triggerfish",style:"text-align:center;font:bold 13px Tahoma;color:#000080",x:8,y:225});O492.nm="O492";_cdo_("UniDBText1",O492,null,UniDatabaseFishFacts);O400.add(O492); O496=new Ext.form.field.HtmlEditor({id:"O496_id",trackBlurChange:true,value:"Also known as the big spotted triggerfish. Inhabits outer reef areas and feeds upon crustaceans and mollusks by crushing them with powerful teeth. They are voracious eaters, and divers report seeing the clown triggerfish devour beds of pearl oysters.\n\nDo not eat this fish. According to an 1878 account, \"the poisonous flesh acts primarily upon the nervous tissue of the stomach, occasioning violent spasms of that organ, and shortly afterwards all the muscles of the body. The frame becomes rocked with spasms, the tongue thickened, the eye fixed, the breathing laborious, and the patient expires in a paroxysm of extreme suffering.\"\n\nNot edible.\n\nRange is Indo-Pacific and East Africa to Somoa.\n",name:"O496",enableKeyEvents:true,fieldStyle:"background-color:#DFDFDF;background-image:none;",width:1105,height:236,x:592,y:22});O496.nm="O496";_cdo_("UniDBMemo1",O496,null,UniDatabaseFishFacts);O496.on("change",_hed_);O400.add(O496); O49A=new Ext.button.Button({id:"O49A_id",text:"Append",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__DBDF85F0E7052583C2E49CC0.png",iconCls:"x-uni-btn-icon-left",width:75,height:25,x:178,y:221});O49A.nm="O49A";_cdo_("UniBitBtn1",O49A,null,UniDatabaseFishFacts);O400.add(O49A); O49E=new Ext.button.Button({id:"O49E_id",text:"Edit Picture",icon:"/demo/desktop/mdemo.dll/cache/mdemo_dll/res/__4DEF4D6E570CC8FFA4FC0D1D.png",iconCls:"x-uni-btn-icon-left",width:100,height:25,x:259,y:221});O49E.nm="O49E";_cdo_("UniBitBtn2",O49E,null,UniDatabaseFishFacts);O400.add(O49E); O4A2=new Ext.form.FieldSet({id:"O4A2_id",layout:"fit",bodyBorder:false,title:"Category",width:130,height:241,x:456,y:17});O4A2.nm="O4A2";_cdo_("UniDBRadioGroup1",O4A2,null,UniDatabaseFishFacts); O4AA=new Ext.form.RadioGroup({id:"O4AA_id",items:[{boxLabel:"1) Triggerfish",name:"O4AA",itemId:"0",checked:true,inputValue:"0"},{boxLabel:"2) Snapper",name:"O4AA",itemId:"1",inputValue:"1"},{boxLabel:"3) Wrasse",name:"O4AA",itemId:"2",inputValue:"2"},{boxLabel:"4) Angelfish",name:"O4AA",itemId:"3",inputValue:"3"},{boxLabel:"5) Cod",name:"O4AA",itemId:"4",inputValue:"4"},{boxLabel:"6) Scorpionfish",name:"O4AA",itemId:"5",inputValue:"5"},{boxLabel:"7) Shark",name:"O4AA",itemId:"6",inputValue:"6"},{boxLabel:"8) Ray",name:"O4AA",itemId:"7",inputValue:"7"},{boxLabel:"9) Grouper",name:"O4AA",itemId:"8",inputValue:"8"},{boxLabel:"10) Cyprinidae",name:"O4AA",itemId:"9",inputValue:"9"}],columns:1,vertical:true,name:"O4AA",enableKeyEvents:true});O4AA.nm="O4AA";_cdo_("UniDBRadioGroup1",O4AA,"radioGroup",UniDatabaseFishFacts);O4A2.add(O4AA);O400.add(O4A2); O4AE=new Object({});O4AE.nm="O4AE";_cdo_("UniFileUpload1",O4AE,null,UniDatabaseFishFacts);_sfv_(O4AA,0,{O4AA:0});O3F8.add(O400);O6F.setActiveTab("5"); O4AF= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O3F8&Evt=beforeclose&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O3F8,e:"beforeclose"});});O4AF.nm="O4AF";O3F8.on("beforeclose",O4AF);O3F8.retfalse.beforeclose=1;O408.Id1="O6F_id";O408.Id2="O3F8_id";O40C.Id1="O6F_id";O40C.Id2="O3F8_id";O410.Id1="O6F_id";O410.Id2="O3F8_id";O414.Id1="O6F_id";O414.Id2="O3F8_id";O418.Id1="O6F_id";O418.Id2="O3F8_id";O41C.Id1="O6F_id";O41C.Id2="O3F8_id";O420.Id1="O6F_id";O420.Id2="O3F8_id";O424.stateValue="0100000000000000010000001C00000001000000";O424.Id1="O6F_id";O424.Id2="O3F8_id"; O4B0= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O424&Evt=edited&This="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O424,e:"edited"});});O4B0.nm="O4B0";O424.on("edited",O4B0);O428.stateValue="0100000000000000010000001C00000001000000";O428.Id1="O6F_id";O428.Id2="O3F8_id"; O4B1= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O428&Evt=edited&This="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O428,e:"edited"});});O4B1.nm="O4B1";O428.on("edited",O4B1);O42C.stateValue="0100000000000000010000001C00000001000000";O42C.Id1="O6F_id";O42C.Id2="O3F8_id"; O4B2= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O42C&Evt=edited&This="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O42C,e:"edited"});});O4B2.nm="O4B2";O42C.on("edited",O4B2);O430.stateValue="0100000000000000010000001C00000001000000";O430.Id1="O6F_id";O430.Id2="O3F8_id"; O4B3= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O430&Evt=edited&This="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O430,e:"edited"});});O4B3.nm="O4B3";O430.on("edited",O4B3);O43C.Id1="O6F_id";O43C.Id2="O3F8_id"; O4B4= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O43C&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O43C,e:"click"});});O4B4.nm="O4B4";O43C.on("click",O4B4);O440.Id1="O6F_id";O440.Id2="O3F8_id"; O4B5= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O440&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O440,e:"click"});});O4B5.nm="O4B5";O440.on("click",O4B5);O444.Id1="O6F_id";O444.Id2="O3F8_id"; O4B6= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O444&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O444,e:"click"});});O4B6.nm="O4B6";O444.on("click",O4B6);O448.Id1="O6F_id";O448.Id2="O3F8_id"; O4B7= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O448&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O448,e:"click"});});O4B7.nm="O4B7";O448.on("click",O4B7);O44C.Id1="O6F_id";O44C.Id2="O3F8_id"; O4B8= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O44C&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O44C,e:"click"});});O4B8.nm="O4B8";O44C.on("click",O4B8);O450.Id1="O6F_id";O450.Id2="O3F8_id"; O4B9= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O450&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O450,e:"click"});});O4B9.nm="O4B9";O450.on("click",O4B9);O454.Id1="O6F_id";O454.Id2="O3F8_id"; O4BA= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O454&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O454,e:"click"});});O4BA.nm="O4BA";O454.on("click",O4BA);O458.Id1="O6F_id";O458.Id2="O3F8_id"; O4BB= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O458&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O458,e:"click"});});O4BB.nm="O4BB";O458.on("click",O4BB);O45C.Id1="O6F_id";O45C.Id2="O3F8_id"; O4BC= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O45C&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O45C,e:"click"});});O4BC.nm="O4BC";O45C.on("click",O4BC);O460.Id1="O6F_id";O460.Id2="O3F8_id"; O4BD= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O460&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O460,e:"click"});});O4BD.nm="O4BD";O460.on("click",O4BD);O464.Id1="O6F_id";O464.Id2="O3F8_id"; O4BE= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O464&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O464,e:"click"});});O4BE.nm="O4BE";O464.on("click",O4BE);O468.Id1="O6F_id";O468.Id2="O3F8_id"; O4BF= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O468&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O468,e:"click"});});O4BF.nm="O4BF";O468.on("click",O4BF);O434.Id1="O6F_id";O434.Id2="O3F8_id";_sfv_(O46C,0,50);O46C.stateValue="0100000000000000010000001C00000001000000";O46C.Id1="O6F_id";O46C.Id2="O3F8_id"; O4C0= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O46C&Evt=edited&This="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O46C,e:"edited"});});O4C0.nm="O4C0";O46C.on("edited",O4C0);O470.Id1="O6F_id";O470.Id2="O3F8_id";_fixmultis_(O470); O4C1= (function(P0,P1,P2){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O470&Evt=columnresize&ColumnIndex="+P1.dataIndex+"&NewSize="+P2+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O470,e:"columnresize"});});O4C1.nm="O4C1";O470.on("columnresize",O4C1);O4C2.nm="O4C2";O4C2.uniMask={ldMask:true,maskMsg:"Loading data...",maskWaitData:false,maskUseMsg:true,maskAttribs:{color:"#FFFFFF",opacity:0.5}};O4C2.uniMask.targetObj=O470; O4C3=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"0",renderer:_rndcll_,rdonly:false,text:"Species No",align:"right",cf:"#.#######",ct:"float",width:81,attr:"{ft:'11px Tahoma'}",editor:{xtype:"textfield",fieldStyle:"font:11px Tahoma;color:#000000"}});O4C3.nm="O4C3";O4C3.editor.focusDisabled=true; O4C4=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"1",renderer:_rndcll_,rdonly:false,text:"Category",width:94,attr:"{ft:'11px Tahoma'}",editor:{xtype:"textfield",fieldStyle:"font:11px Tahoma;color:#000000"}});O4C4.nm="O4C4";O4C4.editor.focusDisabled=true; O4C5=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"2",renderer:_rndcll_,rdonly:false,text:"Common Name",width:184,attr:"{ft:'11px Tahoma'}",editor:{xtype:"textfield",fieldStyle:"font:11px Tahoma;color:#000000"}});O4C5.nm="O4C5";O4C5.editor.focusDisabled=true; O4C6=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"3",renderer:_rndcll_,rdonly:false,text:"Species Name",width:163,attr:"{ft:'11px Tahoma'}",editor:{xtype:"textfield",fieldStyle:"font:11px Tahoma;color:#000000"}});O4C6.nm="O4C6";O4C6.editor.focusDisabled=true; O4C7=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"4",renderer:_rndcll_,rdonly:false,text:"Length (cm)",align:"right",cf:"#.#######",ct:"float",width:94,attr:"{ft:'11px Tahoma'}",editor:{xtype:"textfield",fieldStyle:"font:11px Tahoma;color:#000000"}});O4C7.nm="O4C7";O4C7.editor.focusDisabled=true; O4C8=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"5",renderer:_rndcll_,rdonly:false,text:"Length (In)",align:"right",cf:"#.#######",ct:"float",width:82,attr:"{ft:'11px Tahoma'}",editor:{xtype:"textfield",fieldStyle:"font:11px Tahoma;color:#000000"}});O4C8.nm="O4C8";O4C8.editor.focusDisabled=true; O4C9=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"6",renderer:_rndcll_,rdonly:false,text:"Notes",width:256,attr:"{ft:'11px Tahoma'}",unEditable:true});O4C9.nm="O4C9"; O4CA=new Ext.grid.column.Column({ogrid:O470,sortable:false,dataIndex:"7",renderer:_rndcll_,rdonly:false,text:"Picture",width:150,attr:"{ft:'11px Tahoma'}",unEditable:true});O4CA.nm="O4CA";var O470_Cols=[O4C3,O4C4,O4C5,O4C6,O4C7,O4C8,O4C9,O4CA];O470.reconfigure(null,O470_Cols);O470.uniConfigColumns();O4C3.setElProp({font:"11px Tahoma","text-align":"left"},null,0,null,null,"titleEl");O4C4.setElProp({font:"11px Tahoma"},null,0,null,null,"titleEl");O4C5.setElProp({font:"11px Tahoma"},null,0,null,null,"titleEl");O4C6.setElProp({font:"11px Tahoma"},null,0,null,null,"titleEl");O4C7.setElProp({font:"11px Tahoma","text-align":"left"},null,0,null,null,"titleEl");O4C8.setElProp({font:"11px Tahoma","text-align":"left"},null,0,null,null,"titleEl");O4C9.setElProp({font:"11px Tahoma"},null,0,null,null,"titleEl");O4CA.setElProp({font:"11px Tahoma"},null,0,null,null,"titleEl");O470.setElProp({font:"bold 11px Tahoma",color:"#008000"},null,5,".x-group-header",null,"headerCt");O474.loadPage(1,{params:{start:0,limit:25,options:1}});O48B.stateValue="0100000000000000010000001C00000001000000";O48B.Id1="O6F_id";O48B.Id2="O3F8_id"; O4CB= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O48B&Evt=edited&This="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O48B,e:"edited"});});O4CB.nm="O4CB";O48B.on("edited",O4CB);O492.stateValue="0100000000000000010000001C00000001000000";O492.Id1="O6F_id";O492.Id2="O3F8_id";O496.setElProp("wrap","SOFT",2,null,false,"inputEl");O496.stateValue="0100000000000000010000001C00000001000000";O496.Id1="O6F_id";O496.Id2="O3F8_id"; O4CC= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O496&Evt=edited&This="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O496,e:"edited"});});O4CC.nm="O4CC";O496.on("edited",O4CC);O49A.Id1="O6F_id";O49A.Id2="O3F8_id"; O4CD= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O49A&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O49A,e:"click"});});O4CD.nm="O4CD";O49A.on("click",O4CD);O49E.Id1="O6F_id";O49E.Id2="O3F8_id"; O4CE= (function(P0){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O49E&Evt=click&this="+P0.nm+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O49E,e:"click"});});O4CE.nm="O4CE";O49E.on("click",O4CE);O4AA.stateValue="0100000000000000010000001C00000001000000";O4AA.Id1="O6F_id";O4AA.Id2="O3F8_id"; O4CF= (function(P0,P1,P2){return Ext.Ajax.request({url:"/demo/desktop/mdemo.dll/HandleEvent",params:"Ajax=1&IsEvent=1&Obj=O4AA&Evt=change&This="+P0.nm+"&newValue="+_xl_(P1)+"&oldValue="+_xl_(P2)+""+_gv_(O8),success:AjaxSuccess,failure:AjaxFailure,obj:O4AA,e:"change"});});O4CF.nm="O4CF";O4AA.on("change",O4CF);O400.Id1="O6F_id";O400.Id2="O3F8_id";O43C.setElProp("title","First record",2);O440.setElProp("title","Prior record",2);O444.setElProp("title","Next record",2);O448.setElProp("title","Last record",2);O44C.setElProp("title","Insert record",2);O450.setElProp("title","Delete record",2);O454.setElProp("title","Edit record",2);O458.setElProp("title","Post edit",2);O45C.setElProp("title","Cancel edit",2);O460.setElProp("title","Refresh data",2);O464.setElProp("title","Apply updates",2);O468.setElProp("title","Cancel updates",2);

      А это похоже на данные
    Для грида

    {metaData :{ "totalProperty":"results", "root":"rows","fields":["0","_0","1","_1","2","_2","3","_3","4","_4","5","_5","6","_6","7","_7","_x","_r"]},"success":true, "results":28, "rows":[{id:0,0:90020,_0:"",1:"Triggerfish",_1:"",2:"Clown Triggerfish",_2:"",3:"Ballistoides conspicillum",_3:"",4:50,_4:"",5:19.6850393700787,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:0},{id:1,0:90030,_0:"",1:"Snapper",_1:"",2:"Red Emperor",_2:"",3:"Lutjanus sebae",_3:"",4:60,_4:"",5:23.6220472440945,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:1},{id:2,0:90050,_0:"",1:"Wrasse",_1:"",2:"Giant Maori Wrasse",_2:"",3:"Cheilinus undulatus",_3:"",4:229,_4:"",5:90.1574803149606,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:2},{id:3,0:90070,_0:"",1:"Angelfish",_1:"",2:"Blue Angelfish",_2:"",3:"Pomacanthus nauarchus",_3:"",4:30,_4:"",5:11.8110236220472,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:3},{id:4,0:90080,_0:"",1:"Cod",_1:"",2:"Lunartail Rockcod",_2:"",3:"Variola louti",_3:"",4:80,_4:"",5:31.496062992126,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:4},{id:5,0:90090,_0:"",1:"Scorpionfish",_1:"",2:"Firefish",_2:"",3:"Pterois volitans",_3:"",4:38,_4:"",5:14.9606299212598,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:5},{id:6,0:90100,_0:"",1:"Butterflyfish",_1:"",2:"Ornate Butterflyfish",_2:"",3:"Chaetodon Ornatissimus",_3:"",4:19,_4:"",5:7.48031496062992,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:6},{id:7,0:90110,_0:"",1:"Shark",_1:"",2:"Swell Shark",_2:"",3:"Cephaloscyllium ventriosum",_3:"",4:102,_4:"",5:40.1574803149606,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:7},{id:8,0:90120,_0:"",1:"Ray",_1:"",2:"Bat Ray",_2:"",3:"Myliobatis californica",_3:"",4:56,_4:"",5:22.0472440944882,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:8},{id:9,0:90130,_0:"",1:"Eel",_1:"",2:"California Moray",_2:"",3:"Gymnothorax mordax",_3:"",4:150,_4:"",5:59.0551181102362,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:9},{id:10,0:90140,_0:"",1:"Cod",_1:"",2:"Lingcod",_2:"",3:"Ophiodon elongatus",_3:"",4:150,_4:"",5:59.0551181102362,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:10},{id:11,0:90150,_0:"",1:"Sculpin",_1:"",2:"Cabezon",_2:"",3:"Scorpaenichthys marmoratus",_3:"",4:99,_4:"",5:38.9763779527559,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:11},{id:12,0:90160,_0:"",1:"Spadefish",_1:"",2:"Atlantic Spadefish",_2:"",3:"Chaetodiperus faber",_3:"",4:90,_4:"",5:35.4330708661417,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:12},{id:13,0:90170,_0:"",1:"Shark",_1:"",2:"Nurse Shark",_2:"",3:"Ginglymostoma cirratum",_3:"",4:400,_4:"",5:157.48031496063,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:13},{id:14,0:90180,_0:"",1:"Ray",_1:"",2:"Spotted Eagle Ray",_2:"",3:"Aetobatus narinari",_3:"",4:200,_4:"",5:78.740157480315,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:14},{id:15,0:90190,_0:"",1:"Snapper",_1:"",2:"Yellowtail Snapper",_2:"",3:"Ocyurus chrysurus",_3:"",4:75,_4:"",5:29.5275590551181,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:15},{id:16,0:90200,_0:"",1:"Parrotfish",_1:"",2:"Redband Parrotfish",_2:"",3:"Sparisoma Aurofrenatum",_3:"",4:28,_4:"",5:11.0236220472441,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:16},{id:17,0:90210,_0:"",1:"Barracuda",_1:"",2:"Great Barracuda",_2:"",3:"Sphyraena barracuda",_3:"",4:150,_4:"",5:59.0551181102362,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:17},{id:18,0:90220,_0:"",1:"Grunt",_1:"",2:"French Grunt",_2:"",3:"Haemulon flavolineatum",_3:"",4:30,_4:"",5:11.8110236220472,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:18},{id:19,0:90230,_0:"",1:"Snapper",_1:"",2:"Dog Snapper",_2:"",3:"Lutjanus jocu",_3:"",4:90,_4:"",5:35.4330708661417,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:19},{id:20,0:90240,_0:"",1:"Grouper",_1:"",2:"Nassau Grouper",_2:"",3:"Epinephelus striatus",_3:"",4:91,_4:"",5:35.8267716535433,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:20},{id:21,0:90250,_0:"",1:"Wrasse",_1:"",2:"Bluehead Wrasse",_2:"",3:"Thalassoma bifasciatum",_3:"",4:15,_4:"",5:5.90551181102362,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:21},{id:22,0:90260,_0:"",1:"Jack",_1:"",2:"Yellow Jack",_2:"",3:"Gnathanodon speciousus",_3:"",4:90,_4:"",5:35.4330708661417,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:22},{id:23,0:90270,_0:"",1:"Surfperch",_1:"",2:"Redtail Surfperch",_2:"",3:"Amphistichus rhodoterus",_3:"",4:40,_4:"",5:15.748031496063,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:23},{id:24,0:90280,_0:"",1:"Croaker",_1:"",2:"White Sea Bass",_2:"",3:"Atractoscion nobilis",_3:"",4:150,_4:"",5:59.0551181102362,_5:"",6:"(MEMO)",_6:"",7:"(GRAPHIC)",_7:"",_r:24}]}

    И для таймера

    O41.setText("04/11/2017 07:29");



    Т.е. у ребят работает поверх HTTP некий свой протокол, который передает данные для построения формы и для изменения данных.
    На сколько реально что-то поменять в этом процессе, я не знаю. Никакой документации по части
    — я не нашел.

    Более того, там есть достаточно интересные вещи — например, специальная Login Form, которая появляется в начале каждой сессии.
    Т.е. если вы хотите использовать другую форму аутентификации: Windows на уровне транспорта (если у вас есть AD в компании — это вполне хороший вариант), или какой-нибудь вариант SSO (на базе WS-Federation, OAuth, ...) — то придется или сильно попотеть самому, или ждать когда реализуют авторы.


    В общем, я еще более укрепился в своем первоначальном выводе — можно ограниченно использовать для небольших внутренних приложений, когда заказчик очень хочет, а кроме Delphi-разработчиков в штате нет никого.
    Re[3]: Delphi для Web
    От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
    Дата: 04.11.17 05:01
    Оценка:
    Здравствуйте, rfillipenko, Вы писали:

    R>Но ведь древний RDS обеспечивает хорошую скорость отклика. Почему нельзя выполнять приложение на сервере, и содержимое окна программы передавать аналогично тому, как работает RDS?

    Ну так как я показал выше — ребята и изобрели свой RDP.
    Точнне, что-то сродни X-Window, Citrix MetaFrame (если я не путаю кто в той линейке за что отвечал) или Microsoft Application Virtualization (App-V) — т.е. у вас запускается виртуальное приложение где-то в облаке, а пользователю транслируется его интерфейс.

    Единственное, что здесь все рисуется в рамках браузера, но зато вам как разработчику придется писать отдельное приложение, а не просто виртуализовать свое имеющееся.
    Re[4]: Delphi для Web
    От: rfillipenko  
    Дата: 04.11.17 09:56
    Оценка:
    Здравствуйте, Михаил Романов, Вы писали:

    МР>Единственное, что здесь все рисуется в рамках браузера, но зато вам как разработчику придется писать отдельное приложение, а не просто виртуализовать свое имеющееся.


    То есть можно проектировать приложение, как с VCL без оглядки на ограничения html-разметки?
    Re[5]: Delphi для Web
    От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
    Дата: 04.11.17 10:36
    Оценка:
    Здравствуйте, rfillipenko, Вы писали:

    R>То есть можно проектировать приложение, как с VCL без оглядки на ограничения html-разметки?

    Я не очень понял, о каких вы ограничениях, если честно.

    Я подозреваю, что пока вы будете оставаться в рамках сценариев, которые продумывали разработчики фреймворка — всё будет работать более-менее нормально.
    Но надо будет сразу смириться, с тем, что:

    Ну и если возникнут проблемы придется влезать и в JS (а его там очень много: ExtJS — одна из первых JS GUI библиотек, они понаписат ьуспели изрядно), в собственный механизм uinGUI (который нигде не документирован)...

    И собственно вопрос — на сколько возможно (в описанных условиях) переиспользование кода (например от имеющегося Desktop приложения). Как по мне — практически никак.
    А раз так, то резонен следующий вопрос — а зачем тогда оно? Может всё же выделить небольшой ресурс на изучение параллельного стека и сделать нормальное веб-приложение?
    Re[5]: Delphi для Web
    От: loginx  
    Дата: 04.11.17 13:32
    Оценка:
    Здравствуйте, rfillipenko, Вы писали:

    R> без оглядки на ограничения html-разметки?


    чего чего, какие такие ограничения? скорее наоборот, безграничная свобода
    Re[18]: Delphi для Web
    От: turbocode  
    Дата: 04.11.17 18:05
    Оценка:
    T>>Это ж разные наборы VCL, где ты видишь единость?
    I>Это замена для стандартного VCL.

    Честно говоря не представляю как можно заменить десктопный TForm на вебовский без существенных изменений.

    I>Я подробностей реализации не знаю, но полагаю что этот набор VCL генерирует html/js фронтэнд. Т.е. вместо формы будут html страница.

    I>В некоторых случаях — это удобно. Но не во всех.

    Может для генератора отчетов это и сойдет, но для полноценных веб-приложений нужно намного больше чем тупая генерация HTML.
    Re[6]: Delphi для Web
    От: wamaco  
    Дата: 04.11.17 18:35
    Оценка:
    Здравствуйте, Михаил Романов, Вы писали:

    МР>А раз так, то резонен следующий вопрос — а зачем тогда оно? Может всё же выделить небольшой ресурс на изучение параллельного стека и сделать нормальное веб-приложение?


    Позвольте полюбопытствовать, а что в Вашем понимании "нормальное вэб-приложение"?
    просто интересно...
    Re[19]: Delphi для Web
    От: icezone  
    Дата: 04.11.17 22:12
    Оценка:
    Здравствуйте, turbocode, Вы писали:

    T>Честно говоря не представляю как можно заменить десктопный TForm на вебовский без существенных изменений.


    В чем проблема? VCL — это визуальная библиотека. Ее можно заменить на FireMonkey.

    T>Может для генератора отчетов это и сойдет, но для полноценных веб-приложений нужно намного больше чем тупая генерация HTML.


    Не спорю. Область применения ограничена. Смысл в том, чтобы оставить текущую бизнес логику и заменить только пользовательский интерфейс.
    Для нового проекта я бы не стал это использовать, а вот для старых — неплохая экономия времени.
    Re[6]: Delphi для Web
    От: icezone  
    Дата: 04.11.17 22:16
    Оценка:
    Здравствуйте, loginx, Вы писали:

    L>чего чего, какие такие ограничения? скорее наоборот, безграничная свобода


    Вот тут не соглашусь — ограничения есть везде. На десктопе HTML будет всегда проигрывать GDI в плане быстродействия.
    Re[7]: Delphi для Web
    От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
    Дата: 05.11.17 08:39
    Оценка:
    Здравствуйте, wamaco, Вы писали:

    W>Позвольте полюбопытствовать, а что в Вашем понимании "нормальное вэб-приложение"?

    W>просто интересно...
    С моей точки зрения, нормой для современных вэб-приложений является (с точки зрения пользователя):

    Для разработчиков также будут важны:

    Для того, чтобы этим критериям удовлетворят, для современных вэб-фреймворков является фактически нормой:

    Как-то так.
    Из всего выше перечисленного у uniGUI есть
    Re[7]: Delphi для Web
    От: loginx  
    Дата: 27.11.17 18:32
    Оценка:
    Здравствуйте, icezone, Вы писали:

    I>Здравствуйте, loginx, Вы писали:


    L>>чего чего, какие такие ограничения? скорее наоборот, безграничная свобода


    I>Вот тут не соглашусь — ограничения есть везде. На десктопе HTML будет всегда проигрывать GDI в плане быстродействия.


    это отчего ж? обоснования такого мнения не увидел...
    я вот в игре весь гуи в 3D на js — gdi не тянет плавность...
    Re[8]: Delphi для Web
    От: icezone  
    Дата: 29.11.17 01:01
    Оценка:
    Здравствуйте, loginx, Вы писали:

    L>это отчего ж? обоснования такого мнения не увидел...

    L>я вот в игре весь гуи в 3D на js — gdi не тянет плавность...

    ты не находишь, что это немного разные вещи? GDI — это окна с контролами, а 3D — это DirectX/OpenGL
    ты же не будешь на OpenGL делать текстовый редактор? для этого нужна HTML верстка и скрипты, которые будут дергать GDI/Direct2D
    т.е. добавляется лишняя прокладка между GUI и WinAPI
    Re[9]: Delphi для Web
    От: loginx  
    Дата: 29.11.17 13:08
    Оценка:
    Здравствуйте, icezone, Вы писали:

    I>Здравствуйте, loginx, Вы писали:


    L>>это отчего ж? обоснования такого мнения не увидел...

    L>>я вот в игре весь гуи в 3D на js — gdi не тянет плавность...

    I>ты не находишь, что это немного разные вещи? GDI — это окна с контролами, а 3D — это DirectX/OpenGL

    I>ты же не будешь на OpenGL делать текстовый редактор? для этого нужна HTML верстка и скрипты, которые будут дергать GDI/Direct2D
    I>т.е. добавляется лишняя прокладка между GUI и WinAPI

    Мне как прикладному прогеру пофиг, дай мне плавность, если для этого тебе надо переписать все на 3D — переписывай
    И это уже сделано с некоторой степенью удачи в WPF и Delphi
    И даже в Лисе я не знаю как там это сделано но сейчас, прямо сейчас я кладу контролы прямо на 3D канву и оно работает!
    т.е. одноременно 3D объект крутится, а надписи поверх него на html и все Ок. все работает.
    Re[9]: Delphi для Web
    От: loginx  
    Дата: 01.12.17 21:07
    Оценка:
    Здравствуйте, icezone, Вы писали:

    I>Здравствуйте, loginx, Вы писали:


    L>>это отчего ж? обоснования такого мнения не увидел...

    L>>я вот в игре весь гуи в 3D на js — gdi не тянет плавность...

    I>ты не находишь, что это немного разные вещи? GDI — это окна с контролами, а 3D — это DirectX/OpenGL

    I>ты же не будешь на OpenGL делать текстовый редактор? для этого нужна HTML верстка и скрипты, которые будут дергать GDI/Direct2D
    I>т.е. добавляется лишняя прокладка между GUI и WinAPI

    гуи элементы много разных на 3D сделаны в Дельфи и MS ВПФ, умеренное число гуи контролов закрывающих потребности игроделов 3D сделаны в юнити 3D
    ты что-то сильно отстал от жизни
    Re[10]: Delphi для Web
    От: icezone  
    Дата: 02.12.17 15:09
    Оценка:
    Здравствуйте, loginx, Вы писали:

    L>Мне как прикладному прогеру пофиг, дай мне плавность, если для этого тебе надо переписать все на 3D — переписывай


    о какой плавности ты все время говоришь?
    Re[10]: Delphi для Web
    От: icezone  
    Дата: 02.12.17 15:15
    Оценка:
    Здравствуйте, loginx, Вы писали:

    L>гуи элементы много разных на 3D сделаны в Дельфи и MS ВПФ, умеренное число гуи контролов закрывающих потребности игроделов 3D сделаны в юнити 3D

    L>ты что-то сильно отстал от жизни

    это какие контролы на 3D сделаны? кнопки, списки, меню?
    не нужны юнити и 3D в обычных приложениях от слова совсем
    Re: Delphi для Web
    От: freediver  
    Дата: 02.12.17 15:17
    Оценка:
    Здравствуйте, gangastyle, Вы писали:



    G>Image: webapp.png


    Что за старье из 1990 года пытаются втюхать? Я помню эту рыбу еще из книг про Парадокс 3.5
    Re[11]: Delphi для Web
    От: loginx  
    Дата: 21.12.17 21:38
    Оценка:
    Здравствуйте, icezone, Вы писали:

    I>не нужны юнити и 3D в обычных приложениях от слова совсем


    отрицание объективной реальности признак психического расстройства

    ты бы еще заявил. что колесо не нужно
    Re[12]: Delphi для Web
    От: icezone  
    Дата: 22.12.17 00:27
    Оценка:
    Здравствуйте, loginx, Вы писали:

    L>отрицание объективной реальности признак психического расстройства


    для кого придумали нативные контролы и чем они плохи?

    L>ты бы еще заявил. что колесо не нужно


    хороший пример — колеса нужны там, где что-то двигается, нафига они в неподвижных предметах?
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.