Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Objektorientering

Postades av 2003-12-24 12:56:05 - Fredrik Hofflander, i forum visual basic - allmänt, Tråden har 9 Kommentarer och lästs av 1021 personer

Håller på å lära mig lite om objektorientering i VB. Har skrivit ett mycket enkelt program som adderar ett tal med sig själv.

Form1:
<code>
Dim talet As New Class1

Private Sub btnaddera_Click()
talet.addera (Val(tal.Text))
Label1.Caption = talet.tal
End Sub

</code>

Classen:

<code>
Public tal As Integer

Public Sub addera(a As Integer)
tal = tal + a
End Sub

</code>

När man trycker på knappen så ändras alltså label1 till dubbelt så mycket



Det jag skulle vilja är att man skall kunna skriva ungefär:

<code>
Form1:
Dim talet As New Class1

Private Sub btnaddera_Click()
talet = talet + talet
End Sub
</code>

i Form1 och samma sak ska hända.... hur ser då classen ut?

Tacksam för svar!


Svara

Sv: Objektorientering

Postades av 2003-12-24 14:34:58 - Karl Adriansson

Det jag skulle göra om jag var du är att ha en metod i klassen som gör uträkningen, skulle väl se ut nått i stil med

(i klassen)
Public Sub DoubleValue()
Tal = Tal + 1
End Sub

Sedan i onClick evente kallar du på metoden DoubleValue() istället, typ nått i stil med detta

Private Sub btnaddera_Click()
talet.DoubleValue()
label1.Text = talet.tal 'glöm inte att uppdatera label:n efter förändringen
End Sub

Hoppas det klarnade lite ;)

God Jul!

//Kalle


Svara

Sv: Objektorientering

Postades av 2003-12-25 06:50:09 - Sven Åke Persson

Kvalficerat "bullshit" Objektorienterat
Alla som börjar med programmering börjar i fel ända.Lär dig skriva enkla funktioner.

En funktion lämnar i retur något som den skall arbetat med.
Dvs man skickar ett argument till funktionen och man får tillbaka det bearbetade resultatet.

Alla djä... smånissar skall börja på högsta nivå , phuuu jag blir så trött.

Det är så här att Ni ser inte skogen för bara träd.För att räkna ut att 2 + 2 = 5 så
behöver man numera skriva ett program som är 4 Mbyte. Bull Bull Bull.


Svara

Sv: Objektorientering

Postades av 2003-12-25 07:14:57 - Sven Åke Persson

Testa att klistra in detta enkla exempel och !!! förstå vad och hur den gör sina trix.

1. Label1 , 2. TextBoxar , 1. CommandButton
<code>
Option Explicit

Private Sub Command1_Click()
'Nu skall jag kalla på funktionen Reverse
Label1.Caption = Reverse(Text1.Text) 'skickar ett argument
MsgBox Label1.Caption
Text1.Text = 2
Text2.Text = 2
'Nu skall jag kalla på funktionen Addera
Label1.Caption = Addera(Int(Text1.Text), Int(Text2.Text)) 'skickar två argument
MsgBox Label1.Caption
End Sub

Private Function Reverse(ByVal inString As String) As String
'Jag heter Reverse jag kan vända ett ord till baklängesskrift
Dim i As Long, mittjobb As String
For i = Len(inString) To 1 Step -1
mittjobb = mittjobb & Mid$(Text1.Text, i, 1)
Next '
'Nu är jag färdig , här kommer resultatet
Reverse = mittjobb
End Function

Private Function Addera(ByVal Tal1 As Long, ByVal Tal2 As Long) As Long
'Jag heter Addera jag kan addera två heltal
Addera = Tal1 + Tal2
End Function
</code>


Svara

Sv: Objektorientering

Postades av 2003-12-26 19:38:21 - Per Hultqvist

För att kunna skriva :
<code>
talet=talet + talet
</code>
så måste du använda ett språk som klarar Operator Overloading, t ex C# eller C++. VB6 och VB.Net stödjer inte Operator Overloading.


Svara

Sv: Objektorientering

Postades av 2003-12-26 19:39:43 - Per Hultqvist

Kalle skrev:
<code>
(i klassen)
Public Sub DoubleValue()
Tal = Tal + 1
End Sub
</code>
Det var nog tänkt att stå så här :
<code>
(i klassen)
Public Sub DoubleValue()
Tal = Tal * 2
End Sub
</code>


Svara

Sv: Objektorientering

Postades av 2003-12-26 19:50:56 - Per Hultqvist

"Det är så här att Ni ser inte skogen för bara träd.För att räkna ut att 2 + 2 = 5 så
behöver man numera skriva ett program som är 4 Mbyte. Bull Bull Bull."

Allting ska användas med måtta, så även Operator Overloading. När man ser folk skriva en klass Bil som kan adderas med en annan Bil och det resulterar i en klass Krock som ärver av klassen FörsäkringsÄrende så har det ju gått för långt :-)

Men Operator Overloading är inte fel om man t ex skriver ett matematikbibliotek för komplexa tal eller liknande. Det finns tillfällen då det inte är fel att kunna definiera operatorer för klasser.


Svara

Sv: Objektorientering

Postades av 2003-12-26 20:33:24 - Fredrik Hofflander

Hmm, tror att alla har missuppfattat hela min fråga. Frågan var inte hur jag skall kunna addera ett tal med sig själv på lättaste sätt. Det var helt enkelt så att jag vill lära mig objektorientering bättre. Sen struntar jag i om det finns bättre sätt att lösa just denna uppgiften på.

Om jag omformulerar frågan lite:

Jag har skrivet ett program som ser ut som följande:

Class:
<code>
Public tal As Integer

Public Sub addera(a As Integer)
tal = tal + a
End Sub

</code>


Form1:
<code>
Dim talet As New Class1

Private Sub btnaddera_Click()
talet.addera (Val(tal.Text))
Label1.Caption = talet.tal
End Sub

</code>


Jag vill att man ska kunna skriva:

Form1:
<code>
Dim talet As New Class1

Private Sub btnaddera_Click()
talet.tal = talet.tal * 2
End Sub
</code>

Hur ska då Classen se ut?


Svara

Sv:Objektorientering

Postades av 2006-02-23 19:38:47 - Fredrik Hofflander

Har ställt samma fråga i detta forum innan. Fick dock inget bra svar på den frågan just då. Nu... några år senare... har jag lärt mig att programera objektorienterat och inser att felet med det sättet du vill göra på är att det inte riktigt är objektorienterat.

Nu var det jättelängesedan jag programmera vb så jag har inte så bra koll på syntax. Ett objektorienterat sätt (Om nu vb kan räknas som objektorienterat) att göra det du vill göra hade varit att göra såhär... typ:

Class:
<code>
private tal As Integer

Function addera(tal2 As Double) As Integer
addera = tal + tal2
End Sub
</code>

Form1
<code>
Dim talet As New Class1

Private Sub btnaddera_Click()
Label1.Caption = talet.addera (Val(tal.Text))
End Sub
</code>


en bra regel är att alltid ha fälten i objektet private (eller protected om det nu finns i vb?) och sen göra funktioner för att ändra dessa, detta gör att man minimerar risken att ge fälten konstiga värden.


Svara

Nyligen

  • 14:07 Games
  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 983
27 965
271 784
874
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies