Вниз
Скачать: CL | DM;

От 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 вся ветка

Скачать: CL | DM;



Память: 0.59 MB
Время: 0.013 c
1-70323
Silver_
2003-05-08 14:35
2003.05.22
EhLib SumList когда Master -> Detail


3-70154
Belkova
2003-05-02 11:09
2003.05.22
Скролинг


14-70487
The Dyckrill
2003-05-04 02:37
2003.05.22
ХЕХ


1-70224
fyty
2003-05-10 21:32
2003.05.22
Не работают функции ассемблера


1-70221
Гость
2003-05-11 07:29
2003.05.22
Функции




   Наверх