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


class modul

Postades av 2002-11-28 16:44:55 - Nicklas Emmoth, i forum visual basic - allmänt, Tråden har 13 Kommentarer och lästs av 592 personer

hej hur gör jag en class modul där jag med en if then sats testar om variabeln kop är ett decimaltal och isåfall avrundar upp det till närmaste heltal t.ex koden"
If kop <> Round(kop) Then kop = Int(kop) + 1"
variabeln kop beräknas i formulärkoden.
hur anropar jag classmodulen i formulärkoden????

tacksam om någon har tid och hjälpa mej!!


Svara

Sv: class modul

Postades av 2002-11-28 17:16:38 - Johan Djupmarker

Varför en klassmodul? Känns som att det är smidigare med en vanlig funktion här som ser ut som du har skrivet, eller?

/Johan


Svara

Sv: class modul

Postades av 2002-11-28 17:23:52 - Nicklas Emmoth

försöker lära mig det här med classmoduler... kanske inte bästa exemplet men ändå
form koden ser ut ungefär så här
Private Sub cmdberakna_Click()
Dim area As Double
Dim frp As Double
Dim langd As Double
Dim bredd As Double
Dim kop As Single
Dim pris1 As Single
Dim klpris As Single
Dim fixpris As Single
Dim fogpris As Single
Dim summa As Single
'deklarerar variablerna

langd = txtlangd
bredd = txtbredd
'läser in längd och bredd från textboxarna

frp = txtfrp
area = langd * bredd
kop = area / frp 'räknar ut hur många förpackningar
'kop avrundas till närmast högre heltal i en classmodul

'lblkop=resultatet av avrundning iclassmodulen skriver ut hur många förp som behöver köpas

pris1 = txtpris1 'läser in priset från textboxen
klpris = kop * pris1 'räknar ut klinkerskostnaden
lblsumma = klpris + txtfixpris + txtfogpris 'räknar ut totalkostnaden






End Sub

Private Sub lbllangd_Click()

End Sub



Private Sub cmdend_Click()
End
Unload Me
End Sub

Private Sub Form_Load()

End Sub


Svara

Sv: class modul

Postades av 2002-11-29 05:08:32 - Sven Åke Persson

Hej
Det där med ClassModuler har blivit en modefluga som används
i alla möjliga och omöjliga sammanhang. Enl. min uppfattning.

När man ger sig till att skriva en ClassModul måste man svara
på frågan, kommer jag att ha användning för denna modul
många många ggr. För det mesta blir svaret Nej.Kommer jag att
behöva ärva egenskaperna från denna modul,samma där oftast Nej.

Alltså som JohanD skriver var smidig gör en Function istället.
Iofs tycker jag nog att det verkar som ditt exempel kan användas
i Polymorfism ,så att det kan platsa som ClassModul.

/Sven


Svara

Sv: class modul

Postades av 2002-11-29 08:19:16 - Nicklas Emmoth

du har inte ett förslag hur jag skall lösa det med polymorfism då?


Svara

Sv: class modul

Postades av 2002-11-29 14:06:30 - Per Hultqvist

Hmmm modefluga? Folk har gjort bort sig förr genom att kalla saker för modefluga, så det är ett modigt påstående :-)

Hur som helst, vill bara tillägga att en vanlig modul i vb inte är något annat än en klass som inte behöver instansieras, dvs alla funktioner är static. Jämför med C# som inte har "moduler" utan bara klasser.

Här är IL:en för en funktion GetAge (som inte gör annat än att returnera 32) som ligger i en module som heter Module1. Som ni ser så blir det en klass med en static funktion :

VB-koden :
<code>

Module Module2
Public Function GetAge() As Integer
Return 10
End Function
End Module

</code>
IL-koden :
<code>

.class private auto ansi sealed Module2 <----- Klass
extends [mscorlib]System.Object
{
.custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 )
} // end of class Module2

.method public static int32 GetAge() cil managed <----- Static funktion i klass
{
// Code size 8 (0x8)
.maxstack 1
.locals init ([0] int32 GetAge)
IL_0000: nop
IL_0001: ldc.i4.s 32
IL_0003: stloc.0
IL_0004: br.s IL_0006
IL_0006: ldloc.0
IL_0007: ret
} // end of method Module2::GetAge

</code>



Svara

Sv: class modul

Postades av 2002-11-29 14:09:44 - Per Hultqvist

Insåg just att jag gjort bort mig :-)

Detta är ju inte ett VB.Net-forum, sorry guys! Jag tänker bara .Net nuförtiden...Glöm mitt inlägg, det hörde inte hemma här...


Svara

Sv: class modul

Postades av 2002-11-29 15:08:26 - Per Hultqvist

Hej Neh,

För att utveckla Niclas svar litegrand...Lägg till en klassmodul och skriv :

<code>
Public Function Avrunda(ByVal kop As Single) As Single
If kop <> Round(kop) Then Avrunda=Int(kop) + 1
End Function
</code>

Anropa den med :

<code>
Dim mMyClass As MyClass
Set mMyClass=New MyClass
kop=mMyClass.Avrunda(kop)
mMyClass=nothing
</code>

Sen vill jag bara ge dig ett tips. Att skriva :

<code>
langd=txtlangd
</code>

är inte speciellt snyggt, men det går eftersom VB tar hand om några saker här. Dels så lägger VB till default propertyn Text till koden och dels så görs en konvertering från String till Double för att kunna lagras i variabeln langd. Att utnyttja implicita konverteringar och defaultproperties anses av många vara "dålig/slarvig programmeringsstil". Jag tillhör dom som tycker att detta ser illa ut, av flera skäl. Teoretiskt kan ett defaultbeteende förändras från version till version (vilket det har gjort i o m VB.Net), och dessutom så om du av misstag råkat skriva txtlangd i stället för en annan doublevariabel så får du aldrig veta det (förrän du kör koden och programmet inte fungerar som det ska). Du får alltså ett runtimefel som i princip alltid är svårare att lösa än compiletime fel. Genom att skriva :

<code>
langd = CDbl(txtLangd.Text)
</code>

har du visat att denna konvertering är medvetet utförd (och den är explicit och tydlig) och koden är också lättare att konvertera till t ex VB.Net som inte accepterar defaultparametrar.

Som sagt, det finns delade meningar om detta, en del vill slippa skriva så mycket som möjligt och tycker det är värt priset att utnyttja sådana här "tricks" som VB ändå tillåter. Jag tycker det inte...

Lycka till...

/Per Hultqvist


Svara

Sv: class modul

Postades av 2002-11-29 20:57:41 - Nicklas Emmoth

tackar och bockar ....skall se om det fungerar...


Svara

Sv: class modul

Postades av 2002-11-29 21:07:31 - Sven Åke Persson

Hej
Tur att Ni skriver i så otydligt textformat "modefluga" så jag orkar
inte ta fram förstoringsglaset och läsa, skriv så det går att läsa.

Tänk på alla som är hörselskadade , hur skall dom kunna läsa den
färgsatta småstilade texten !!
/Sven



Svara

Sv: class modul

Postades av 2002-11-30 00:46:38 - Per Hultqvist

Vad svamlar du om SvenPon? Synpunkter på fonterna kan nog med större framgång framföras till Pelle(Sysop). Och att code-taggen inte verkar fungera korrekt är inget jag tar ansvar för...

/Per Hultqvist


Svara

Sv: class modul

Postades av 2002-11-30 07:11:49 - Sven Åke Persson

Hej
Mitt fel webläsaren ställer om sig till minsta text
Så var det med det.
No hard feelings
/Sven


Svara

Sv: class modul

Postades av 2002-12-05 17:28:42 - Nicklas Emmoth

funkar kanonfint tack HULTAN!!!


Svara

Sv: class modul

Postades av 2002-12-05 19:18:10 - Oskar Johansson

Jag skulle vilja påstå att klassmoduler är bra IBLAND.

Ofta används det till helt fläppade saker... Men inte då de behövs! :)
Behövs: Om man ska ha flera instanser av något, t.ex. om man skrivit ett finurligt data-objekt som kan skicka och ta emot data samtidigt eller likn.
Behövs inte: För att anropa DLL:er där modulen ändå inte innehåller några egna variabler.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 602
27 953
271 705
5 969
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