• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablica typów w procedurze

Object Storage Arubacloud
+1 głos
227 wizyt
pytanie zadane 8 kwietnia 2021 w Visual Basic przez Piotr Nita Nowicjusz (130 p.)

Dzień dobry.

Mam problem v Visual Basic 6.

Postaram się dokładnie sprecyzować zagadnienie na przykładzie. Mam taki kod:

Public Type typBudowa
     Dom As Boolean
     Sklep As Boolean
     Kościół As Boolean
End Type

Public Budowy(10) As typBudowa

Public Sub Odwiedź (ByRef Budynek As typBudowa)

     ' ... kod

     Dim i As Integer

     For i=1 To 10
          If Budynek(i) Then
          ' ... kod
          End If
     Next i

End Sub

' wywołanie procedury:

Odwiedź Kościół(2)

Problem polega na tym, że wewnątrz procedury Odwiedź nie mogę sprawdzić wszystkich elementów tablicy Budynek ponieważ Budynek jest w tym wypadku odnośnikiem do drugiego elementu Kościół. Czy można to w jakiś sposób rozwiązać? Innymi słowy, że bez względu jaki typ budowy wywołam w procedurze będę mógł sprawdzić wszystkie elementy tablicy.

1 odpowiedź

0 głosów
odpowiedź 8 kwietnia 2021 przez VBService Ekspert (253,100 p.)
edycja 8 kwietnia 2021 przez VBService

Nie mam już dostępu do VB6 (piszę z głowy, czyli z niczego wink ), ale spróbuj tak

Public Sub Odwiedź (ByRef Budynek As typBudowa, ByVal Index As Integer)
 
     ' ... kod
 
     Dim i As Integer
 
     For i=1 To 10
          ' If i = Index Then
          If Budynek(i) = Budynek(Index) Then
          ' ... kod
          End If
     Next i
 
End Sub
 
' wywołanie procedury:
 
Odwiedź Kościół, 2

 

BTW, polecam przejść na VB.Netsmiley  ( vb6 v. vb.net )

1
komentarz 11 kwietnia 2021 przez Piotr Nita Nowicjusz (130 p.)

Dziękuję za odpowiedź, ale niestety to nie będzie działać. Problem w tym, że VB6 nie pozwala wywołać procedurę bez indeksu tablicy (już próbowałem). Jeżeli jest tablica o wielu elementach to musi być podany konkretny element. W innym przypadku wystąpi błąd 'Expected array'.Więc nie można się wewnątrz procedury odwołać do objektu jako takiego czyli ogólnie. Problem ten oczywiście rozwiązałem w inny sposób na zewnątrz procedury ale ciekawi mnie czy to w ogóle jest możliwe.frown

komentarz 22 maja 2021 przez Piotr Nita Nowicjusz (130 p.)

@VBService, Dlaczego miałbym przejść na VB.Net? Proszę o odpowiedź.

komentarz 22 maja 2021 przez VBService Ekspert (253,100 p.)

Napisałem,

polecam

a nie, że musisz, czy coś w tym stylu (po co ta pogrubiona czcionka?)

a tu jedno z wielu porównań dostępnych w "sieci": Difference Between Visual Basic and Visual Basic.Net (VB6 and VB.net)

1
komentarz 27 maja 2021 przez Piotr Nita Nowicjusz (130 p.)

To nie było pytanie złośliwe. Po prostu pytanie. A co do czcionki to szczerze nie pomyślałem nawet, że mogła by kogoś urazić czy coś w tym stylu. Myślę, że są wszyscy zbyt przewrażliwieni tym internetowym bontonem ale takie mamy dziwne czasy. Jeszcze raz podkreślam, że nie miałem nic złego na myśli. Jeżeli tak to zabrzmiało to przepraszam wink   

A jeżeli chodzi o VB6 to do moich potrzeb wystarczy choć oczywiście zawsze jest fajnie wypróbować coś innego. 

Dziękuję za odpowiedź i pozdrawiam laugh

P.S. Można w takiej odpowiedzi wstawiać zółte buźki?

komentarz 27 maja 2021 przez VBService Ekspert (253,100 p.)
edycja 27 maja 2021 przez VBService

Można wstawiać wink, gorąco Ciebie namawiam do przejścia na VB w wersji .NET, bo jest on w pełni dojrzałym środowiskiem programowania OOP (zobaczysz pozytywną zmianę, na początku może się wydawać "skomplikowany", biblioteki dotnet-owe oferują bogaty wachlarz możliwości), też długie lata "używałem" VB6 i tak np. najbardziej pamięta to, że jak chciałem "sięgnąć" za jego pomocą do zasobów sprzętowych, chodziło o generację dźwięku to musiałem robić "masę" odwołań do dll-ek systemowych, używać dużej ilości plików bas, ciężko było po jakimś czasie zapanować nad tym kodem, gdy się wracało do projektu po jakimś czasie przerwy. Ostatnia sprawa VB6 nie jest już wspierane przez MS-a.

 

P.S. W net etykiecie zdania (nie pojedyncze słowa - wskazanie na słowo "klucz" wink ) pisane pogubioną czcionką, ukazują, że internauta piszący je, jest np. poirytowany, zdenerwowany, jakby je wypowiadał to by to robił podniesionym głosem i tu nie chodzi tylko o ...

Myślę, że są wszyscy zbyt przewrażliwieni tym internetowym bontonem ale takie mamy dziwne czasy.

Pozdrawiam.  smiley

Podobne pytania

0 głosów
1 odpowiedź 466 wizyt
pytanie zadane 13 czerwca 2019 w Visual Basic przez respecto Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 132 wizyt
pytanie zadane 16 stycznia 2019 w Visual Basic przez tales Nowicjusz (210 p.)
0 głosów
2 odpowiedzi 300 wizyt
pytanie zadane 25 marca 2016 w Visual Basic przez Krst0 Obywatel (1,340 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...