lektion 1 PROGRAMMERING A VB6 UTVECKLINGSVERKTYGET VISUAL BASIC VB är ett applikationsutvecklingsverktyg med programmeringsspråket är basic, gränssnittet är grafiskt och man arbetar hela tiden med grafiska objekt. Med det menas att man startar med en form (ett tomt blad) och placerar ut objekt på det (objekt kan vara knappar, textrutor, listor, bilder m.m.). Sedan tilldelar man händelser(jämför med java t.ex vid klick) och egenskaper (t.ex storlek/färg/font) till objekten. Skapa katalogen VB6 i roten på din nätverkskatalog, skapa en underkatalog med namnet valuta, där du ska lägga ditt första projekt. Starta upp VB6, skapa ett projekt med en standard exe-fil (körbar fil). Med ikonerna här kan du visa kod eller formen. Välj save as i file ( save project as ) och spara ditt projekt i din nybildade valutakatalog, två filer som behövs för ditt projekt är *.vbp och *.frm. Det bör nu se ut ungefär så här. VERKTYG KOMPONENTER KÖR KNAPPEN FORM EGENSKAPS FÖNSTER VB lektion 1 pro_a.doc sida 1
OBS! Se till att rutan i tools/editor/require variable declaration är ibockad, då hjälper VB dig att hålla reda på felstavnigar m.m. Uppgift 1. Ditt första projekt blir att lägga ut kommandoknapp, textrutor och etiketter. Ditt program ska fungera så att du matar in två tal i varsin textruta, när du sedan trycker på knappen ska talen multipliceras och presenteras i den tredje textrutan. Label/etikett Nu kan vi provköra vårt program med kör knappen. Du kan skapa en exe fil som du kan ta med som ett färdigt program (kräver VB s runtime DLL:er). Textbox/textruta Knapp Image/bild Inget händer annat än att vår form visas upp, vi har ännu inte talat om för programmet vad som ska ske. Dubbelklicka på kommandoknappen och du kommer in i kodfönstret för default händelsen click, skriv in koden. Private Sub Command1_Click() Text3.Text = Text1.Text * Text2.Text End Sub De här raderna är proceduren som ska köras vid varje klick på knappen När du klickar på knappen ska talen i text1 och text2 multipliceras och visa i text3 Bygg ut med tre knappar för de övriga räknesätten. Lägg till en knapp för att rensa alla rutor ( text1.text = ). VB lektion 1 pro_a.doc sida 2
Vill du kommentera i koden använder du en enkel. Det som skrivs efter ett kommentartecken blir grönt och ses av programmet som kommentarer. Ett problem kommer att uppstå, du måste förstå skillnaden mellan en sträng och ett tal (strängar går ej att räkna med, genomgång på tavla). Ett tal kan se ut så här 12 675 34 67,8-5,00 och går bra att räkna med. En sträng kan se ut så här vanlig text 12 34 6,78 6.87 alltså det som ser ut som tal behöver ej vara tal utan kan vara strängar, strängar går normalt inte att räknas med utan att konverteras till tal. Ibland hjälper VB till och konverterar automatiskt. CDbl(text1.text) tvingar innehållet i text1.text till tal. CDbl change to double (ändra till decimaltal). Uppgift 2. Vi ska nu göra ett program, som omvandlar svensk valuta till engelska pund. Vi lägger ut en fet rubrik VALUTA VÄXLARE Börja med att klicka på label och lägg ut i formen, label betyder etikett, vi använder den som rubrik i vårt program. Se till att label är markerad, små fyrkanter i hörnen. Nu går vi till egenskapsfönstret och väljer teckensnitt, färg, text(caption) på label1. SPARA DITT ARBETE OFTA, TA GÄRNA BACKUP GENOM ATT KOPIERA DINA FILER(*.vbp o *.frm) TILL EN UNDERKATALOG MED NYTT NAMN t.ex. BAK_MARS02 Lägg nu in fyra textrutor och fyra etiketter Lägg in en bild också, välj image och bläddra dig till en passande bild (picture). Prova och sätt egenskapen image1.stretch till true. Kanske ser det ut så här. Det här var kosmetika, nu är det dags att se till att programmet gör någonting. VB lektion 1 pro_a.doc sida 3
Kolumnen kurs är tänkt till att skriva in t.ex. 100 sek och vad man får i engelsk valuta för dessa pengar. I antal ska du skriva in den tänkta mängden och programmet ska presentera vad du får i rutan under. Dubbelklicka nu i textrutan under antal (t.ex. text3) och kodfönstret kommer upp, programmet tror nu att du vill skriva in kod för händelsen change, vilket är precis vad du vill. Alltså så fort du gör ändringar i textrutan (ändrar krontal) så ska ny summa presenteras i rutan under. Kod: Private Sub Text3_Change() Text4.Text = Text3.Text / Text1.Text * Text2.Text End Sub De här raderna är proceduren som ska köras varje gång något ändras(change) i text3 Det koden gör är att den tilldelar texten i ruta 4 (text4.text) värdet på text3.text delat med värdet på text1.text gånger värdet på text2.text, alltså växlat till pund. VISUAL BASIC förstår till viss del att skilja på strängar och tal automatiskt. Provkör!! Du måste nu vara medveten om att ditt program inte klarar av felinskrivningar/tomma rutor m.m. Tom ruta kan vi hantera med följande kod, felhantering kommer vi till senare, numreringen på textrutor måste kontrolleras mot era egna. If Text3.Text <> "" Then Text4.Text = Text3.Text / Text1.Text * Text2.Text Else Text4.Text = "Fel! Kan ej räkna" End If Eller kanske hellre If IsNumeric(Text3.Text) Then Text4.Text = Text3.Text / Te Text6.Text = Text3.Text / Te Else Text4.Text = "kan ej räkna" Text6.Text = "kan ej räkna" End If IsNumeric känner av om värdet går att räkna med då returneras TRUE xt1.text * Text2.Text xt1.text * Text5.Text VB lektion 1 pro_a.doc sida 4
Uppgift 3. Bygg ut programmet till att samtidigt ge svar i flera valutor. Uppgift 4. Gör om programmet så att man kan skriva in önskad främmande valuta och programmet räknar om till de övriga. För att inte cirkelreferenser (jmf excel) ska uppstå kan du använda option button. Kan dessa kodsnuttar hjälpa till? If IsNumeric(Text1Text) Then If optionbutton1.value = true then... Uppgift 5. Ett snyggare sätt att lösa uppgift 4, är att använda If ActiveControl Is Text3 Then Du bör efter det här passet kunna: Spara och öppna VB-projekt. Skapa körbara exe-filer (kopiera över exe och runtimefil och köra på annan maskin). Använda editorn till bl.a. skriva in kod och söka/ersätt Skapa kontroller, markera, ändra egenskaper. Infoga bild och ge programmet ett hyfsat utseende. Skriva enkel kod i händelserna klick(click) och ändra(change) Hantera kontrollerna textruta, etikett, kommandoknapp. Räkna med heltal och flyttal. Lycka till! VB lektion 1 pro_a.doc sida 5