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

RusFAQ.ru: Программирование на Basic / VBA


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 87
от 24.07.2005, 22:40

Администратор:Калашников О.А.
В рассылке:Подписчиков: 106, Экспертов: 8
В номере:Вопросов: 2, Ответов: 3


Вопрос № 23701: Здравствуйте! Я опять по вопросу субклассирования. Во-первых: я хочу спросить, что же возвращает CONTROL.PARENT.HWND? Манипулятор формы, но которую помещен, или контейнера? Во-вторых: Я хочу стпросить вот что: когда я пишу контрол, ...
Вопрос № 23706: Здравствуйте, уважаемые! Есть такая проблема: хочу сделать авторан для CD, т.е. среду для разработки этого самого авторана. Проблема в том, что я не знаю, каким образом уже готовой прогой можно скомпилировать новую аппликуху, которая уже будет го...

Вопрос № 23.701
Здравствуйте! Я опять по вопросу субклассирования.
Во-первых: я хочу спросить, что же возвращает
CONTROL.PARENT.HWND? Манипулятор формы, но которую помещен, или контейнера?

Во-вторых: Я хочу стпросить вот что: когда я пишу контрол, то потом в программе может быть его несколько копий. Так ведь? Но для субклассирования я должен указать SetWindowLong (hWnd,GWL_WNDPROC, адресс_процедуры) Адресс можно указать только в основном модуле, а он находиться в память в единственном екземпляре.
И все копии контролов будут вызывать одну и ту же процедуру? Допустим у меня несколько котролов размещенных на нескольких окнах.

Предположим я хочу сделать процедуру, которая ограничивает минимальные размеры онка SETXYMIN (X, Y). Это нужно делать только с окном, на которую помещен контрол. Допустим, отключать субклассирование уже не нужно, после вызова этой процедуры оно должно действовать всегда, но для каждой формы, чтобы установить разные значение X, Y! Помогите, пожалуйста с этом разобраться.
Отправлен: 19.07.2005, 00:49
Вопрос задал: Igor Vlad. (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Залетин Виталий Викторович
Здравствуйте, Igor Vlad.!
1. CONTROL.PARENT.HWND может означать и то и другое. У любого контрола есть свойство PARENT, указывающее на то, к чему принадлежит этот контрол, т. е. на чем лежит, его родителя. Для элемента UserControl это будет форма, на которой он расположен, а для всего, что на UserControl - будет UserControl.

2. Можно писать для каждой копии контрола отдельную функцию окна (процедуру)
Извращенно, но факт. Ежели она одна для всех, то вызывается она. Вы же в свойствах контрола укажите адрес процедуры.

3. Ограничивать размеры окна через сабклассинг - извращение (но это только мое мнение). Не легче ли написать, например, так:
Private Sub Form_Resize()
If Form.width<1000 Then
Form.width=1000
End if
If Form.height<1000 Then
Form.height=1000
End if
End sub
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: 3-ий класс)
Отправлен: 23.07.2005, 11:33


Вопрос № 23.706
Здравствуйте, уважаемые!
Есть такая проблема: хочу сделать авторан для CD, т.е. среду для разработки этого самого авторана. Проблема в том, что я не знаю, каким образом уже готовой прогой можно скомпилировать новую аппликуху, которая уже будет готовым автораном. Я так понимаю, что надо к проге цеплять компилятор, т.е. всегда тащить его с собой, при этом еще и создавать исходные коды для нового приложения. Если есть какие-либо соображения и навыки, уделите пару минут для разъяснения!
С уважением, *Kot*
Отправлен: 19.07.2005, 08:52
Вопрос задал: *Kot* (статус: Студент)
Всего ответов отправлено: 2

Отвечает: _Виталий
Здравствуйте, *Kot*!
Навыков по вопросу не имею, но соображения свои напишу.
Ну в принципе да, тащить компилятор или проверять на машине(на которой создаётся авторан) установлен ли VB, и еспользовать его для создания нового приложения.
Еще, как вариант, можно сделать один autorun.exe и в нём создать обработчик файла-настройки. Т.е. Когда юзер создаст свой авторан в твоём "генераторе авторанов", он окончательно получает уже готовый autorun.exe и файл-настройки, который был сгенерирован. Конечно я не знаю какие требования и какие автораны ты хочешь создавать. Начальный пример файла-настройки:

Title="Моя крутая игрища"
Text="Закройте все проги и жми далее.."
NextBtn="Далее"
...
...

Т.е. когда запускается autorun.exe он читает строку из Title и ставит Me.Caption = title, затем общий текст Label1.Caption=Text, который загружен из строки Text. Кнопка принимает свойство Caption из строки NextBtn и т.д. Ну я думаю ты понял, что я имел ввиду :-)
Удачи!
Ответ отправил: _Виталий (статус: 4-ый класс)
Отправлен: 19.07.2005, 20:06

Отвечает: Залетин Виталий Викторович
Здравствуйте, *Kot*!
А чем Вам Бейсик не подходит? Пишите то, что должно появиться на экране при авторуне, потом впишите его запуск в файлик autorun.inf и все. Чего напрягаться лишний раз?
А разработка компилятора дело почти неблагодарное...
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: 3-ий класс)
Отправлен: 23.07.2005, 11:21
Оценка за ответ: 1
Комментарий оценки:
Я делаю утилиту создания авторанов, а не просто авторан! Читайте внимательно!


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

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

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicvba
Отписаться
Вспомнить пароль

В избранное