Seltsames Problem mit include
Übersicht

danibertBetreff: Seltsames Problem mit include |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
die Oberfläche meiner Anwendung kann auf deutsch oder englich angezeigt werden. Hierzu setze ich eine Variable für die Sprache und binde ein Sprachpaket mit den Ausgabetexten ein. Code: [AUSKLAPPEN] ' Hauptfenster
Import maxgui.drivers Strict Local language:Int = 1 ' Sprache festlegen: 1=deutsch, 2=englisch Include "languagePack.bmx" Local mainWindow:TGadget=CreateWindow("ProgressBar-Beispiel", 40,40,400,400) Local helpCloseButton:TGadget=CreateButton(btnClose,20,20,80,20, mainWindow) Repeat WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE Select EventSource() Case mainWindow End End Select End Select Forever End Code: [AUSKLAPPEN] ' languagePack.bmx
If language = 1 Then Local btnClose:String = "Schließen" Else If language = 2 Then Local btnClose:String = "Close" EndIf Beim Kompilieren bekomme ich einen Fehler. Wenn ich nun aber Local btnClose:String = "Schließen" ausserhalb der If-Abfrage setze (aber innerhalb der eingebundenen Datei), funktioniert alles perfekt. Ich stehe wohl auf dem Schlauch, warum das nicht funktioniert. Danke für alle Tipps |
||
- Zuletzt bearbeitet von danibert am Fr, Mai 07, 2010 18:53, insgesamt einmal bearbeitet
danibert |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
GELÖST.
So funktioniert´s: Code: [AUSKLAPPEN] ' languagePack.bmx
Local btnClose:String If language = 1 Then btnClose = "Schließen" Else If language = 2 Then btnClose = "Close" EndIf |
||
![]() |
Progger93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jede Variable existiert in BlitzMax, wie auch bei den meisten anderen Hochsprachen, nur in ihrem "Sichtbarkeitsbereich" (Scope). Wenn du die Variable also innerhabl der Bedingung deklarierst existiert diese nur bis zum "EndIf". Das gleiche passiert auch in Funktionen/Methoden, wobei diese zusätzlich nur die globalen Variablen des Hauptprogramms mitnutzen können. Korrigiert mich wenn ich falsch liege ![]() |
||
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
*korrigier* Es können immer die Globalen aller übergeordneten Scopes genutzt werden, nicht nur die im Root.
Beispiel: BlitzMax: [AUSKLAPPEN]
Was mich bei diesem Beispiel ärgert ist, dass man nicht von aussen auf die Variablen zugreifen kann... ![]() BlitzMax: [AUSKLAPPEN] Print ( Blah.BlahString ) ' klappt nicht :-( |
||
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, das wär ja auch größter mist, wenn das gehen würde, Ava.
Eine Funktion ist doch kein Objekt einer Klasse. BlitzMax: [AUSKLAPPEN] Function Blah ( lol:String ) Und jetzt stell dir mal vor, du könntest einfach so auf die inneren Variablen einer Funktion zu greifen. Mal davon abgesehen existiert die Variable ja eh nur solange, wie Blah() ausgeführt wird, also relativ unsinnig darafu von außen zugreifen zu wollen. ![]() |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Das stimmt so nicht, Andy. Die Globale der Funktion existiert nicht nur so lang, wie die Funktion ausgeführt wird.
Dein Beispiel funktioniert zb. nur beim ersten Aufruf korrekt, da die Globale bei weiteren Aufrufen erhalten bleibt und die Zuweisung nicht erneut aufgerufen wird. ![]() Ich nutze ziemlich häufig globale Variablen innerhalb von Funktionen, um dort Zustände über mehrere Aufrufe hinweg festzuhalten ( in den Fällen, wo eine Objekt-Funktion noch zu übertrieben wäre ). Damit Dein Beispiel korrekt funktioniert, müsste es so aussehen: BlitzMax: [AUSKLAPPEN] Function Blah ( lol:String ) |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Globals in Funktionen? Funktionen in Funktionen?? ![]() Ich wusste noch garnicht, dass das geht... Das wär was für diesen Thread ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group