Forum: Offtopic Unterprogramm & BASCOM


von Max (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem: Ich will zwei verschieden Unterprograme
mittels call aufrufen.
Im Moment heißt das Programm LCD_text...(dieses ruft dann das
Text-Ausgabe-Programm auf)

Nun will ich aber zwischen kleinen und größeren Buchstaben
unterscheiden(Schriftgrößen)

Eins der Unterprogramme soll nun LCD_textk das andere LCD_textg
heißen.

Ich habe gedacht das ich einfach hinter LCD_text noch eine Variable
setzten kann, die dann entweder den Wert k oder g enthält;
sodass dann entweder lcd_textk oder halt LCD_textg aufgerufen wird

Habt ihr eine Idee wie ich die Vaiable hinter das LCD_text bekomme??
Achso, Programmierspache ist BASCOM

GrußMax

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

So geht das nicht.

Aber:

if Schriftgroesse = 1 then
  lcd_textg(bla)
else
  lcd_textk(bla)
end if

Alternativ müsstest Du Funktionspointer verwenden, aber ich bin mir
nicht sicher, ob Bascom sowas unterstützt.

von Max (Gast)


Lesenswert?

Danke Rufus für die Antwort.

Ich habe mir das fast schon gedacht...(;

von Addy (Gast)


Lesenswert?

Warum so kompliziert, du kannst doch mehrere Variablen der Subroutine
übergeben.

    lcd_text(größe,text)

Ist doch das was du willst, dann musst in der Sub nur noch eine
Fallunterscheidung wie Rufus gezeigt hat machen.

Du kannst dann die Variable "Größe" als Byte definieren und den
Zeichencode für "k oder g" übergeben und auswerten.

    lcd_text("k" , "Ein kleiner Text")

oder mit globaler Variable

    lcd_text(groesse , "Ein Text")

Auswerten tust du in der Sub nur die Zeichenfolge nach dem Motto

    If groesse = "k" goto Weiter_mit_klein
    If groesse = "g" goto Weiter_mit_gross

oder alse Case mit ausschluss von falschen Werten.

Hoffe geholfen zu haben.

greetz
Addy

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.