Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Люди, косяк или глюк ? Добавлено: 03.11.04 20:55  

Автор вопроса:  -=sashOK=-
Имеется класс. У класса есть метод, который выводит инфу непосредственно в
Listbox. Методу передаётся : linklst as listbox (Object уже пробовал).

Теперь вопрос : Почему в одном проэкте (одна форма, здесь этот класс и родился) метод работает, а в дру
гом (множество форм, здесь он просто подключён)? Компилятор выводит : type mismatch.

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 04.11.04 04:48
Вопрос непонятен. Покажи код.

Ответить

Номер ответа: 2
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #2 Добавлено: 04.11.04 08:27
Совершенно непонятен. Быть может косяк с Public/Private. Гогда класс
создаешь внутри проекта, все объявления в нем, как и сам класс, проходят как
Private. Для компиляции и подключения к другим проектам тебе понадобятся
паблы. Написал мутновато, но и вопрос не лучше :)

Ответить

Номер ответа: 3
Автор ответа:
 -=sashOK=-



Вопросов: 10
Ответов: 19
 Профиль | | #3 Добавлено: 04.11.04 14:31
Метод :

Public Sub ShowItems(linklst As ListBox)
Open mfile For Input As #1

Do Until EOF(1)

    Line Input #1, tmp
    If Left(tmp, 3) = "#>>" Then
            i = 0
            ;Do While (eSys(i) <> Right(tmp, Len(tmp) - 3))
                i = i + 1
                If i > UBound(eSys) Then Exit Do
            Loop
            If i > UBound(eSys) Then linklst.AddItem Right(tmp, Len(tmp) - 3)
    End If
    
Loop

Close #1
End Sub

место где пашет :

Private Sub Form_Load()
lstItem.Clear
cdf.FileName = App.path & "\0inf.cdf"
cdf.TmpFile = App.path & "\tmp.cdf"
cdf.ReDimESys (2)
cdf.SetESys(0) = "str"

Call cdf.ShowItems(lstItem)
End Sub


место где глючит:

Public Sub Form_Load()
lstRead.Clear

If Dir(CDF.FileName) = "" Then Call frmMain.ShowError("Не найден файл:", frmMain.mfile & "|";)
CDF.ShowItems (lstRead)

Call AppColor
If frmMain.filBMP.ListCount <> 0 Then imgRec.Picture = LoadPicture(App.path & "\data\0.pic\BMPs\" & frmMain.filBMP.List(Rnd(frmMain.filBMP.ListCount)))
End Sub

(c) 2004 Copyright by -=sashOK=-

Ответить

Номер ответа: 4
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #4 Добавлено: 04.11.04 18:35
Ты бы хоть написАл, на какой именно строчке ошибка вылазит...
В первом варианте перед вызовом ShowItems у тебя задаются имена файлов и вроде как инициализируется массив; а во втором - при ошибке с именем файла ветка "THEN" выполняется ("Не найден файл"...), но потом всё равно вызывается ShowItems. М.б. в этом дело?

Ответить

Номер ответа: 5
Автор ответа:
 -=sashOK=-



Вопросов: 10
Ответов: 19
 Профиль | | #5 Добавлено: 04.11.04 18:39
Извените, люди, забыл!

Именно в строчке :

CDF.ShowItems(lstRead)

где lstread - listbox,
как уже говорил - type mismatch

Ответить

Номер ответа: 6
Автор ответа:
 -=sashOK=-



Вопросов: 10
Ответов: 19
 Профиль | | #6 Добавлено: 04.11.04 18:45
А с веткой THEN - я недоделал. Там программа отрубаться должна.

Да и в вопросе я забыл слово "не пашет" написать :)

Ответить

Номер ответа: 7
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #7 Добавлено: 04.11.04 18:53
Поставь на этой строчке breakpoint, как остановишься на ней - попробуй сходить дальше по F8: м.б. она тебя всё же пустит внутрь метода и там опять будет "спотыкач" на к.-либо строчке...

Ответить

Номер ответа: 8
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #8
Добавлено: 05.11.04 07:58
 Да, прикольно ты показал код. Из него можно узнать что угодно, но только не то что нужно.
 А что такое CDF не подскажешь? Желательно код как и где ты его обявлял. Если я конечно правильно понял и CDF - это и есть твой класс.

Ответить

Номер ответа: 9
Автор ответа:
 -=sashOK=-



Вопросов: 10
Ответов: 19
 Профиль | | #9 Добавлено: 05.11.04 13:29
Ну подумаешь немного смудил.

CDF - это экземпляр моего класса.
CDFdevice_fs - это и есть мой класс.

Public CDF As New CDFdevice_fs


Я и сам помудил немного - работает только одной форме.
Добавляешь ещё одну - на ней уже нет. По-разному объявлял
 - всёрарвно не пашет.

Ответить

Номер ответа: 10
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #10
Добавлено: 05.11.04 16:48
Знаешь, вышли лучше мне на мыло. Так будет в конечном итоге быстрее чем я из тебя буду по капле данные выжимать.

Ответить

Номер ответа: 11
Автор ответа:
 -=sashOK=-



Вопросов: 10
Ответов: 19
 Профиль | | #11 Добавлено: 05.11.04 19:00
Да ладно. Спасибо всем !

Сам управлюсь.

Фишка с breakpoint'ом не пройдёт,потому что VB сначала компилирует,а потом уже даёт пошагово выполнять программу. Так что он сначала ошибку выдаёт а потом уже типа пытается пошагово что-то сделать.

Ответить

Номер ответа: 12
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #12
Добавлено: 05.11.04 21:18
Млин, приятель. Извини, если лажу счас спорю, но у меня в этот кусок счас нет времени въезжать толком.
Просто заметил, что у тебя в строчке, где глючит не стоит Call перед вызовом процедуры, а это значит, что аргумент в скобки брать не надо. Собственно только в этом и есть разница между двумя кусками, кажись.
Может в этом проблема?

Ответить

Номер ответа: 13
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #13 Добавлено: 09.11.04 08:53
Собственно, не в скобках, а просто Call должен присутствовать в этой строчке. У меня такая проблема как-то была когда передавал тип как аргумент. Без Call - ни в какую, зато с ним пашет. 100% в этом проблема. Т.е.

Call CDF.ShowItems(lstRead)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам