Visual Basic 6.0 - Большая форма
Большая форма
||*()*|| Ах это вы, 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 !
http://www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.
* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)
Re: Как перехватить?
From: "A. Skrobov" <tyomitch [@] r66.ru>
Hello, Alexander!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov"
<fido7.ru.visual.basic [@] talk.ru>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 <belmis [@] mail.belpak.by>
Привет, 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 <trialFORSPAM [@] trishin.com>
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апример здесь:
http://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. !
http://www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.
* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)
Re: Большая форма
From: "Dmitri Didenko" <didenko [@] telus.net>
From: "Alexander Belinsky"
<Alexander.Belinsky [@] p99.f500.n4641.z2.fidonet.org>
>
> Скопиллировать в псевдокод пробовал?
Попробовал, в псевдокод компилируется. После этого стало опять
компилироваться и в "обычный" 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" <v.Davydenko [@] mt-bank.com>
> И тем не менее вариант с лейблом у меня не работает, я проверил.
А я думал, что сработает, проверил, не работает, обидно.
А казалось бы чем отличается вызов формы из таймера или из события :((
Вячеслав Давыденко
* 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 <belmis [@] mail.belpak.by>
Привет, Slaventij.
Вы, было дело, писали, 9:41 25.05.04:
>> И тем не менее вариант с лейблом у меня не работает, я проверил.
S> А я думал, что сработает, проверил, не работает, обидно.
S> А казалось бы чем отличается вызов формы из таймера или из события :((
Дык тем, что событие Change лейбла происходит при еще незавершившемся
событии Menu_Click, то есть фактически внутри последнего. А таймер
выдает свое событие уже _после_ завершения Menu_Click.
А вообще искать некую логику в баге бессмысленно. Баг он и есть баг.
Hа нашу жизнь еще багов хватит :) Давай с _этим_ заканчивать, ага?
--
Alexander
* Origin: Talk.Mail.Ru (2:5020/400)