[VB.NET] Meldingen centraal declareren en apart aanroepen

Pagina: 1
Acties:

  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
In een applicatie geef ik d.m.v. een label (lblMelding) meldingen weer die de gebruiker aanwijzingen geeft bij het werken met de applicatie.

Nu wil ik in een subroutine alle meldingen declaren en deze vervolgens in verschillende functies aanroepen:

code:
1
2
3
4
5
6
7
8
9
10
11
'Meldingen declareren
Sub Melding(ByVal sMelding As String)
        Dim m01 As String = "Selecteer klant op klantnummer of naam. 
        Dim m02 As String = "Kies 'Selecteer' voor nieuwe selectie. 
        Dim m03 As String = "Geen klanten gevonden."

        lblMelding.Text = ?
End Sub

'Melding aanroepen
Melding(m01)


Als ik de melding aanroep met de meldingcode (bijv. m01 of m02) moet deze via de subroutine ingesteld worden op lblMelding.Text. Hoe doe ik dit?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:00

gorgi_19

Kruimeltjes zijn weer op :9

Met een if-statement of een case statement?

Netter vind ik alleen om met Enum's te gaan werken als parameter, al dan niet icm localization.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
gorgi_19 schreef op 04 mei 2004 @ 11:17:
Met een if-statement of een case statement?

Netter vind ik alleen om met Enum's te gaan werken als parameter, al dan niet icm localization.
Kun je dat laatste wat verder toelichten?

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:53
Waarom maak je geen gebruik van satellite assemblies die je resources bevatten? Mbhv de resource-manager kan je dan adhv een 'key' je string ophalen.
't Voordeel hierbij is dat je makkelijk een andere taal kan ondersteunen.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:00

gorgi_19

Kruimeltjes zijn weer op :9

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Melding(ByVal sMelding As String)
  
    If sMelding = "m01" Then

        lblMelding.Text = "Tekst melding m02"

    Elseif sMelding = "m02" Then

        lblMelding.Text = "Tekst melding m02"

Elseif ....

    End
End Sub


:?

Verder: om enum's te gaan uitleggen en het principe van localization is me een beetje te veel werk en er moet met google wel eea te vinden over zijn.

[ Voor 23% gewijzigd door gorgi_19 op 04-05-2004 11:22 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Je kunt het zo doen, maar dan met VB-syntax...

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public enum MessageType
{
    WrongUser, UserNotExists
}

public string GetMessage(MessageType type)
{
    switch(type)
    {
        case MessageType.WrongUser:
            return "De user heeft hier geen rechten op bla bla bla.";
        case MessageType.UserNotExists:
            return "De opgegeven user bestaat niet.";
    }
}


Hoewel ik de methode van Whoami beter vind.

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:53
Het komt er in het kort op neer dat je een resource-file maakt, met daarin je strings.
In je app. instantieer je een ResourceManager, en je haalt dmv die resource-manager je strings op.
De resource-manager gaat adhv de CurrentUICulture property de juiste assembly gaan zoeken voor die culture, en de juiste string gaan ophalen. Indien er geen geschikte resource gevonden wordt voor die culture, dan wordt de 'fall through' resource gebruikt.

https://fgheysels.github.io/

Pagina: 1