Seite 2 von 3
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 29.12.2015 23:15
von NeoChris
@xXRobo_CubeXx
Gut gekontert
Ich schliesse mich der Mehrheit an.
Liebe Grüsse aus der schönen Schweiz.
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 29.12.2015 23:32
von C h r i s :)
+1
man sollte ein führerschein für programmierer einführen so das solche anfängerfehler nicht passieren.

Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 29.12.2015 23:41
von NeoChris
Eine sehr gute Idee!!
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 29.12.2015 23:48
von xXRobo_CubeXx
Aber beim Autoführerschein gibt es auch Möchtegern-Fahrer trotz bestandener Fahrprüfung und machen trotzdem die dümmsten Fehler.

So ganz vermeiden kann man da durch nicht.

Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 30.12.2015 00:25
von C h r i s :)
stimmt du hast recht. gutes beispiel

dann kann man nur hoffen dass es wenige ignorante programmierer wie möglich gibt. sonst kommt man im leben nicht weiter. besonders im berufsleben.
fehler machen wir alle aber seine eigenen fehler nicht eingestehen ist wirklich nur peinlich wie du schon richtig sagtest.
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 30.12.2015 12:02
von HeX0R
xXRobo_CubeXx hat geschrieben:Musst du wissen, wenn du unbedingt ignorant sein willst. Ist nicht mein Problem wenn deine Programme wie immer abstürzen!

Es gibt nicht ohne Grund die Warnung von Debugger! Und wenn Fred das sagt das man nicht tun sollte, dann halte dich auch an die Guidelines. Alles andere ist nur schlechtes programmieren! Oh man einfach nur peinlich
Gut das deine verbuggten Programme uberhaupt keinen interessiert.
Mächtig grosse Klappe für jemanden, der noch keine einzige Zeile Code veröffentlich hat.
Kann Dir ja dann tatsächlich nicht passieren, dass Deine "Programme" abstürzen, wa?
Ich schliesse mich Edel an.
Und der Grund weshalb es nicht erlaubt ist, ist um Anfänger nicht in die Falle tappen zu lassen.
Weil man natürlich schon Endlosschleifen produzieren kann und einem dann der Stack um die Ohren fliegt.
Aber wenn man weiss was man tut, weiss man das auch zu verhindern...
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 30.12.2015 12:26
von MenschMarkus
Die ersten Vier Posts sind OK.
So ziemlich alles was danach kommt ist eigentlich überflüssig.
Es spiegelt nur persönliche Einschätzungen wieder, die mit der Frage selbst nichts zu tun haben.
Ich denke mal JEDER war mal Anfänger. Es gibt keinen hier der von Anfang an ALLES gewusst hat und KEINE Fehler gemacht hat.
Ein gutes Forum zeichnet aus, dass Fragen beanwortet werden und nicht die Programmierfähigkeit angeklagt wird.
Außerdem, eine dumme Frage bringt mich weiter als eine dumme Antwort. Es gibt nämlich keine dumme Fragen.
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 30.12.2015 12:34
von schleicher
Schön wäre es, wenn mal hier schreibt, wie es denn richtig gemacht wird. Ich bekomme auch diese Meldung, wenn ich in einer Procedure
aufrufe. Aber mache ich das nicht, dann erfolgt keine Anzeige im Window. Hier mal ein Beispiel, wo das auftritt
Code: Alles auswählen
Procedure.s list_ftp_movie(dir$)
Define movie.s, f$, string_orginal.s
If IsFTP(#Ftp)
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
dir$=RemoveString(dir$,"|x|--->" )
CompilerElse
CompilerEndIf
SetFTPDirectory(#ftp,dir$)
If ExamineFTPDirectory(#ftp)
While NextFTPDirectoryEntry(#ftp)
f$=""
f$= FTPDirectoryEntryRaw(#Ftp)
f$=ReplaceString(f$,Chr(32),",") :f$=ReplaceString(f$,",,,,,",","):f$=ReplaceString(f$,",,,,",","):f$=ReplaceString(f$,",,,",","):f$=ReplaceString(f$,",,",","):
AddElement(info_distant()):
info_distant()\size.s=Str(FTPDirectoryEntrySize(#ftp)/1024)
info_distant()\size_byte=Str(FTPDirectoryEntrySize(#ftp))
info_distant()\dat.s=StringField(f$,6,",")+" "+StringField(f$,7," ")+","+StringField(f$,8,",")
info_distant()\type.l=Val(StringField(f$,2,","))
info_distant()\link.s=StringField(f$,11,",")
info_distant()\Name = FTPDirectoryEntryName(#ftp)
If GetExtensionPart(info_distant()\name.s)="ts"
moviename=movie
datum_zeit=filter_datum_movie(movie)
info_distant()\Dat=datum_zeit
moviename=Mid(moviename, 16)
Delay(20)
If IsWindow(#Window_Wait_Movie)
SetGadgetText(#String_moviescanner, "Add : "+ moviename+ " from "+ dir$)
EndIf
While WindowEvent() :Wend
AddGadgetItem(Gadget_List_FTP, i, moviename+Chr(10)+sizemb+" MB"+Chr(10)+datum_zeit,ImageID(#tsmovie))
EndIf
If GetExtensionPart(movie)="mp4"
If IsWindow(#Window_Wait_Movie)
SetGadgetText(#String_moviescanner, "Add :"+ moviename+ " from "+ dir$)
EndIf
While WindowEvent() :Wend
AddGadgetItem(Gadget_List_FTP, i, movie+Chr(10)+sizemb+" MB"+Chr(10)+info_distant()\Dat,ImageID(#mp4movie))
EndIf
If GetExtensionPart(movie)="flv"
If IsWindow(#Window_Wait_Movie)
SetGadgetText(#String_moviescanner, "Add :"+ moviename+ " from "+ dir$)
EndIf
;While WindowEvent() :Wend
AddGadgetItem(Gadget_List_FTP, i, movie+Chr(10)+sizemb+" MB"+Chr(10)+info_distant()\Dat,ImageID(#flvmovie))
EndIf
EndIf
Wend
FinishFTPDirectory(#ftp)
SortStructuredList(info_distant(), 0, OffsetOf(info_distant\Name_ori.s), TypeOf(info_distant\Name_ori.s))
ResetList(info_distant())
ResetList(info_distant())
While NextElement(info_distant())
If info_distant()\Name_ori.s=".." Or info_distant()\Name_ori="."
DeleteElement(info_distant())
EndIf
Wend
EndIf
Else
MessageRequester("Info","Connection Closed !",#MB_OK|#MB_ICONINFORMATION|#MB_DEFBUTTON1|#MB_APPLMODAL)
EndIf
EndProcedure
Wie müsste man es richtig schreiben, damit alles ohne das WindowEvent abzufragen funktioniert ?
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 30.12.2015 12:43
von Kiffi
schleicher hat geschrieben:Schön wäre es, wenn mal hier schreibt, wie es denn richtig gemacht wird.
das können wir nur, wenn ein (kurzer und lauffähiger) Code gepostet wird, anhand dessen man den Fehler nachvollziehen kann. Das habt Ihr beide (ThoPie und Du) noch nicht getan.
Grüße ... Peter
Re: [5.41] Fehlermeldung bei WaitWindowEvent()
Verfasst: 30.12.2015 12:52
von GPI
Doch, es gibt schon dumme Fragen. Und es tut mir leid, den Threadersteller weiter zu helfen dürfte ohne Code nahezu unmöglich sein.
Aber lassen wir den Unsinn mit den Programmierführerschein mal weg: Meistens gibt es verdammt gute Gründe, warum etwas nicht erlaubt ist, obwohl es theoretisch funktioniert. Das war schon zu 16-Bit Zeiten so. Bspw. beim guten alten Atari-ST. Da haben sich viele Programmierer drauf verlassen, das eine Systemroutine bei einer bestimmten Speicherzelle ist. Dann kam ein Update des Betriebsystems und die Routine ist umgezogen. Ergebnis: Viele Programme haben auf einmal nicht mehr funktioniert. Damals war das Betriebsystem noch auf einen ROM fest eingebaut. Sprich auf das Problem trat dann nur bei neuen Geräten auf, bei alten nicht. War gar nicht so einfach, den Fehler so zu reproduzieren, ohne neue Hardware zu kaufen.
@HeX0R
Auch wenn der Typ mehr durch trollen aufgefallen ist und nichts veröffentlicht hat - das heißt noch lange nicht, das er nichts kann.
Du beschreibst sehr schön, welche Folgen auftreten können und warum man sowas nicht machen sollte. Wenn anschließend Abstürze etc. passieren, sucht man vermutlich ewig, bis man diesen Fehler gefunden hat. Zumal man hier die bösesten Fehler reinhauen kann, die zufällig auftreten oder an völlig anderer Stelle. Ein solcher Code ist sehr schwer zu pflegen.
Zudem sprichst du von "wenn man weis, was man tut". Dazu müsstest du wissen, was WindowEvent() in Detail macht, wofür sie Designed wurden etc. Diese Informationen hast du schlicht nicht - die hat Fred. Und Fred sagt eindeutig, das man es nicht machen sollten.
Die Zeiten als man drauf los programmiert hat und wenn es funktioniert hat, wars gut, sind schon lange vorbei. Sich auf undokumentierte Features verlassen ist schlicht und ergreifend eine sehr schlechte Idee. Fred könnte bspw. mit der nächsten PB-Version was ändern und anschließend läuft nichts mehr. Oder es gibt ein Windows-Update und anschließend funktioniert das auch nicht mehr - eben weil es nicht dokumentiert ist.
Du schreibst: "wenn man weiss was man tut". Das stelle ich bei Edel schon mal in Frage. Wenn man zu sowas rät, dann weist man auf Gefahren hin. Hat er nicht. Zudem hat er es jemanden geraten, der vermutlich wenig Programmiererfahrung hat (geh ich mal bei den Ausgangspost einfach mal davon aus).
@Threadersteller:
Poste mal ein Beispielcode, wo der Fehler auftritt und dann kann man dir helfen.