Olen siirtymässä Visual Basici 6:sta (=ent. työnantajan lisenssi) VB2008:aan (=itse ostamani lisenssi) ja törmäsin yllättävään ongelmaan.
Kun VB6:ssa lisäsi formille esim. command-napin nimellä nimellä vaikka Command1. Sitten klikkasin sen aktiiviseksi ja kopioin sen leikepöydälle (Ctl-c) ja sitten klikkasin formin aktiiviseksi ja liitin (Ctl-v) niin ohjelma kysyi englanniksi jotenkin että haluatko luoda objektista taulukon. Vastaan myöntävästi jolloin formilla on kaksi nappulaa nimiltään Command1(0) ja Command1(1)
mutta
kun yritän samaa VB2008:ssa niin se ei kysele mitään vaan lopputuloksena on napit Commandi1 ja Command2 vaikka mitä yritän.
Objektitaulukot ovat joskus hyvin tärkeitä. Ei onnistu Properties-ikkunassa Name-ominaisuuden muuttaminen : "Property value not valid".
Tähän on pakko olla joku ratkaisu jota en ole keksinyt.
Tietääkö joku ratkaisun. Muutenkin VB2008 on muuttunut hurjasti mutta muut pahimmat karikot olen kai selvittänyt (toistaiseksi). Yritin ensin hankkia VB6:lisenssin mutta sitä ei kai enää edes myydä, ehkä hyvä niin ...
Objektitaulukoita voi edelleen tehdä, mutta ei sillä graafisella piirto-säätimellä.
Vaan miten?
Tämä koodi lisää formille viisi nappia:
Private Sub Klikkaus(ByVal sender As Object, ByVal e As System.EventArgs) Dim tunnus As String = CType(sender, Button).Tag MsgBox("Painoit napista " & tunnus) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim nappi As Button Dim i As Integer For i = 1 To 5 nappi = New Button nappi.Text = "Nappi " & i nappi.Left = 10 nappi.Top = 10 + 40 * i nappi.Tag = i AddHandler nappi.Click, AddressOf Klikkaus Controls.Add(nappi) Next End Sub
Jep, idea tuli selväksi. Ikävä hieman että ei voi tehdä enää graafisesti mutta pääsen nyt konvertoimaan pari VB6-sovellustani 2008:aan. Mutta ent. työnantajani on TODELLA pulassa jos se aikoo luopua VB6:sta, heh-heh.
Kiitoksia
Btw, VB2008:han konvertoi VB6-sovelluksen automaattisesti kun sen avaa VB2008:ssa. (Ainakin muistaakseni.) Sitten se lisää niihin kohtiin todo-kommentit, joita se ei osannut suoraan kääntää tai joista se ei ole varma. Eli ne vaan sitten täytyy käydä läpi.
Toki voi olla järkevämpää tehdä se kokonaan uusiksikin. Mutta ilmeisesti haluat pitäytyä tiiviisti VB6:n toimintamalleissa, joten automaattinen raakakonvertointi voisi olla hyvä idea.
Tietääkö kukaan, onko VB6:n joku kolmas osapuoli tehny uuden kääntäjän tai jotain :) En haluaisi kääntää kaikkia VB6;lla tehtyjä hyviä koodeja vb 2003jne...
Mulle riittäisi hyvin vaan parempi /nopeampi 32bittinen kääntäjä.
VB6:n tapa käsitellä koko syteemiä sopii mulle paremmin kuin Vb2003 esim.
VB2003: esim on niin pitkiä komentorivejä, etten saa sillä mitään järkevää tehtyä, kun vb6:ssa kaikki meni käden käänteessä =)
Vai onko todella niin, että VB6 on historiaa, ja vaan opeteltava kuvien, äänien yms ohjelmointi uudestaan?
Mitäs vikaa VB6:n kääntäjän nopeudessa on ja sehän on 32-bittinen..
Aattelin, että nopeempaa... ei kai vb2003 jne olis edes tehty jos eivät olis nopeempia?
Kai se jossain asioissa voi olla nopeampi. Joissain asioissa selkeästi hitaampi.
Aika harvoin ohjelmista tehdään uusia versioita vain että ne olisi nopeampia. Usein käy päinvastoin, eli vanhemmat on nopeampia.
Aattelin jo, että turha jatkaa eräiden pelimoottorien tekemistä, koska ei kukaan enää edes käytä VB6:tta, ja pelkästään itelle se olis ollu turhan iso työ :)
Kiitos Grez, oli kiva kuulla että VB6 ei ole vielä ihan haudassa :)
Noh sanoisin silti, että jos vakavammin softaa teet, niin mitä nopeammin pääset eroon VB6:sta, sitä onnellisempi olet muutaman vuoden kuluttua. (tämä nimimerkiltä "yli 100 000 koodiriviä VB6:tta kirjoittanut")
Aihe on jo aika vanha, joten et voi enää vastata siihen.