Visual Basic 6.0 - Доступ к файлам
Re: Доступ к файлам
From: Alexander Asyabrik <belmis [@] mail.belpak.by>
Привет, Michael.
Вы, было дело, писали 16 ноября 2003 г., 2:41:
MZ> Товаpищи! Подскажите, как из VB получить доступ к файлам в винде?
MZ> (с помощью опеpации click пpи помощи кнопки).
С помощью операции KeyDown при помощи клавиши F1 на слове Open :))
--
С уважением, Alexander
2:00:33 AM
* Origin: Talk.Mail.Ru (2:5020/400)
Подключение к инетy
Есть такая задача.
Пpога всё вpемя pаботает, но если кто-то подключился в инет,
сpазy же выкидывает какое-то сообщение.
У кого есть мож какие идеи, как это сделать лyчше всего ?
* Origin: www.Hz-Saratov.narod.ru (2:5053/39.9)
имя процедуры как аргумент....
* Hi, Andrew!
* писАл Andrew Matrosov к All
* про "имя процедуры как аргумент...."
AM> Есть ActiveX dll, есть прога которая ее юзает.
AM> кусок проги:
AM> ..........
AM> myActiveXobject.test (progaSub)
AM> ..........
AM> public sub progaSub()
AM> msgbox "ura"
AM> end sub
AM> --------------------------------------------
AM> кусок Дллки:
AM> ............
AM> private sub test (tmpprogaSub as ???)
AM> call tmpprogaSub
AM> end sub
AM> ............
AM> --------------------------------------------
AM> т.е. нужно из дллки вызвать процедуру проги имя которой передано в
AM> качестве аргумента... может кто то понял что я хотел спросить? :)
Hету каллбеков в VB6. F1 на AddressOf.
========================================================================
Passing Function Pointers to DLL Procedures and Type Libraries
[...]
"Basic to Basic" function pointers are not supported. Pointers to Visual Basic functions cannot be passed within Visual Basic itself. Currently, only pointers from Visual Basic to a DLL function are supported.
========================================================================
* С уважением, Vitaly
* Origin: Vitaly [@] work (2:5053/40.42)
Re: ListView с иконками
DC>> Трабла. При заполнении ListView(report) большим количеством
DC>> записей с иконками, например все файлы на диске, VB
DC>> вылетает/вешаетс/out of memory.
SB> А как ты иконки берешь, где хранишь, и как освобождаешь ресурсы?
Вот так. Лист очищаю простым Clear. Может быть надо каждую иконку как-то убивать хитро,
но прога вешается еще при заполнении листа (>1000 записей)
Public Function AddIco&(nm$)
Dim fi As Long
Dim sfi As SHFILEINFO
fi = SHGetFileInfo(nm, SHGFI_USEFILEATTRIBUTES, sfi, LenB(sfi), SHGFI_ICON Or SHGFI_SMALLICON)
If fi = 0 Then Exit Function
If InStr(1, ILSet, "|" & sfi.iIcon & "|") = 0 Then
AddIco = FMain.IL.ListImages.add(, "f" & sfi.iIcon, IconToPicture(sfi.hIcon)).Index
ILSet = ILSet & IIf(ILSet = "", "|", "") & sfi.iIcon & "|"
Else
AddIco = FMain.IL.ListImages("f" & sfi.iIcon).Index
End If
End Function
Public Function IconToPicture(ByVal hIcon As Long) As IPictureDisp
If hIcon = hNull Then Exit Function ' тут все итак понятно:
Dim ipic As IPicture, picdes As PICTDESC, iidIPicture As IID
picdes.cbSizeofstruct = Len(picdes) ' длина передаваемой структуры
picdes.picType = vbPicTypeIcon ' тип заголовка, передаваемый в функцию
picdes.hgdiobj = hIcon ' Handle иконки
iidIPicture.Data1 = &H7BF80980
iidIPicture.Data2 = &HBF32
iidIPicture.Data3 = &H101A
iidIPicture.Data4(0) = &H8B
iidIPicture.Data4(1) = &HBB
iidIPicture.Data4(2) = &H0
iidIPicture.Data4(3) = &HAA
iidIPicture.Data4(4) = &H0
iidIPicture.Data4(5) = &H30
iidIPicture.Data4(6) = &HC
iidIPicture.Data4(7) = &HAB
' создаем картинку из icon handle
OleCreatePictureIndirect picdes, iidIPicture, True, ipic
Set IconToPicture = ipic
End Function
--
Всего наилучшего,
Dmitriy Chernishenko
* Origin: Hа том свое письмо заканчиваю... (2:5090/67.12)
Подскажите как найти что за форма зависает в памяти?
From: Андрей Y <andreyz [@] matchem.kth.se>
Такая проблема. При закрывании программы что-то остается в памяти компа
и видно в списке Applications при открытии Windows Task Manager. Если
программа запущена из-под VB6, то сам VB продолжает показывать что
программа работает, но нажатие на кнопку "пауза" никакого конкретного
оператора в программе желтым не выделяет. Думаю что где-то какая-то
форма была спрятана методом .Hide и к ней не было применено Unload.
Обнаружить что за форма с помощью систематического подхода: пройти
через всю систему взаимоотношений форм я физически не в состоянии - их
немеряно и написана прога была 10 лет назад, а потом дописывалась
(росла как кусты вобщем) - не помню ничего уже. Может есть способ
посмотреть что за форма висит?
--
Объяснение принципов помогает думать. Примеры учат обезьянничать.
Если надумаете е-мылить - лучше andreyz2000#hotmail com
* Origin: Talk.ru (2:5020/400)
Re: Подскажите как найти что за форма зависает в памяти?
From: "Dmitry Novikov" <dim [@] rnivc.kis.ru>
Всем привет!
"Андрей Y" <andreyz [@] matchem.kth.se> сообщил/сообщила в новостях следующее: news:bpcf9a$dt0$1 [@] host.talk.ru...
> Такая проблема. При закрывании программы что-то остается в памяти компа
> и видно в списке Applications при открытии Windows Task Manager. Если
> программа запущена из-под VB6, то сам VB продолжает показывать что
> программа работает, но нажатие на кнопку "пауза" никакого конкретного
> оператора в программе желтым не выделяет. Думаю что где-то какая-то
> форма была спрятана методом .Hide и к ней не было применено Unload.
В составе Visual Studio 6.0 есть тулса Spy++ Она всё покажет. Hайдешь
свой процесс и все его окна.
С наилучшими пожеланиями, Дмитрий
dim_nУБРАТЬrnivcРУССКИЕkisБУКВЫru
* Origin: Demos online service (2:5020/400)
размер массива
>\/
AZ> как узнать сабж?
Ubound(массив)
ну и LBound(массив)
>/\
* Origin: Attackie Interactive (2:5045/44.13)
Re: имя процедуры как аргумент....
From: "Andrew Matrosov" <chel [@] million.dp.ua>
Спасибо всем!
CallByName подошел как нельзя лучше,
перед этим правда подолбался с AddressOf,
но оказалось (читать сначало надо было доки,
а не эксперементировать:) что адрес то получить можно,
но вызвать по нему процедуру из своей проги - нельзя :(
(а может можно?)
* Origin: Alkar Teleport News Server (2:5020/400)
Re: Подскажите как найти что за форма зависает в памяти?
Мы где-то виделись, Андрей?
18 Nov 03 09:47:34 в RU.VISUAL.BASIC Андрей Y -> All:
АY> немеряно и написана прога была 10 лет назад, а потом дописывалась
АY> (росла как кусты вобщем) - не помню ничего уже. Может есть способ
АY> посмотреть что за форма висит?
См. коллекцию Forms.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: имя процедуры как аргумент....
Мы где-то виделись, Andrew?
18 Nov 03 16:54:31 в RU.VISUAL.BASIC Andrew Matrosov -> Andrew Matrosov:
AM> перед этим правда подолбался с AddressOf,
AM> но оказалось (читать сначало надо было доки,
AM> а не эксперементировать:) что адрес то получить можно,
AM> но вызвать по нему процедуру из своей проги - нельзя :(
AM> (а может можно?)
Увы, стандартных средств нет. Обычно в качестве нестандартных средств
используют либо CallWindowProc (она вызывает указанный адрес, подразумевая,
что у процедуры, чей адрес ей передается, ровно четыре DWORD-аргумента), либо
что-то самописное. Последнее есть и у меня. :) Оформлено в виде ActiveX Dll.
Кому надо - пишите.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)