Fensterinhalt wird nicht dargestellt...
Übersicht

![]() |
ThommesBetreff: Fensterinhalt wird nicht dargestellt... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, ich nu wieder.... ![]() Ich bin schon etwas weitergekommen mit meinem Projekt, habe aber wieder ein Problem, wo ich nicht mehr weiter komme. Ich habe mir zum Programm-Hauptfenster noch zwei weitere Fenster erstellt. Eines für die Infos zum Programm und das andere für kommende Statistiken. Beide werden über einen jeweiligen Button geöffnet (keine Angst, immer nur eins). In der Zeit, wo das Infofenster z.B. auf ist, wird das Hauptfenster mit dem Befehl HideGadget(window) wechgemacht ![]() Wer das mal ausprobieren will kann sich das Progrämmchen ja mal auf meiner HP runterladen. Vielleicht hat ja jemand eine Idee?? ![]() |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
FreeGadget löscht ein Fenster, danach musst du es neu erstellen. Benutze doch wie bei dem Hauptfenster HideGadget. | ||
![]() |
Thommes |
![]() Antworten mit Zitat ![]() |
---|---|---|
JonasCleve hat Folgendes geschrieben: FreeGadget löscht ein Fenster, danach musst du es neu erstellen. Benutze doch wie bei dem Hauptfenster HideGadget.
Jepp... ich habs umgebastelt. Aber ich hatte das Fenster in einer Funktion erstellt und dann (nach Freegadget() ) alles neu aufgebaut. Aber es tat sich nichts. Aber der Tip mit HideGadget ist gut. Jetzt dauert der Aufbau des Fensters nicht so lange, weil man anscheinend die Möglichkeit hat die Grafiken im Hintergrund aufzubauen und erst dann mit ShowGadget das Fenster aufzurufen. Hier (und an vielen anderen Stellen) finde ich die Hilfe vom BM sehr dürftig. Ich habe auch schon eiin neues Problem: Ich möchte einen HighScore als Text speichern. Das Beispiel aus BM funktioniert sehr gut, wenn man es so startet: ' writestream.bmx ' opens a write stream to the file mygame.ini and ' outputs a simple text file using WriteLine out=WriteStream("mygame.ini") if not out RuntimeError "Failed to open a WriteStream to file mygame.ini" WriteLine out,"[display]" WriteLine out,"width=800" WriteLine out,"height=600" WriteLine out,"depth=32" WriteLine out,"" WriteLine out,"[highscores]" WriteLine out,"AXE=1000" WriteLine out,"HAL=950" WriteLine out,"MAK=920" CloseStream out print "File mygame.ini created, bytes="+FileSize("mygame.ini") Wenn ich das Teil jedoch in mein Programm einbaue - in eine Funktion oder in den Hauptteil - bricht BM mit einer Fehlermeldung ab: Compile Error Expecting string literal but encountered end-of-line Das versteh ich nicht. Wieso läuft es alleine und in meinem Programm nicht?? Vielleicht hat ja jemand einen Ratschlag parat?? Schönnen Sonntag noch.... |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Normalerweise zeigt der Compiler auch bei einem Abbruch dann auch die Zeile an, wo der Fehler passiert ist.
Hast du die Variabeln auch alle schön vorher deklariert? Verwendest du auch Strict ? Ist hilfreich bei der Fehlersuche. strict local out:tstream ... ... out=writestream("...") |
||
![]() |
Suco-XBetreff: ....... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Thommes: Wie stellst du dir die ganze Sache eigentlich vor? Ich mein, du gibst uns hier funktionierenden Code aus den BMX Samples und eine Fehlermeldung, die dein Code verursacht, die aber 1000 Ursachen haben kann. Wir können nicht hellsehen, es wäre also für uns alle leichter, wenn du
dir direkt angewöhnst die Fragen so zu stellen, dass wir dir im Notfall auch helfen können. Bei manchen hier im Forum fühlt man sich echt wie in ner Quizshow, nur das es nichts zu gewinnen gibt. Abgesehen davon denke ich, du hast da wohl einfach nur irgendeine Kleinigkeit vergessen, wie ein "Endif" oder "Next" oder einen String nicht geschlossen. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Thommes |
![]() Antworten mit Zitat ![]() |
---|---|---|
rema hat Folgendes geschrieben: Normalerweise zeigt der Compiler auch bei einem Abbruch dann auch die Zeile an, wo der Fehler passiert ist.
Hast du die Variabeln auch alle schön vorher deklariert? Verwendest du auch Strict ? Ist hilfreich bei der Fehlersuche. strict local out:tstream ... ... out=writestream("...") Hi, Strict steht ganz am Anfang des Codes... Den Programmcode habe ich im Programm nach dem erstellen meine Windows, Buttons, Canvas etc. vor der Hauptschleiffe eingesetzt. Wenn ich das Programm jetzt starte bricht der Compiler in der Zeile: out=WriteStream("mygame.ini") mit der Fehlermeldung: Compile Error Unable to convert from 'TStream' to 'Int' ab. Wenn ich das Programm alleine - ohne anderen Code - ablaufen lasse, dann funktioniert es. Das ist das was ich nicht verstehe. Verstehen kann ich natürlich auch die Reaktion von Suco-X. Dazu: Wenn meine Tochter mir eine Frage stellt, weil sie etwas nicht weis, dann versuche ich ihr zu helfen. Verstehe ich den Hintergrund der Frage nicht hinterfrage ich noch mal das genze und versuche dann zu helfen. Ich bin in Sachen BlitzMax Newbie. Ich habe zwar schon zu Amigazeiten mit Blitzbasic (Jawoll ich habe hier sogar noch die Version 1.0) programmiert. Nach einigen Jahren (7-8 Jahre) auf dem PC mit BlitzPlus wieder angefangen und bin jetzt auf dem Mac bei BlitzMax angekommen. Der Umstieg ist an einigen Stellen nicht einfach: z.B. Str$(integer) gibt es nicht mehr, steht aber nirgens, das BM das automatisch umrechnet. So habe ich einen ganzen Abend damit verbracht dieses Forum und die Onlinehilfe durchzustöbern um festzustellen, das nichts zu finden ist. Eine Frage diesbezüglich hätte ich mich nicht getraut hier im Forum zu stellen.... Also bitte ich demütigst um Nachsicht und hoffe, das ich niemanden ärgere oder gar zum Feind mache. Immer dran denken: Wir haben uns alle lieb!! |
||
![]() |
Suco-XBetreff: ........ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Sollte nur ein Hinweis sein. Würde ich dir böse sein, hätte ich den Thread einfach ignoriert und garnichts gesagt. Meine direktheit kommt dem ein oder anderen wohl etwas feindseelig vor, was aber nicht so gewollt ist. Bin einfach nur direkt. Zu den Strings: Einen String definierst du in Bmax ja mit "Variable:string" oder "Variable$". Vieles tut er ja noch automatisch umrechen, ansonsten ist wohl das Schlüsselwort "String" dein Ersatz für "Str$". Zu dem Strict Fehler: Das Problem ist, im Strict Modus ist die Mischung von Prozeduraler und Objekt Orientierter Programmierung nicht mehr ganz erlaubt. Wenn du im Editor WriteStream schreibst und dann auf F1 drückst, müsste unten in der Statusleiste die Funktionsdefinition stehen. WriteStream:TStream(Url:Object) Das bedeutet, diese Funktion gibt dir eine Type Instanz von TStream zurück. Es muss also heißen: out:TStream = WriteStream("mygame.ini") Wenn du es so machst, kannst du out mit Funktionen nutzen und auch direkt auf die Methoden und Fields zugreifen out.method(). Wenn du out als integer Variable behandelst, kannst du sie nurnoch für Funktionen weiternutzen. Dies ist aber mit dem Strict Modus nicht mehr erlaubt. Ich weiß, sehr verwirrend für den Anfang, aber man kommt schnell hinter das System. Wie der TStream und andere Types aufgebaut sind und welche Variable und Methoden drinstecken, kannst du direkt im Modulcode nachlesen. Den gibt es im brl Modulordner. mod/brl.mod/stream.mod z.b. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
suco-x hat alles erklärt...
Wen du Strict verwendest, was ich dir auch echt anrate, so musst du alle Variabeln die du verwendest immer deklarieren. Code: [AUSKLAPPEN] local i:int local f:float local stream:tstream type mytype field x:int field y:int end type global player:mytype So weisst du mit absoluter Sicherheit: - Variabeln nie doppelt deklarriert sind - oder falsch geschrieben sind - wo genau der Fehler ist fals der Compiler meckert - der Quellcode ist besser verständlicher/lesbarer ein wenig mehr schreibarbeit, die dir aber beim Entwickeln sehr nützlich ist... |
||
![]() |
ThommesBetreff: Re: ........ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Suco-X hat Folgendes geschrieben: Hi
Sollte nur ein Hinweis sein. Würde ich dir böse sein, hätte ich den Thread einfach ignoriert und garnichts gesagt. Meine direktheit kommt dem ein oder anderen wohl etwas feindseelig vor, was aber nicht so gewollt ist. Bin einfach nur direkt. Zu den Strings: Einen String definierst du in Bmax ja mit "Variable:string" oder "Variable$". Vieles tut er ja noch automatisch umrechen, ansonsten ist wohl das Schlüsselwort "String" dein Ersatz für "Str$". Zu dem Strict Fehler: Das Problem ist, im Strict Modus ist die Mischung von Prozeduraler und Objekt Orientierter Programmierung nicht mehr ganz erlaubt. Wenn du im Editor WriteStream schreibst und dann auf F1 drückst, müsste unten in der Statusleiste die Funktionsdefinition stehen. WriteStream:TStream(Url:Object) Das bedeutet, diese Funktion gibt dir eine Type Instanz von TStream zurück. Es muss also heißen: out:TStream = WriteStream("mygame.ini") Wenn du es so machst, kannst du out mit Funktionen nutzen und auch direkt auf die Methoden und Fields zugreifen out.method(). Wenn du out als integer Variable behandelst, kannst du sie nurnoch für Funktionen weiternutzen. Dies ist aber mit dem Strict Modus nicht mehr erlaubt. Ich weiß, sehr verwirrend für den Anfang, aber man kommt schnell hinter das System. Wie der TStream und andere Types aufgebaut sind und welche Variable und Methoden drinstecken, kannst du direkt im Modulcode nachlesen. Den gibt es im brl Modulordner. mod/brl.mod/stream.mod z.b. Mfg Suco Ich gebe Dir Recht..... Ich weiss, manchmal ist Geduld die grösste Tugend. Deinen Tip habe ich gestern Abend noch befolgt und es funktioniert. Ich wollte eigentlich gestern noch antworten, aber ich war dann rein Programmiertechnisch so im Fluss ![]() Ich denke, das ich das Info-Fenster des Programms etwas groesser machen muss, damit ich alle netten Helferlein hier aus dem Forum im Programm verewigen kann. Ich muss sagen, das ich in den letzten Tagen (auch Durch die Hilfestellungen im Forum) viel dazugelernt habe und beginne mich mit BlitzMax anzufreunden. Es war auf jeden Fall die richtige Entscheidung! Ich werde in der nächsten Zeit wohl noch die eine oder andere Frage hier posten, aber bistimmt auch irgend wann mal so weit sein, das ich hier auch meinen Beitrag leisten kann. Deine direkte Art ist ok. Noch mal danke für den Tip... |
||
![]() |
Thommes |
![]() Antworten mit Zitat ![]() |
---|---|---|
rema hat Folgendes geschrieben: suco-x hat alles erklärt...
Wen du Strict verwendest, was ich dir auch echt anrate, so musst du alle Variabeln die du verwendest immer deklarieren. Code: [AUSKLAPPEN] local i:int local f:float local stream:tstream type mytype field x:int field y:int end type global player:mytype So weisst du mit absoluter Sicherheit: - Variabeln nie doppelt deklarriert sind - oder falsch geschrieben sind - wo genau der Fehler ist fals der Compiler meckert - der Quellcode ist besser verständlicher/lesbarer ein wenig mehr schreibarbeit, die dir aber beim Entwickeln sehr nützlich ist... Richtig.... siehe oben. Der Rat mit Strict ist bereits seit Anfang umgesetzt. Eine starke Sache dieser Strict-Befehl, wenn er auch manchmal echt Nervt. Naja, macht man alles richtig, nervt er nicht ![]() Aber ich mache nichts ohne Strict. Trotzdem auch an Dich ein nettes Danke für die Hilfe... MfG... Thommes |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
huhu
Es gibt da oben rechts so einen schnieken Edit-Button ( ![]() ![]() Zur Erklärung: Doppelposts sind nicht gern gesehen hier. greetz |
||
![]() |
Thommes |
![]() Antworten mit Zitat ![]() |
---|---|---|
d-bug hat Folgendes geschrieben: huhu
Es gibt da oben rechts so einen schnieken Edit-Button ( ![]() ![]() Zur Erklärung: Doppelposts sind nicht gern gesehen hier. greetz Ich kann da kein doppeltes posting sehen... ![]() OK. die könnte ich etwas kürzer halten. Da haste Recht.. Sorry!! CU... |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne, das meine ich nicht, aber du hast innerhalb von 3 Minuten 2 Postings abgeliefert. Das hätte man doch auch in eines Packen können. Vielleicht bin auch einfach nur zu pingelig ![]() greetz |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group