/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
With Events på forms
Fra : Dennis Bay


Dato : 06-09-02 22:49

Hej Nyhedsgruppe

Jeg har to forms frmKunde og frmKunder.
Fra min kunde form åbner jeg kunder formen
På kunder formen søger jeg i en liste og udvælger et objekt som jeg så vil
retunere til kunde formen.
Til at retunere kunde objektet har jeg valgt at bruge events. Det virker
bare ikke.
Er der nogen her der kan hjælpe ?
Her er der et lille udpluk af koden:

frmKunder :
'variabel erklæring på modul niveau
Event ReturnKunde(Retk As Kunde)

'Hejser event flag i koden
RaiseEvent ReturnKunde(k)


frmKunde:
'Variabel erklæring på modul niveau
Private WithEvents mobjKunder As frmGetKunder

Private Sub mobjKunder_ReturnKunde(Retk As Kunde)
k = Retk
ClassToForm (k)
End Sub

RaiseEventen bliver eksekveret men mobjKunder_ReturnKunde bliver aldrig
eksekveret hvorfor gør den ikke det ?

--
Med venlig hilsen
Dennis Bay




 
 
Claus Bernth (06-09-2002)
Kommentar
Fra : Claus Bernth


Dato : 06-09-02 23:58

Events kan kun skydes af fra class modules.

Dvs hvis du laver en class der hedder 'clsTest' og her i skriver følgende:
---
Public Event HejMedDig(sTmp As String)

Public Sub RaiseHejMedDig(sTmp As String)
RaiseEvent HejMedDig(sTmp)
End Sub
---


Så kan du nu på formen skrive:
---
Private WithEvents oTest As clsTest

Private Sub Command1_Click()
oTest.RaiseHejMedDig ("Min tekst")
End Sub

Private Sub Form_Load()
Set oTest = New clsTest

End Sub

Private Sub oTest_HejMedDig(sTmp As String)
Me.Text1 = sTmp
End Sub
---

Helt konkret sker der det at når du trykker på formens Command1 button
rejses et event som fanges i formens oTest_HejMedDig sub. Teksten der
overføres fra Command1 clikket modtages og skydes ind i Text1...

Håber det er til at forstå

Det er testet og det virker

Vh,
Claus


Claus H (07-09-2002)
Kommentar
Fra : Claus H


Dato : 07-09-02 21:47

Det er ikke helt korrekt - en form har faktisk samme eventmuligheder som en
klasse (groft sagt er en klasse bare en form uden brugergrænseflade)!

Jeg tror snarere at det ligegr i, hvordan du åbner underformularen - mit gæt
er at du gør noget i retning af
frmGetKunder.Show
Dette viser godt nok din formular, men du får ingen events, for
hovedformularen har ingen reference til underformularen.
Det er vigtigt at du istedet bruger:
mobjKunder.Show
- her bruges den instans som jo er erklæret som frmGetKunder.

Det byrde virke.

Mvh

Claus H


"Claus Bernth" <cbernth@worldonline.dk> skrev i en meddelelse
news:3d7932a2$0$27687$edfadb0f@dspool01.news.tele.dk...
> Events kan kun skydes af fra class modules.
>
> Dvs hvis du laver en class der hedder 'clsTest' og her i skriver følgende:
> ---
> Public Event HejMedDig(sTmp As String)
>
> Public Sub RaiseHejMedDig(sTmp As String)
> RaiseEvent HejMedDig(sTmp)
> End Sub
> ---
>
>
> Så kan du nu på formen skrive:
> ---
> Private WithEvents oTest As clsTest
>
> Private Sub Command1_Click()
> oTest.RaiseHejMedDig ("Min tekst")
> End Sub
>
> Private Sub Form_Load()
> Set oTest = New clsTest
>
> End Sub
>
> Private Sub oTest_HejMedDig(sTmp As String)
> Me.Text1 = sTmp
> End Sub
> ---
>
> Helt konkret sker der det at når du trykker på formens Command1 button
> rejses et event som fanges i formens oTest_HejMedDig sub. Teksten der
> overføres fra Command1 clikket modtages og skydes ind i Text1...
>
> Håber det er til at forstå
>
> Det er testet og det virker
>
> Vh,
> Claus
>



Dennis Bay (08-09-2002)
Kommentar
Fra : Dennis Bay


Dato : 08-09-02 18:41

Du har helt ret, nu virker det

Tak for hjælpen.

--
Med venlig hilsen
Dennis Bay

"Claus H" <Claus@UseNewsGroup.dk> skrev i en meddelelse
news:3d7a65d8$0$685$ba624c82@nntp04.dk.telia.net...
> Det er ikke helt korrekt - en form har faktisk samme eventmuligheder som
en
> klasse (groft sagt er en klasse bare en form uden brugergrænseflade)!
>
> Jeg tror snarere at det ligegr i, hvordan du åbner underformularen - mit
gæt
> er at du gør noget i retning af
> frmGetKunder.Show
> Dette viser godt nok din formular, men du får ingen events, for
> hovedformularen har ingen reference til underformularen.
> Det er vigtigt at du istedet bruger:
> mobjKunder.Show
> - her bruges den instans som jo er erklæret som frmGetKunder.
>
> Det byrde virke.
>
> Mvh
>
> Claus H
>
>
> "Claus Bernth" <cbernth@worldonline.dk> skrev i en meddelelse
> news:3d7932a2$0$27687$edfadb0f@dspool01.news.tele.dk...
> > Events kan kun skydes af fra class modules.
> >
> > Dvs hvis du laver en class der hedder 'clsTest' og her i skriver
følgende:
> > ---
> > Public Event HejMedDig(sTmp As String)
> >
> > Public Sub RaiseHejMedDig(sTmp As String)
> > RaiseEvent HejMedDig(sTmp)
> > End Sub
> > ---
> >
> >
> > Så kan du nu på formen skrive:
> > ---
> > Private WithEvents oTest As clsTest
> >
> > Private Sub Command1_Click()
> > oTest.RaiseHejMedDig ("Min tekst")
> > End Sub
> >
> > Private Sub Form_Load()
> > Set oTest = New clsTest
> >
> > End Sub
> >
> > Private Sub oTest_HejMedDig(sTmp As String)
> > Me.Text1 = sTmp
> > End Sub
> > ---
> >
> > Helt konkret sker der det at når du trykker på formens Command1 button
> > rejses et event som fanges i formens oTest_HejMedDig sub. Teksten der
> > overføres fra Command1 clikket modtages og skydes ind i Text1...
> >
> > Håber det er til at forstå
> >
> > Det er testet og det virker
> >
> > Vh,
> > Claus
> >
>
>



Tomas Christiansen (09-09-2002)
Kommentar
Fra : Tomas Christiansen


Dato : 09-09-02 22:45

Claus H skrev:
> Jeg tror snarere at det ligegr i, hvordan du åbner underformularen -
mit gæt
> er at du gør noget i retning af
> frmGetKunder.Show
> Dette viser godt nok din formular, men du får ingen events, for
> hovedformularen har ingen reference til underformularen.
> Det er vigtigt at du istedet bruger:
> mobjKunder.Show
> - her bruges den instans som jo er erklæret som frmGetKunder.

Så ville en
Set mobjKunder = frmGetKunder
efter
frmGetKunder.Show
vel også kunne gøre tricket?

Ikke at det skulle være bedre, men problemet er vel ret beset at
mobjKunder hele tiden har været Nothing.

-------
Tomas


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste