Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 105
от 25.10.2002, 13:20

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
Украина, Днепропетровск
О рассылке:
Задано вопросов: 308
Отправлено ответов: 685
Активность: 222.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


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

Jadd
Статус: Профессиональный
Общий рейтинг: 145.67
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.55
URL: Страничка обо мне и моих друзьях
[Подробней >>]
Aldr
Статус: Начальный
Общий рейтинг: 104.34
[Подробней >>]
 
Avl2k
Статус: Начальный
Общий рейтинг: 122.22
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 127.63
URL: Моя страничка
[Подробней >>]
Eugene
Статус: Доверительный
Общий рейтинг: 117.41
[Подробней >>]
 
Painbringer
Статус: Профессиональный
Общий рейтинг: 134.67
URL: Музычка, стишки и прочая дрянь
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 301. Ув. эксперты, помогите разобраться с API функцией Shell_NotifyIcon и типом NOTIFYICONDATA. С помощью... (ответов: 2)
Вопрос № 302. Преведствую Вас, о эксперты. Подскажите пожалуйста основные функции работы с реестром, и если можно... (ответов: 5)
Вопрос № 303. Ответ для dan! Доброе время суток, dan! Borland C++ это C++ от фирмы Borland Inc. имеет поддержку ка... (ответов: 1)
Вопрос № 304. Здравствуйте эксперты! Помогите разобраться в работе с формами (BuilderC++ 5.0). Совсем запутался. И... (ответов: 3)

Вопросов: 4, ответов: 11


 Вопрос № 301

Ув. эксперты, помогите разобраться с API функцией Shell_NotifyIcon и типом NOTIFYICONDATA. С помощью этой функции можно поместить иконку в System Tray. Заранее благодарю.



Вопрос отправлен: 21.10.2002, 18:46
Отправитель: GVC

[Следующий вопрос >>] [Список вопросов]

Отвечает Jadd

Здравствуйте, GVC!
www.rsdn.ru - там есть отличный экзампл по работе с иконками в трее. И купи себе MSDN. Лучшн описалова нету.

Ответ отправлен: 22.10.2002, 13:11
Отправитель: Jadd


Отвечает Gibbel

Приветствую Вас, GVC!
Приложение может добовлять, изменять и удалять значки на панели задач используя функцию Shell_NotifyIcon.
BOOL Shell_NotifyIcon(
DWORD dwMessage,
PNOTIFYICONDATA lpdata
);
dwMessage [in] Переменная типа DWORD, определяющая требуемое действие. Может принимать одно из следующих значений:
NIM_ADD Добавляет иконку в область индикаторов на панели задач. Значения hWnd и uID структуры NOTIFYICONDATA используются для последующей идентификации иконки при вызове функции Shell_NotifyIcon.
NIM_DELETE Удаляет иконку из области индикаторов на панели задач.
NIM_MODIFY Изменяет параметры иконки.
NIM_SETFOCUS (Только с версии 5.0 shell32.dll) Возврат фокуса панели задач. Приложение должно посылать это сообщение, когда оно закончило операцию интерфейса пользователя. Например, если было выведено контекстное меню, но пользователь нажал ESC, необходимо вернуть фокус панели задач.
NIM_SETVERSION (Только с версии 5.0 shell32.dll) Инструктирует панель задач вести себя согласно версии, указанной в поле uVersion структуры NOTIFYICONDATA. По умолчанию, это значение является нулевым, что говорит, что вы желаете пользоваться только возможностями версии 4.0.
lpdata [in] Адрес структуры NOTIFYICONDATA. Содержимое структуры зависит от значения dwMessage.
Для того, чтобы приложение могло реагировать на действия пользователя необходимо определить ответное сообщение для значка в момент его добавления к панели задач. Для этого используется элемент uCallbackMessage структуры NOTIFYICONDATA. Как только происходит событие, связанное с значком на панели задач, система посылает ответное сообщение в окно, указанное в элементе hWnd. При этом, параметр wParam определяет идентификатор этого значка, а lParam - сообщение, сгенерированное системой в ответ на событие.
Если необходимо более подробное описание - обращайся к MSDN - там все прекрасно описано, или, если будут вопросы - пиши: Gibbel@narod.ru



Приложение:

Ответ отправлен: 22.10.2002, 12:25
Отправитель: Gibbel


 Вопрос № 302

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


Приложение:


Вопрос отправлен: 21.10.2002, 19:19
Отправитель: YAR

[Следующий вопрос >>] [Список вопросов]

Отвечает Aldr

Приветствую Вас, YAR!
Function Description
RegCloseKey Releases a handle to the specified registry key.
RegConnectRegistry Establishes a connection to a predefined registry handle on another computer.
RegCreateKeyEx Creates the specified registry key.
RegDeleteKey Deletes a subkey.
RegDeleteValue Removes a named value from the specified registry key.
RegDisablePredefinedCache Disables the predefined registry handle table of HKEY_CURRENT_USER for the specified process.
RegEnumKeyEx Enumerates subkeys of the specified open registry key.
RegEnumValue Enumerates the values for the specified open registry key.
RegFlushKey Writes all the attributes of the specified open registry key into the registry.
RegGetKeySecurity Retrieves a copy of the security descriptor protecting the specified open registry key.
RegLoadKey Creates a subkey under HKEY_USERS or HKEY_LOCAL_MACHINE and stores registration information from a specified file into that subkey.
RegNotifyChangeKeyValue Notifies the caller about changes to the attributes or contents of a specified registry key.
RegOpenCurrentUser Retrieves a handle to the HKEY_CURRENT_USER key for the user the current thread is impersonating.
RegOpenKeyEx Opens the specified registry key.
RegOpenUserClassesRoot Retrieves a handle to the HKEY_CLASSES_ROOT key for the specified user.
RegOverridePredefKey Maps a predefined registry key to a specified registry key.
RegQueryInfoKey Retrieves information about the specified registry key.
RegQueryMultipleValues Retrieves the type and data for a list of value names associated with an open registry key.
RegQueryValueEx Retrieves the type and data for a specified value name associated with an open registry key.
RegReplaceKey Replaces the file backing a registry key and all its subkeys with another file.
RegRestoreKey Reads the registry information in a specified file and copies it over the specified key.
RegSaveKey Saves the specified key and all of its subkeys and values to a new file.
RegSetKeySecurity Sets the security of an open registry key.
RegSetValueEx Sets the data and type of a specified value under a registry key.
RegUnLoadKey Unloads the specified registry key and its subkeys from the registry.

MSDN

Ответ отправлен: 22.10.2002, 14:51
Отправитель: Aldr


Отвечает Avl2k

Доброе время суток, YAR!
http://delan.narod.ru/article/reg.htm
http://cprime.hypermart.net/rus/lesson/43.htm
P.S. Функции работы с registry являются частью Win32 API, а не Builder'а, хотя возможно в нем и есть какие-либо обертки для них.
С уважением, Avl2k.


Ответ отправлен: 22.10.2002, 11:10
Отправитель: Avl2k


Отвечает Jadd

Приветствую Вас, YAR!
RegCreateKeyEx
RegCloseKey
RegOpenKeyEx
и в таком духе. Описание в MSDN

Ответ отправлен: 22.10.2002, 13:04
Отправитель: Jadd


Отвечает Pablo

Добрый день, YAR!
В Билдере есть такой класс TRegistry так, что для работы с реестром можешь использовать его.

Ответ отправлен: 22.10.2002, 09:11
Отправитель: Pablo


Отвечает Eugene

Доброе время суток, YAR!
При инсталле 6-го Builder'a надо было ставить все хелпы, если ты так сделал, то когда зайдешь в меню HELP, там увидишь WINDOWS SDK. В этом хелпе по реестру есть куча инфы. Или пользуй, как тебе уже посоветовали, компонент TRegistry, лично мне этот компонент не нравится.


Ответ отправлен: 22.10.2002, 10:47
Отправитель: Eugene


 Вопрос № 303

Ответ для dan!
Доброе время суток, dan!
Borland C++ это C++ от фирмы Borland Inc. имеет поддержку как WinAPI функция так и классов OWL (Object Windows Library), которая имплементирует в себе как органы управлдения Windows так и другие классы. Главный недостаток OWL это то, что прогламмы на нем написанный имеют огромный размер.
Visual C++ это C++ от Microsoft имеет поддержку как WinAPI так и MFC(Microsoft Foundation Classes). Эти классы включаются в себя компоненты органов управления Windows и другие классы визуальны и не-визуальные. Основным недостатком этой библиотеки является сложность вызовов, сравнимая с WinAPI.
Delphi это продукт Borland использующий в качестве программирования язык Паскаль. В Дельфи встрона библиотека классов VCL(Visual Component Library). Эта библиотека почти недосттатков не имеет, если писать прогарммы на дельфах и не встаивать в программу используемые классы, то можно получить испольняемый файл малеьнького размера. Если встраивать VCL классы в программу, то такую программу можно переносить с машиы на машину и она будет рабюотать без внешней библиотеки VCL, но у программы увеличится объем ненамного, сравнимо с программами на MFC. У VCL есть достоинство перед MFC это простота вызово и использолвания самих VCL-классов.
Также у Borland есть такой продукт как Borland C++ Builder это тот же Дельфи, но сделанный на основе языка C++.
MySQL и MSSQL это комплекты (сервера) обеспечивающие доступ к базам данных. MySQL - бесплатынй, MSSQL - платный. MSSQL широко растпостранен и на нем можно делать вложенные выворки, также MSSQL поддерживает транзакции. MySQL не можнет делать вложенные выборки и не поддерживает транзакции, но эта система позволяет создавать кроссплатформенные приложения, также MySQL позволяет обойти вложенные выборки и транзации использованием дополнительных запросов и временной блокировки таблицы соответственно.
Если что соберешься изучить, то купи книжки лучше.



Вопрос отправлен: 21.10.2002, 19:43
Отправитель: Pablo

[Следующий вопрос >>] [Список вопросов]

Отвечает Jadd

Доброе время суток, Pablo!
Не стоит идеализировать Delphi и иже сним. Продукты от Борланд и компания - весьма удобные продукты, но, вкупе, они имеют огромный перечень недостатков(если тебе они неизвестны, это не значит, что их нет). Первый, и главный, недостаток - размер исполняемого фала. Ненадо говорить про консольные приложения, т.к. основная цель - полноценное оконное приложение для виндов. А минимальный размер exe подчас составляет сотни килобайт ( не так обстоят дела с MS VC++). У Билдера дела обстоят еще хуже. В 4-й версии Билдер не давал писать конструкции switch(), содержащие более 2-х (!) case(Выдавал ошибку синтаксиса). В 5-й версии постоянные проблемы с циклами, и это лишь единичные проблемы ( я уже не описываю траблы с вложенными with в Дельфях и гадским оптимизатором). Так что, господин адепт Борланда, не стоит так уничтожать продукты других фирм, к тому же, ИМХО для профессионального програзма на С++ я лично выбрал бы VC++, хотя и имею солидный опыт разработки на Borland средствах (ок. 10 лет).

Ответ отправлен: 22.10.2002, 13:22
Отправитель: Jadd


 Вопрос № 304

Здравствуйте эксперты!
Помогите разобраться в работе с формами (BuilderC++ 5.0). Совсем запутался. Имеем основную форму. При нажатии на кнопочку открывается еще одна форма, что-то типа диалога. При этом основная форма становится недоступной. После совершения каких-нито действий на этой второй форме она закрывается, активизируется основная форма и в основную форму передаються несколько параметров (т.е. значений) из второй формы. И как это все сделать?
Пытался сделать так: есть две формы, описанные в двух моделях, и переключаться между ними с помошью SetFocus(). Однако уже на этапе выполения сразу возникает какая-то фатальная ошибка, и прога дальше не работает. Help!!!



Вопрос отправлен: 22.10.2002, 10:10
Отправитель: Дмитрий

[Следующий вопрос >>] [Список вопросов]

Отвечает Eugene

Добрый день, Дмитрий!
Под твоё описание очень хорошо подходит ShowModal(). Из главной формы вызываешь 2-ю как
if(Form2->ShowModal() == mrOk) ...
А неглавную закрываешь таким образом:
ModalResult = mrOk;(mrNone, mrCancel и т.п.). Или на кнопке есть свойство ModalResult. Если хочешь другие данные возвращать, то сделай общую переменную в области public, и меняй её.


Ответ отправлен: 22.10.2002, 11:05
Отправитель: Eugene


Отвечает Jadd

Здравствуйте, Дмитрий!
Если вызываешь свой диалог методом ShowModal, или чем-то вроде этого, то все правильно. Если нужен эффект MDI приложения, то делается все совсем иначе.Вызывется форма тогда Show() методом.

Ответ отправлен: 22.10.2002, 14:17
Отправитель: Jadd


Отвечает Painbringer

Доброе время суток, Дмитрий!
попробуй Show() или ShowModal()

Ответ отправлен: 22.10.2002, 21:55
Отправитель: Painbringer



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (42)
C / C++ (27)
Perl (4)
Delphi (18)
Pascal (25)
Basic / VBA (9)
Java / JavaScript (11)
PHP (7)
MySQL / MSSQL (11)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (24)
"Железо" (32)
Поиск информации (14)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (12)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (7)
КоАП (8)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное