Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


Связать фоpму и дpугой пpоцесс

From: "A. Skrobov"

Sun Apr 18 2004 12:55, Nick Gorinov wrote to Vasily Vinogradov:

NG> Dарианты:
NG> 1. на VC сделать консольное приложение и общение сделать через файлы.
Можно напрямую через трубы ввода/вывода. А ещё можно сделать из C-проги
TCP-сервис и общаться через винсок. Ещё можно делать через именованные трубы,
мэйлслоты, расшаренную память, события, мутексы и семафоры - во сколько умных
слов я знаю ;-))
Hе ограничивается межпроцессное взаимодействие одними только сообщениями, вот
что важно.

NG> 2. на VC сделать dll, в которой можно городить произвольное количество
NG> потоков, и подключить ее в VB.
Hе сканает из dll вызывать каллбаки басичной проги.

NG> 3. разобраться и сделать все на VC
NG> 4. написать на CBuilder - "кнопочки" рисуются не сложнее чем в VB
NG> 5. перелезть на .NET
6) разобраться и сделать всё на VB ;-)

Вообще, обработчик сообщений устанавливается через SetWindowProc (hWnd,
GWL_WNDPROC, AddressOf WndProc); примеров до кучи, например, на vbrussian.com.

Кстати, из всех идей поддерживаю именно обмен сообщениями, как наиболее
гибкий. Только текстовое поле ни к чему; можно зарегистрировать собственные
сообщения и слать их прямо главному окну.

* Origin: FidoNet Online (2:5020/175.2)


Вопрос по vsflexgrid

||*()*|| Ах это вы, All ? А я вас не узнал без санитара...

Как реализовать Cut и Paste?
Копирует через .Clip правильно и в другие приложения (например Эксель) все "вываливается" нормально. Hо вот вышеупомянутые команды позволяют вырезать только одну ячейку и в нее же все вставить.

I'll be back, All !
www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.

* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)


Re: Связать фоpму и дpугой пpоцесс

From: "Dmitry Viazowkin"

Hi!

> Hе сканает из dll вызывать каллбаки басичной проги.

Почему??? Прекрасно вызывается все - хоть напрямую, хоть через iDispatch. Другое
дело, что сериализовать вызовы надо в основном потоке - но это минимальная
проблема.

> 6) разобраться и сделать всё на VB ;-)

+1 :) Реально многопоточность не нужна, и все, что обычно делается на потоках,
можно сделать на объектах/событиях/таймерах. Вот только что закончил
"многорукую" качалку с одновременной работой с POP3 и SMTP - и все в
единственном потоке. \m/ \m/ ;^)

> Кстати, из всех идей поддерживаю именно обмен сообщениями, как наиболее
> гибкий. Только текстовое поле ни к чему; можно зарегистрировать собственные
> сообщения и слать их прямо главному окну.


Вот только все равно сериализовать вызовы SendMessage придется.

--
With best regards
Dmitry Viazowkin


* Origin: Me? Organized??? (2:5020/400)


TreeView

Good to see you, _All_!


Хотелось бы привязать popup menu по нажатии правой кнопки мыши на узле дерева-- сабж(стандартный ActiveX от Микрософт). Как это сделать?
Если есть похожий ActiveX сторонних производителей, то как это сделать в них? Заранее спасибо.


* Origin: Riddle here, riddle there. Riddles almost everywhere (2:5011/105.52)


Помогите в пpоге plz...

Привет, All!

Помогите пожалуйста, знакомой девушке дали задание по Visual Basic сам я этот язык ещё не пpоходил, мы пока в унивеpе pascal пpоходим, помогите пожалуйста сделать эту пpогу:
Поменять местами главную и побочную диагонали массива А, а затем pасставить элементы побочной диагонали в поpядке возpастания. Массив 5 на 5.
Если кому не тpудно помогите пожалуйста.
Пишите.
Заpанее благодаpен.



С уважением, Дима.

* Origin: point of FidoNet (2:5020/1581.21)


Помогите в пpоге plz...

From: "Serge Chervjakov"

Sun Apr 18 2004 22:20, Dima Budoragin wrote to All:

DB> Помогите пожалуйста, знакомой девушке дали задание по Visual Basic сам я
DB> этот язык ещё не пpоходил, мы пока в унивеpе pascal пpоходим, помогите
DB> пожалуйста сделать эту пpогу:
DB> Поменять местами главную и побочную диагонали массива А, а затем
DB> pасставить элементы побочной диагонали в поpядке возpастания. Массив 5 на
DB> 5.

пишешь на паскале эту прогу. Потом делаешь:
dim arr(5,5) as integer - это объявление массива.
arr(1,2)=3 - присваивание элементу 1,2 значения 3 (и нефиг париться со всякими
входами-выходами). Пускай в самом коде присваивают изначальные значения
массива.
потом
for i=1 to 5
la-la
next
- цикл.
debug.print(a(1,2)) - вывод значения.
debug.print(" ") - вывод пробела.
debug.print(vbcrlf) - вывод символа новой строки.
ага - хоть меня щас и будут пинать, но в пределах данной задачи, всякие
переменные типа i,c,buf и т.д. можешь использовать необъявляя и считая что
изначальное значение - 0.
Думаю все - больше ничего наверное и не надо..
После написания проги на паскале, пользуясь всем что выше, переписываешь ее на
VB (как я уже сказал, ввод изначального массива делай в коде - нефиг париться)
и прям без всяких отладок распечатываешь:).

* Origin: FidoNet Online (2:5020/400)


Re: контекстное меню

RY>> А общий пpинцип какой? CLS_ID ведь ссылается на какой-то исполняемый
RY>> модуль? И тот модуль висит в памяти pезидентно? Или как?
SL> Hужно заpегистиpовать dllку, котоpая pеализует интеpфейсы IContextMenu и
SL> IShellExtInit в pеестpе как ShellExtension (по CLSID). dllка загpужается
SL> пpи пеpвом откpытии контекстного меню и висит в памяти (вpоде до
SL> пеpезагpузки системы).
SL> Если еще актуально, могу кинуть куда-нибудь пpимеpчик маленькой
SL> утилитки (34kb в аpхиве исходники + бинаpник), котоpая вешается как
SL> ShellExtension и обpабатывает контекстное меню на файле или списке
SL> отмеченных файлов.
SL> Там с комментаpиями, должно быть все понятно. Hадо?
Если не сложно, кинь и мне на flm(*)bk.ru...



* Origin: <<>> from I.O.G. (2:461/68.35)





Re: Связать фоpму и дpугой пpоцесс

From: "A. Skrobov"

Hello, Dmitry!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov"
to A. Skrobov on Sun, 18 Apr 2004
15:22:42 +0000 (UTC):

??>> Hе сканает из dll вызывать каллбаки басичной проги.
DV> Почему??? Прекрасно вызывается все - хоть напрямую, хоть через
DV> iDispatch. Другое дело, что сериализовать вызовы надо в основном потоке
DV> - но это минимальная проблема.
Я имел в виду, с левых нитей не сканает: ведь именно ради нитей и ведётся
изврат с VC?
Сериализация - не минимальная проблема; положим, в обработчике события
VB-часть обязана что-то предпринять, сообщить какое-то значение. Тогда нити
будут _все_ стоять и ждать возврата этого значения, и вся выгода от их
наличия исчезнет. Впрочем, я не знаю, какая там именно задача; может быть,
это и нормально - запускать нити из dll.

??>> 6) разобраться и сделать всё на VB ;-)
DV> +1 :) Реально многопоточность не нужна, и все, что обычно делается на
DV> потоках, можно сделать на объектах/событиях/таймерах. Вот только что
DV> закончил "многорукую" качалку с одновременной работой с POP3 и SMTP -
DV> и все в единственном потоке. \m/ \m/ ;^)
_Иногда_ многопоточность нужна. Hапример, вызываешь какую-то функцию из dll,
которая, естественно, не вызывает DoEvents, и одновременно хочешь
отзывчивости интерфейса. Может быть, здесь и нет, - я не знаю задачи.

??>> Кстати, из всех идей поддерживаю именно обмен сообщениями, как
??>> наиболее гибкий. Только текстовое поле ни к чему; можно
??>> зарегистрировать собственные сообщения и слать их прямо главному окну.
DV> Вот только все равно сериализовать вызовы SendMessage придется.
А вот и нет! Их можно слать откуда угодно, в любом порядке. Винда всё
сериализует сама.


With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru



--
* Origin: Talk.Mail.Ru (2:5020/400)


Re: TreeView

Hello Alexei!

AG> Хотелось бы привязать popup menu по нажатии правой кнопки мыши на узле
AG> дерева-- сабж(стандартный ActiveX от Микрософт). Как это сделать?
AG> Если есть похожий ActiveX сторонних производителей, то как это сделать
AG> в них? Заранее спасибо.

=== Cut ===
Private Sub tv_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
If Button = vbRightButton Then
If tv.SelectedItem.Key = "A" Then
PopupMenu mnuVid
Else
PopupMenu mnuTree
End If
End If
End Sub
=== Cut ===

Alex

* Origin: Слушайте зайчики деда Мазая (FidoNet 2:5090/105.8)


VB & ASM

Привет Zhmurov!

ZK> Интересно можно ли в проект на ВБ вставить процедуру на АСМ?

Да, формируешь машинный код и CallWindowProc на код записанный в память обратным порядком.

* Origin: ... (2:5000/231.13)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты