ООП vs. API

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

ООП vs. API

Сообщение Cyrax » 19.02.2004 (Чт) 8:37

а точнее "Объектно-ориентированный подход против Win32API"
вы, наверное, спросите: "А в чем собственно дело?"
а вот в чем... все вы знаете про диалоговое окно выбора папки в Windows (это когда отображается дерево каталогов вашего компьютера и вы выбираете куда будете копировать, перемещать файлы). все вы так же знаете про API-функцию SHBrowseForFolder. а теперь внимание... запускаем VB. идем в References (Project/References). ищем в списке библиотек "Microsoft Shell Controls And Automation" и... добавляем такой
Код: Выделить всё
Private Sub Form_Load()
  Dim objShell As Shell32.Shell
  Dim objFolder As Shell32.Folder2
 
  Set objShell = New Shell32.Shell
  Set objFolder = objShell.BrowseForFolder(Me.hWnd, "Select folder...", 0)
  If (Not objFolder Is Nothing) Then
    MsgBox objFolder.Self.Path
  End If
  Set objShell = Nothing
  Set objFolder = Nothing
End Sub


IMHO, это намного проще, чем заморачиватся на API, да и код короче

подробности можно почитать как всегда в MSDN
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 19.02.2004 (Чт) 14:08

Всё б клёво, тока в Shell32.dll появляется КОМ интерфейс после установки какой то верси и ИЕ
(((((
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 19.02.2004 (Чт) 14:15

MSDN писал(а):Minimum DLL version: shell32.dll version 4.71 or later
Minimum operating systems: Windows 2000, Windows NT 4.0 with Internet Explorer 4.0, Windows 98, Windows 95 with Internet Explorer 4.0

я так думаю большинство современных пользователей удовлетворяют этим требованиям... в конце-концов, дистрибутив 4 осла не такой уж и тяжелый, можно приложить к дистрибутиву своей программы
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 19.02.2004 (Чт) 14:56

А ещё можно написать класс с использованием API, а потом подключать его к проектам по мере необходимости. Тогда код получается совсем короткий:
Код: Выделить всё
dim dlg as new CdlgEx
dlg.Filter = "Файлы XML (*.xml)|*.xml|"
dlg.DialogTitle = "Открыть файл"
dlg.ShowOpen
blablabla=dlg.initdir

И, главное, никаких больше библиотек не надо :!:
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 19.02.2004 (Чт) 16:56

Tarik писал(а):А ещё можно написать класс с использованием API, а потом подключать его к проектам по мере необходимости. Тогда код получается совсем короткий:
Код: Выделить всё
dim dlg as new CdlgEx
dlg.Filter = "Файлы XML (*.xml)|*.xml|"
dlg.DialogTitle = "Открыть файл"
dlg.ShowOpen
blablabla=dlg.initdir

И, главное, никаких больше библиотек не надо :!:


например вот этот
Вложения
mdlCommonDialog.rar
(5.03 Кб) Скачиваний: 53


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList