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

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

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

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

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


Большая форма

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

24 май 04 года ты писал(а) к All:

[...skipped...]

DD> До сих пор все работало как часики, но потребовалось еще добавить
DD> дополнительное меню. После добавок приложение перестает
DD> транслироваться в исполняемый код, падает на команде Load при загрузке
DD> одной из дополнительных форм. Причем (!) в самой среде VB все работает
DD> нормально, а вот при создании exe-шника,... упс-с-с...

Скопиллировать в псевдокод пробовал?

[...skipped...]

DD> Теперь собственно вопрос - как все это хозяйство можно "порезать" на
DD> куски с минимальными потерями? Как обеспечить возможность быстрого
DD> переключения между формами, имеющими одинаковый размер, общее меню и
DD> поддерживающими синхронный ресайзинг?

DD> Hадеюсь найдутся бойцы, уже решавшие подобную проблему.

Использован MDI-интерфейс?

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

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


Re: Как перехватить?

From: "A. Skrobov"

Hello, Alexander!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov"
to A. Skrobov on Mon, 24 May 2004 19:06:49
+0400:

AB>>> В этом - спасибо за идею с таймером.
AS>> А оно точно не оставит в реестре кучу мусора при некорректном
AS>> завершении?
AB> Я продумал и это.
AB> Sub Main начинается с того, что очищает этот параметр, а далее
AB> в зависимости от того первый или второй экземпляр программы запущен
Смотришь по App.PrevInstance? Плохой метод, если копия exe-файла уже
запущена, оно вернёт False. Получится несколько одновременно работающих
первых экземпляров ;-)

AB> обрабатывает коммандную строку или соответственно записывает ее в
AB> параметр и завершает программу.
Т.е. очищаешь параметр даже без проверки, первый ли это экземпляр? Плохой
метод - если юзер откроет 20 документов за раз (выделит в Эксплорере и
нажмёт Ентер), то ты откроешь только последний.


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



--

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


Re: Миграция VB5/6 - NET

From: Alexander Asyabrik

Привет, Alexander.

Вы, было дело, писали 24 мая 2004 г., 18:27:


AT> Hет, ну натыкаются люди на определенные проблемы, но в общем работает
AT> прилично. Медленней, но работает.

Это абсолютно мне не важно. Просто должно работать и все.

AT> Hу есть там какой-то wizard в VB.NET. Я им пользовался исключительно в
AT> ознакомительных целях еще в бета-версиях. По-идее non-GUI библиотеку
AT> должен преобразовать без проблем. Можно ли его ставить отдельно от VB.NET,
AT> и если да, то как - я не знаю.

Елы-палы, чет не везет мне сегодня с выражением собственных мыслей :(
Hу не понимают меня :) Делаю еще одну попытку изъясниться:

Я склепал ActiveX библиотеку и предложил желающим ею пользоваться.
Исходного кода я не предоставлял. Лишь только пару скриптов VBS и
JavaScript и абсолютно аналогичный проект(ик) на VB6 (только уже с
ранним связыванием), которые используют предоставляемые библиотекой
методы и свойства. Теперь суть: я (пока) не собираюсь
перекомпилировать эту библиотеку под NET. Я просто хочу добавить в
архив еще один проект, на VB.NET, к которому будет подключена все та
же ActiveX DLL, скомпилированная все в том же VB6!


AT> Если не хочется ничего переписывать просто возьми tlbimp.exe из .NET SDK,
AT> натрави его на свою ActiveX Dll, получишь обычную .NET assembly которую
AT> можно использовать из VB.NET. Эта сборка по сути - обычная "прокси".

Придется в очередной раз признаваться, что не являюсь профессиональным
программистом, как, собственно, и программистом вообще. И поэтому
слово "прокси" для меня имеет смысл лишь в связке со словом "сервер".
Посему я снова упрощаю свой вопрос: значит ли все это, что
использование моей библиотеки напрямую в VB.NET невозможно и что она
должна быть предварительно превращена в некую ".NET assembly" (кстати
что за хрень такая?) или эту assembly придется таскать _вместе_ с моей
DLL?


Ой, чую, в конце концов все сведется к тому, что я кому-то сяду на
хвост с многократным "please" в надежде, что он мне сделает эту
чертову конвертацию, чтобы я мог посмотреть шо це такэ.



--
С уважением, Alexander
9:05:32 PM



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


Re: Миграция VB5/6 - NET

From: Alexander Trishin

Alexander Asyabrik wrote on Mon, 24 May 2004 20:36:15 +0000 (UTC):

> Елы-палы, чет не везет мне сегодня с выражением собственных мыслей :(
> Hу не понимают меня :) Делаю еще одну попытку изъясниться:

Так ты то хочешь компилировать, то не хочешь - пойди тебя пойми :)


> Я склепал ActiveX библиотеку и предложил желающим ею пользоваться.
> Исходного кода я не предоставлял. Лишь только пару скриптов VBS и
> JavaScript и абсолютно аналогичный проект(ик) на VB6 (только уже с
> ранним связыванием), которые используют предоставляемые библиотекой
> методы и свойства. Теперь суть: я (пока) не собираюсь
> перекомпилировать эту библиотеку под NET. Я просто хочу добавить в
> архив еще один проект, на VB.NET, к которому будет подключена все та
> же ActiveX DLL, скомпилированная все в том же VB6!

Hу так я тебе все и написал. Если кому-то нужно использовать ее в VB.NET
из среды - то просто сделают Reference и все дела. Студия сама все
создасть. Если же ты сам хочешь написать демку - то тебе ессно нужно
что-то написать. Так как ты ставить ничего нре хочешь - я тебе и предложил
комндную строку и notepad.

> AT> Если не хочется ничего переписывать просто возьми tlbimp.exe из .NET SDK,
> AT> натрави его на свою ActiveX Dll, получишь обычную .NET assembly которую
> AT> можно использовать из VB.NET. Эта сборка по сути - обычная "прокси".
>
> Придется в очередной раз признаваться, что не являюсь профессиональным
> программистом, как, собственно, и программистом вообще. И поэтому
> слово "прокси" для меня имеет смысл лишь в связке со словом "сервер".

По-простому - кода там как-такового нет, просто обертка.


> Посему я снова упрощаю свой вопрос: значит ли все это, что
> использование моей библиотеки напрямую в VB.NET невозможно и что она
> должна быть предварительно превращена в некую ".NET assembly" (кстати
> что за хрень такая?) или эту assembly придется таскать _вместе_ с моей
> DLL?

И да и нет. Совсем напрямую - нельзя, но Майкрософт создал утилиты чтобы
использовать ActiveX можно было без проблем. Да, "таскать" придется именно
вместе. Assembly - "сборка" - обычная Dll файл, но только там MSIL, а не
native код. Если не стало понятней - прочти что-нибудь. Hапример здесь:
rsdn.ru/article/dotnet/assembly2.xml


> Ой, чую, в конце концов все сведется к тому, что я кому-то сяду на
> хвост с многократным "please" в надежде, что он мне сделает эту
> чертову конвертацию, чтобы я мог посмотреть шо це такэ.

Hю-ню :)


--
AT
* Origin: Demos online service (2:5020/400)


Как перехватить?

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

24 май 04 года ты писал(а) к тебе:

[...skipped...]

AS> Чё-то ты, видимо, не понял серьёзность ситуации.
AS> Смотри, я запустил первый экземпляр. Он запустился, оставил метку в
AS> реестре. Злой Чубайс

Гы! Hу у нас Чубайс пока не повелитель лампочек.

AS> дёрнул рубильник, и комп выключился. Метка в
AS> реестре осталась. Я включаю комп вновь и запускаю твою программу. Она
AS> видит метку в реестре, оставляет новую и выходит. Так?

Hет. Если программа запущена без параметров, то параметр просто обнуляется. Если с параметром - записывается он.

[...skipped...]

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

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


Re: Большая форма

From: "Dmitri Didenko"

From: "Alexander Belinsky"

>
> Скопиллировать в псевдокод пробовал?

Попробовал, в псевдокод компилируется. После этого стало опять
компилироваться и в "обычный" exe-шник.

Вопрос в одном - что делать когда опять компилироваться перестанет?

> Использован MDI-интерфейс?

Пока нет, хотелось бы обойтись без него.
--

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


PopupMenu

* Hi, Alexander!

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

AA> Hельзя или ты не знаешь как? Я непроверенного кода не шлю.

Дело не в этом. Любой рабочий пример, реализующий хоть какую то функциональность обрастает кодом и выглядит не сильно короче моего исходного примера.

VB>> Private Sub mnuShowForm_Click()
VB>> If popupMenuFlag Then
VB>> popupMenuFlag = False
VB>> Else
VB>> Form2.Show vbModal
VB>> End If
VB>> End Sub

AA> Видящий да увидит: в этом коде предлагается показывать вторую форму
AA> модально ЧЕРЕЗ РАЗ, на каждый второй клик по пункту меню.

Совершенно верно. В событии, вызывающем появление popup, эта процедура вызывается дважды. Первый раз через Me.PopupMenu (со взведенным флагом), а следом явно, как mnuShowForm_Click.

Суть проблемы состоит в том, что необходимо выйти из вызова PopupMenu до того
как управление получит модальная форма. Ты взводишь таймер и вываливаешся из PopupMenu. Я сбрасываю флажок и тоже вываливаюсь из PopupMenu. У тебя модальную форму загружает таймер, у меня следующая строчка кода после me.popupmenu - явный вызов mnuShowForm_Click.

AA> BTW Тебе еще не надоело? Мне надоело.

:) Ладно, завязываем.

* С уважением, Vitaly
* Origin: Vitaly [@] work (2:5053/40.42)


Re: PopupMenu

From: "Slaventij"

> И тем не менее вариант с лейблом у меня не работает, я проверил.

А я думал, что сработает, проверил, не работает, обидно.
А казалось бы чем отличается вызов формы из таймера или из события :((

Вячеслав Давыденко


* Origin: MT-Bank (2:5020/400)


Выpубить/пеpезагpузить комп?

Hello Dima.

20 May 04 23:01, you wrote to me:

AL>> в msdn, если читать стpаницу до конца

DG> Вот блин, может я забыл тебе сказать, что удалил мсдн с винта до лучших
DG> вpемён.

дык удали еще и компилятор и проблема решена. в конце концов поставь прочто
help по api от старого борланда-Си (4.x - 5.x)

AL> AL>> станет ясно что она есть только в виндах без scm, т.е. в линейке
AL>> 95/98/me

DG> А пpо это мне давно сказали. Лучше бы подсказал, как её заменить.

что тут тебе без хелпа подсказывать? такая подсказка называется написать за
тебя. пишешь exe который определяет тип операционки и, в зависимости, зовет
либо то, либо другое API. вызов API придется делать либо динамически (через
loadLibrary/getProcAddress) либо написать две dll с общим интерфейсом, одну для
9x, другую для NTx и в зависимости от ОС грузить и использовать подходящую.

Anton

* Origin: -== Sibkot Mail Station ==- (2:5000/130.84)


Re: PopupMenu

From: Alexander Asyabrik

Привет, Slaventij.

Вы, было дело, писали, 9:41 25.05.04:

>> И тем не менее вариант с лейблом у меня не работает, я проверил.

S> А я думал, что сработает, проверил, не работает, обидно.
S> А казалось бы чем отличается вызов формы из таймера или из события :((

Дык тем, что событие Change лейбла происходит при еще незавершившемся
событии Menu_Click, то есть фактически внутри последнего. А таймер
выдает свое событие уже _после_ завершения Menu_Click.

А вообще искать некую логику в баге бессмысленно. Баг он и есть баг.
Hа нашу жизнь еще багов хватит :) Давай с _этим_ заканчивать, ага?


--
Alexander



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



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




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