Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Вниз

От VCL к API   Найти похожие ветки 

 
Юрий Зотов   (2003-04-30 21:57) [40]

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

А вот по этому пункту все же возражу:

> DVM © (30.04.03 12:54)
> Современные языки программирования (особенно Delphi)
> навязывают такой стиль программирования (проектирования?),
> что программирующий в ней (а особенно новичок) порой не имеет
> даже представления о том как работает его программа, как
> работает система, как работает процессор.

Delphi все же никому ничего не навязывает. Она экономит нам время, только и всего. Но при этом вовсе не заставляет пользоваться исключительно VCL. Хотите - пишите на чистом API, хотите - на Ассемблере. И все это в среде Delphi.

А новички... так на то они и новички, чтобы мало что понимать. Delphi здесь, вроде как, тоже ни при чем.


 
Ihor Osov'yak   (2003-04-30 22:15) [41]

Да, что наиболее парадоксально. Вот, Игорь Шевченко, как бы противник програмировать на апи :-). Здесь также есть несколько стороннников апишного пронрамммирования.

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


 
Плохой человек   (2003-04-30 22:49) [42]

Из будущего:

HEX is DEAD.
ASM is DEAD.
API is DEAD.
ZIP is DEAD.
BYTE is DEAD.
BASIC is DEAD.
OLMER is not DEAD.


 
Ihor Osov'yak   (2003-04-30 22:56) [43]

в дополнение - под сторонником vcl подхода я понимал Шевченко...

2 Плохой человек (30.04.03 22:49)

ну, несколько преувеличено..

да, и если мне пямять не изменяет - ником "Плохой человек" кто-то несколько дней назад грозился больше не пользоваться...


 
Плохой человек   (2003-04-30 22:58) [44]

>да, и если мне пямять не изменяет - ником "Плохой человек" кто-то несколько дней назад грозился больше не пользоваться...

Память тебе изменяет. Это я грозился не пользоваться никами Anatoly Podgoretsky, Supreme-2, Kostya2000 и, конечно же, Ihor Osov"yak, но увы... никак. не отпускают. я не преувеличил, всё сказанное - правда.


 
Ihor Osov'yak   (2003-04-30 23:02) [45]

Ну пользуйся. На здоровье. может полегшает.


 
Song   (2003-04-30 23:32) [46]

Я вклинюсь немножко в беседу, хотя наверно уже и поздно.
Я считаю, что АПИ должна быть дополнительным средством при программировании, а не основным. Я не понимаю людей, которые делают всё через АПИ, например, создают окна через CreateWindow(Ex), потом вынуждены делать к ним обработчики сообщений и все остальные аттрибуты.. Да, я согласен, размер кода получается меньше, но нужно ли оно? Точнее оправдано ли? Размеры современных жёстких дисков и памяти впечатляют. Я напишу прогу на VCL"е. И пусть exe файл будет 2М, например. И что? Он не запустится? Он прекрасно будет работать. Напрасно думают люди, особенно новички, что VCL - "глючная вещь". На самом деле это зависит от программиста.
Есди всё так, тогда какие причины использования АПИ? Только что повторение - мать учения основ работы ОС, написав при этом в десятки, сотни строк больше, чем написав тоже самое, решая через VCL?
VCL был сделан как средство для быстрого и оптимального средства разработки, коим он и стал. И если программист "не такой крутой кодер на АПИ" это ещё ни о чём не говорит. Тут зависит прежде всего от способностей программирования вообще, а не от того владеет программист АПИ или нет.
Вообщем моё мнение таково: АПИ лучше применять, когда нужно тонко "подрегулировать" тот или иной механизм работы алгоритма в программе, но никак не для программирования всей задачи в целом.


 
nikkie   (2003-05-01 00:21) [47]

>Ihor Osov"yak
>Могу затеять идиотский спор

Согласен, что спор идиотский, так что не будем... Непонятно только зачем тогда это писать.

>в дополнение - под сторонником vcl подхода я понимал Шевченко...
Ну дополни тогда, кого ты имел в виду под сторонником api.

Я вообще не понимаю, зачем начали сделали из ветки спор, что круче - программировать на vcl или на api. Не надо только кивать на DVM, типа это он начал. Я когда читал такие эпитеты, как "идиотизм", "извращение", "садомазохизм" - тоже хотел резко отреагировать. Автор ветки сказал, что хочет перейти на апи. Ничего плохого в этом нет. Что он имел ввиду, говоря "полностью" - давайте не будет гадать. Может он хотел перейти от использования 1 api функции на весь проект на vcl к написанию всего проекта на api. Я считаю - желание похвальное, этот опыт скорее всего лишним не будет.

>Song
>Я считаю, что АПИ должна быть дополнительным средством при программировании, а не основным. ... Я напишу прогу на VCL"е.

Такое ощущение, что многие выступающие считают, что кроме дельфи ничего больше не существует. А ведь есть разные причины, которые заставляют использовать иные средства разработки. Например, требования работодателя. Например, особенности задачи. Вы писали на дельфи для pocketPC? Вы пробовали писать MMC snap-in"ы на дельфи? Зачем использовать дельфи для программирования полноэкранной игры на DirectX или OpenGL?


 
Malder   (2003-05-01 00:34) [48]

Игорь Шевченко,по моему, вы так увлеклись доказательством, что VCL - отличная вещь, что начинаете перегибать палку. Никто и не спорит, что эта библиотека сильно упрощает жизнь. Но не надо косвенно призывать не изучать Win Api. Это нужно и полезно каждому Windows программисту. А если все сказанное вами и есть истина, то нафига ВЫ изучали win32 API, нафига ВЫ читали Рихтера ? Вот вы сами знаете и считаете, что другим это знать необязательно ?

Насчет "Реальный пример нужности такой задачи можешь привести ?" - вы и сами приведете кучу разных примеров. Да, конечно, "это не требуется в реальных задачах или требуется только для узкоспециализированых программ и т.д.", но это отговорки. Ведь некоторые и о сообщениях в windows ничего не знают ! И начинается "как мне узнать, когда курсор покинул xyz окно" - а когда видят код - челюсь вытягивается. Или пример с кодом, защищающем от повторного запуска программы (с мьютексами) - где это в VCL реализовано ?


 
Плохой человек   (2003-05-01 00:55) [49]

Ребята, API - давно забытое прошлое.


 
Ihor Osov'yak   (2003-05-01 00:59) [50]

2 nikkie © (01.05.03 00:21). Мой пост был связан только с теем, что у очень многих есть желание броситься в дебри апи, не разобравшись с элементарными вещами. Плюс выше неоднократно высказывалось мнение, что работа на vcl мешает пониманию тонкостей работы системы. Имхо, эти вещи не связаны. И пример Шевченко я привел лишь только потому, так как человек с одной стороны как бы противник использования апи, а с другой - здесь не очень то много отыщешь людей с его уровнем знаний на уровне системы.

>Такое ощущение, что многие выступающие считают, что кроме дельфи ничего больше не существует.

Не совсем понимаю почему такой вывод.


2 Malder © (01.05.03 00:34)

Если я в своем проекте пишу три - четыре строчки для работы с мьютексом, то что из этого следует? Что VCL от этого ущербней стала?





 
Материнская зарплата   (2003-05-01 03:20) [51]

Я задал вопрос потому, что надо уменьшить размер откомпилированного файла и увеличить скорость программы. Но честно говоря, не ожидал такого базара :). Единственное, что мне пригодилось, это ссылки от DVM, за что ему БОЛЬШОЕ СПАСИБО!


 
Malder   (2003-05-01 12:11) [52]

Если я в своем проекте пишу три - четыре строчки для работы с мьютексом, то что из этого следует? Что VCL от этого ущербней стала?

Это означает, что ты пишешь на чистом WinApi. А чтобы писать на чем-нибудь - это надо знать. Я про это говорил и это очевидно. Можешь еще раз пеечитать мой пост.


 
Ihor Osov'yak   (2003-05-01 12:24) [53]

2 Malder © (01.05.03 12:11)

Нет, я пишу на VCL. И даже если иногда я использую слабодокументованные вещи на которые самостоятелно приходится переводить соотв. хидера от sdk или ddk, то я не счинаю, что я пишу на апи. Ибо каркас приложения все-же VCLный.

Пожалуй, есть две оговорки. Я никогда не пользуюсь Синхронайз, ибо там можно получить больше проблем, чем облегшения работы. Также когда-то в серцах сказал себе, что один из следующих win32 сервисов все же будет сделан без этого делфийского шаблона для сервисов. Имхо, каркас для сервисов там действительно реализирован не самым удачным образом.


 
Song   (2003-05-01 13:07) [54]

>>Это означает, что ты пишешь на чистом WinApi.

Ok, а по-твоему тогда как написано следующее? На "чистом" АПИ? :)

Procedure TForm1.Button1Click(Sender: TObject)l
Begin
With Edit1 Do SetWidowLong(Handle,GWL_STYLE,GetWindowLong(Handle,GWL_STYLE) or ES_NUMBER);
End;

?


 
Malder   (2003-05-01 13:36) [55]

Давайте разберемся в терминологии. Чистым WinApi я называю код, где непосредственно вызываются функции, описанные в MSDN и никакие другие функции, описанные в других библиотеках. С этой точки зрения я ошибся:

Это означает, что ты пишешь на чистом WinApi

Хотел сказать, что ты пишешь на WinApi. И его поэтому надо знать. Писать ВЕСЬ проект только на WinApi я никогда не призывал и призывать не буду. Я о том, что Игорь предлагал другую крайность - вообще не изучать WinApi.

> Я и не буду пытаться. Но уметь сделать что-то без VCL надо!


Зачем ? Реальный пример нужности такой задачи можешь привести ?


Разговор идет о том, что вовсе и не надо уметь что-то делать без VCL, что, по моему, явная ахинея.


 
Ihor Osov'yak   (2003-05-01 14:27) [56]

2 Malder © (01.05.03 13:36)
Давайте разберемся в терминологии.


Есть более корректный термин. С использованием Win32 АPI вызовов.
То есть, мы непосредственно вызываем функции, експортируемые модулями, которые образуют win32 подсистему. В
этом отношениии все функции, обьявленные в windows.pas будут win32 api-ишными, ибо на них нет никаких оболочек.

Еще пример. Я использую NtCreateFile. Говорить о том, что я использую Win32 API будет некоррекно, так как эта функция не входит в подмножество Win32 API. Хотя на NT системах Win32 функция CreateFile в конечном итоге обращается к NtCreateFile. Здесь более корректный термин будет - использую Native API.

Еще. "Програмирование на чистом API", имхо, подразумевает работу только с импортироемыми функциями, и такой подход несколько нерационален. Все равно в конечном итоге у вас появлятся аналоги sysutil, какие-то шаблонны для окон и пд и пп. В конце-концов, какой-то код для поддержки неких информационных структур, хотя бы тех же списков.. То есть мы снова сделаем велосипед. Только свой. И как правило, хуже. Конечно,есть исключения в виде приложений, состоящих из одного окна и двух контролов, и может быть, что у вас будет несколько дней времени и воодушевления повозится с этим делом. Ради бога. На здоровье. Но как правило, после первого раза желание пропадает. Еще до окончания работы с проектом.

Далее. С целью обучения намного рациональнее проштудировать того же Рихтера, покопатся во внутренностях VCL, чтобы понять, как там практически реализовано то, о чем читали в Рихтера.


Да. По поводу MSDN. Там много чего написано. И не только о Win32API.


 
JibSkeart   (2003-05-01 14:34) [57]

Пееходи на VC++ и никаких проблем
будешь себе писать на вин АПи,а MFС можете даже несмотреть вам же нужен АПИ :)


 
Malder   (2003-05-01 15:54) [58]

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

Вот ты и сказал то, что говорю я, только другими словами.

Вообще мое замечание относилось к Игорю Шевченко, не понимаю чего ты набросился. Наверное, причислил к противникам VCL и теперь пытаешься заклеймить :)))

Еще раз повторю - Игорь косвенно призывал не изучать API, мол, от этого никакой пользы нету. А я говорю, что польза есть. ВОТ И ВСЕ, ЧТО Я ХОТЕЛ СКАЗАТЬ.

Рихтер - это и есть API.

внутренностях VCL, чтобы понять, как там практически реализовано то, о чем читали в Рихтера

Если ты не собираешься изучать Win32API, не понимаю, как ты собираешься читать Рихтера и уж тем более разбираться во внутренностях VCL, если они все в конечном итоге используют win32API.

Могу затеять идиотский спор, что сторонник vcl подхода даст форы любому здешнему сторонику апи на предмет знания и понимания внутренних механизмов.

Неужели ты никак не можешь понять. НИКТО НЕ ПРЕДЛАГАЕТ ОТКАЗЫВАТЬСЯ ОТ VCL. Но на нем нельзя сделать ВСЕ в windows, как это можно сделать на win32 API. Поэтому знать win32 API надо !

Меня вообще удивляют люди, которые сами читали Рихтера и разбирались во внутреннем устройстве windows призывают других программистов этого не делать, а ограничиваться (да, да, ограничиваться) VCL


 
VEG   (2003-05-01 18:37) [59]

Вот я люблю писать проги только на WIN & DIRECTX API:P


 
Материнская зарплата   (2003-05-03 04:45) [60]

Ну, кто еще даст ссылок?


 
Mop   (2003-05-04 03:35) [61]

2 VEG
Уважаю...


 
p77   (2003-05-04 04:05) [62]

Прежде чем переходить на WinAPI, почитали бы MSDN (или хотя бы Win32*.hlp в составе Дельфи). Когда прочитаете, тогда флаг Вам в руки, барабан на шею и марш навстречу электричке:). Удачи.
С уважением,


 
Материнская зарплата   (2003-05-04 05:00) [63]

Уже почитал, и захотел!


 
Ihor Osov'yak   (2003-05-04 11:14) [64]

Ух ты:

p77 © (04.05.03 04:05)
Прежде чем переходить на WinAPI, почитали бы MSDN

Материнская зарплата (04.05.03 05:00)
Уже почитал, и захотел!

Прыть однако, мне бы такую...

Есть подозрение, что некий злобный буратин со Ставрополя здесь уважаемую публику разводит..
Но может ошибаюсь - пополнение в полку Supreme прибыло..


 
Anatoly Podgoretsky   (2003-05-04 11:36) [65]

Помнится был вопрос - мама бухгалтер
не это ли?



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.59 MB
Время: 0.008 c
14-70462
Antosik
2003-05-01 19:09
2003.05.22
Отчёты в дельфях


1-70337
tytus
2003-05-09 10:02
2003.05.22
иконка


1-70276
TALLA_
2003-05-12 16:15
2003.05.22
Как сделать некоторые Rows(или ячейки)в StringGrid другим цветом?


3-70123
Ann
2003-04-30 13:06
2003.05.22
EhLib 2.0


14-70507
Студент
2003-05-04 20:09
2003.05.22
Где скачать Borland C или Turbo C





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский