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


Klassfrågor, forts...

Postades av 2003-04-28 08:18:29 - Alexander Zetterlund, i forum vb.net, Tråden har 9 Kommentarer och lästs av 751 personer

HEJ!

Har inte riktigt fått kläm på detta ännu...
Är det möjligt att få K1 och K2 kända i andra klasser?
Någon som har något förslag?

Att använda SHARED verkar inte rätt för då kan man inte använda den instans man har skapat.

/Alexander



<code>

Public Class Form1
Inherits System.Windows.Forms.Form

Public K1 As New Class1()
Public K2 As New Class2()

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
Me.Text = "Form1"
End Sub

#End Region

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

K1.K1_RUN() 'Är känd här
K2.K2_RUN() 'Är känd här
Module1.M1_Run() 'Är känd här

End Sub

End Class


Public Class Class1

Public Sub K1_RUN()

K2.K2_RUN() 'Är EJ känd här
Module1.M1_Run() 'Är känd här

End Sub

End Class


Public Class Class2

Public Sub K2_RUN()

K1.K1_RUN() 'Är EJ känd här
Module1.M1_Run() 'Är känd här

End Sub

End Class

</code>




Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-28 12:33:16 - Mattias Lindberg

Du kan skicka med en pekare till Form1 objektet när du skapar K1 resp. K2 objekten så att du kan komma åt rätt Form1 instans. Lämpligast är väl att skapa en constructor för Class1 resp. Class2 som tar Form1 instans som argument, tilldela sedan denna inskickade instans till en medlem i Class1 resp. Class2 (t.ex. kallad parent).

I koden för K1_RUN gör du sedan:
parent.K2.K2_RUN()

Sedan måste du göra det möjligt att komma åt just K1 och K2 instanserna, det bästa alternativet är att skapa en Property men det funkar att ha den Public som du har idag.

Hoppas detta underlättar lite!

/Mattias


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-28 16:16:22 - Emma Magnusson

Syftet med objektorienterad programmering är att en klass ska vara som en liten svart
låda för andra klasser (utom dess "barn", som ska se och ha ärvt allt). Du ska med andra ord enbart komma åt en metod i klassen ifrån en instans av klassen eller klassen själv beroende på om det är en vanlig metod eller en klassmetod.

Vad är det du vill göra synligt och varför?

/Emma


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-28 18:00:02 - Alexander Zetterlund

HEJ! Kul med lite svar!

Det jag funderar på är:

Att skapa en klass som bland annat skriver till en loggfil.
Denna loggklass skall alla klasser kunna komma åt.
Även sådana som går på en annan tråd. Fast då gäller det att styra upp det hela!

Men nu när jag funderar så kanske man skriver en sådan grej i en modul!?

Att skapa en instans av loggklassen i varje klass kan väl inte vara rätt?
Att då bara låta en skriva i taget blir väl inte lätt???


/Alexander


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-28 21:51:18 - Oskar Johansson

Du kan inte deklarera dem som static då?


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-29 10:15:35 - Alexander Zetterlund

Jo att skriva den som STATIC eller som SHARED som det verkar heta i VB löser någ detta.

Men jag tycker ändå att man borde kunna komma åt andra instansierade klasser från en klass???

Men jag tänker nog helt programmeringsfelaktigt!!!


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-29 14:10:32 - Johan Bovin

hmm en liten tanke bara. Varför inte ha din instans som inparameter när du skapar de andra klasserna?
(lite C# kod)
class Logger
{
}

class Ett
{
public Ett(Logger log){}
}

class Tvao
{
public Tvao(Logger log){}
}

Sen kan du ju göra motsvarande:

Logger minLog=new Logger();
Ett itt=new Ett(minLog);
Tvao två=new Tvao(minLog);

nu kommer ju både instanserna av itt och två att jobba mot samma instans (minLog)

Nån kanske kan hjälpa till att köra över det till VB.Net om du inte förstår


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-30 09:39:14 - Alexander Zetterlund

Tackar Johan!

Det känns som att det är så man skall programmera.
Skall prova det i VB och återkomma.


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-30 12:13:05 - Alexander Zetterlund

Har nu fått ihop något. Verkar funka bra!
Vet ej om det det är det "rätta" sättet att skriva det på?
Verkar vara mindre(snyggare) kod i C# för att få till det!

Någon som har bättre sätt att skriva det på i VB!!!???

Blir mycket att skicka med om man har många klasser man vill åt?
Eller skapar man då en basklass!




<code>

Imports System.Threading

Public Class Form1
Inherits System.Windows.Forms.Form


#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(96, 64)
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 0
Me.Button1.Text = "Button1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1})
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load


Dim MinLogger As New Logger()

Dim MinK1 As New Klass1(MinLogger)
Dim MinK2 As New Klass2(MinLogger)

MinK1.Kör()
MinK2.Kör()

End Sub
End Class

Public Class Klass1

Private Log As Logger
Private MeThread As Thread

Public Sub New(ByVal InLog As Logger)
Log = InLog
Log.Skriv("K1:NEW")
End Sub

Public Sub Kör()
MeThread = New Thread(AddressOf _Kör)
MeThread.Start()
Log.Skriv("K1:KÖR")
End Sub

Private Sub _Kör()
Thread.Sleep(5000)
Log.Skriv("K1:_KÖR")
End Sub

End Class


Public Class Klass2

Private Log As Logger
Private MeThread As Thread

Public Sub New(ByVal InLog As Logger)
Log = InLog
Log.Skriv("K2:NEW")
End Sub

Public Sub Kör()
MeThread = New Thread(AddressOf _Kör)
MeThread.Start()
Log.Skriv("K2:KÖR")
End Sub

Private Sub _Kör()
Thread.Sleep(10000)
Log.Skriv("K2:_KÖR")
End Sub

End Class


Public Class Logger

Private Mut As New Mutex()

Public Sub Skriv(ByVal Text As String)

Mut.WaitOne()
MsgBox(Text)
Mut.ReleaseMutex()

End Sub

End Class

</code>


Svara

Sv: Klassfrågor, forts...

Postades av 2003-04-30 14:08:35 - Mattias Sjögren

>Vet ej om det det är det "rätta" sättet att skriva det på?
>Verkar vara mindre(snyggare) kod i C# för att få till det!

Det vet jag inte, att skriva motsvarande i C# skulle se ungefär likadant ut.


>Någon som har bättre sätt att skriva det på i VB!!!???

Jag skulle använt Monitor / SyncLock ist.f. en Mutex. Annars ser väl koden helt okej ut.


MS


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 159
27 952
271 704
1 484
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