Befehl "Include", Mehrfachverwendung net möglich!
Übersicht BlitzBasic Allgemein
Jolinah |
Mo, Aug 02, 2004 14:20 Antworten mit Zitat |
|
---|---|---|
Dann musst du wahrscheinlich eben die Fonts in der include Datei font.bb global machen.
Hab ich doch oben geschrieben. |
||
Edlothiol |
Mo, Aug 02, 2004 14:21 Antworten mit Zitat |
|
---|---|---|
Global?
Edit: Zu spät... |
||
Jolinah |
Mo, Aug 02, 2004 14:23 Antworten mit Zitat |
|
---|---|---|
Oder wozu hat eine Funktion Parameter.
So lange du nicht schon 20 Parameter hast kannst du ja ruhig die Schrift als Parameter übergeben. Code: [AUSKLAPPEN] Main_1(font) SetFont font ... Code: [AUSKLAPPEN] repeat Main_1(Font_Arial_1) Main_2(Font_Tahoma_1) until keyhit(1) Oder wie auch immer.. |
||
BladeRunnerModerator |
Mo, Aug 02, 2004 15:40 Antworten mit Zitat |
|
---|---|---|
Ihr wisst sicher schon was jetzt kommt ....
[Ignore=on] |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Jan_Ehemaliger Admin |
Mo, Aug 02, 2004 15:49 Antworten mit Zitat |
|
---|---|---|
___________________________________________________
Man Beachte diesen Strich! |
||
between angels and insects |
hot-bitGast |
Mo, Aug 02, 2004 15:52 Antworten mit Zitat |
|
---|---|---|
Hi,
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - auch dieser ist nicht zu vernachlässigen ... Toni |
||
sbrog |
Mo, Aug 02, 2004 16:00 Antworten mit Zitat |
|
---|---|---|
Mal testen
_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_ 8) |
||
Dreamora |
Mo, Aug 02, 2004 16:04 Antworten mit Zitat |
|
---|---|---|
**********************************************************
sieht viel besser aus |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
sbrog |
Mo, Aug 02, 2004 16:17 Antworten mit Zitat |
|
---|---|---|
Wo kämen wir denn da hin ?
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° |
||
hot-bitGast |
Mo, Aug 02, 2004 16:17 Antworten mit Zitat |
|
---|---|---|
Hoi,
LOL... @sbrog: Deine Signatur finde ich sehr gut ! Toni |
||
Mansoor |
Mo, Aug 02, 2004 16:18 Antworten mit Zitat |
|
---|---|---|
hot-bit hat Folgendes geschrieben: Hi,
GENAU ! @soli: ist auch meine Meinung ! Habe mir jetzt nicht alles durch gelesen, denn da war zu viel Schwachsinn dabei ! Wenn wer *Goto*, *Gosub* benützen will, soll er es tun, solange er den Durchblick bewahrt. (ansonsten ist es ja sowieso sinnlos, da er sein eigenes *progerl* nicht checkt ! ) Ob es jetzt in Funktionen oder in Includes mit Funktionen oder nur in Includes oder nur im Haupt-Programm ist, sei jedem selbst überlassen. Und GOSUB ist ja das gleiche, als wenn man eine Funktion aufrufen würde, nur das hier keine Parameter übergeben werden. Ich für meinen Teil denke mir, daß diejenigen am meisten geschrieen haben *Goto und Gosub sind böse", weil das jene sind, die meistens von anderen Programmen abgucken. Und da sie nun keinen Durchblick hatten, war *Goto und Gosub* böse Funktionen sind echt recht schön übersichtlich ! Aber, warum soll ich mich tagelang hinsetzen, irgendwas ertüfteln, dies dann in eine Funktion packen, und zwar so, daß jeder den Code versteht ? Wenn möglich noch ohne *Goto und Gosub* ! Nur darum, damit hier irgendwelche Hosen-Kacker kommen, dies kopieren, und dann groß herum-posaunen: Seht her, MEIN Programm ! ? Wie jemand sein Programm optimal erstellt, ist ja sowieso individuell ! Da kann man höchstens Richtlinien vorgeben, wenn es nicht nur für die private Nutzung ist. Noch was: Mit 16 Jahren soll man nicht allzu große Töne spucken ! Das bekommt der grünen Farbe hinter den Ohren nicht ! ; Toni @hot-bit du hast alle meine Probleme beseitigt! Danke Nochmals! Also, es ist nicht so das Goto&Gosub das Logische Denken verringern und das lernen von BB verschlechtern sondern im Gegenteil! Dann werde ich GOTO benutzten, da ich so einen sehr guten Überblick habe und gleich der Code Optimal lauft! THXTHXTHX! Ich bin so erleichtert! |
||
User posted image |
Jolinah |
Mo, Aug 02, 2004 16:29 Antworten mit Zitat |
|
---|---|---|
Wenn du unbedingt ohne Funktionen arbeiten willst dann mach es wennschon mit Gosub.
Da brauchst du nichts global zu setzen und es funktioniert trotzdem. Nur kannst du dann nicht mehr Gebrauch machen von den tollen Parametern die es bei Functions gibt Ich und andere haben dir alles nötige gesagt zu Goto, Gosub und Funktionen. Wir wollten dir nur helfen. Eigentlich gibt es nichts was man nicht mit Funktionen lösen kann und Funktionen sind eigentlich auch dazu da um nicht mit Goto wild durchs Programm springen zu müssen. Aber letztendlich ist es deine Entscheidung wie du programmierst. Wenn du also zu 100% sicher bist es mit Goto zu machen wieso fragst du dann noch gross rum, dann benutz einfach Goto. So lange du selber den Überblick behälst und den Source sowieso nie jemand anderem geben willst ist das ja kein Problem. Ursprünglich war ja die Frage wegen Include. Aber Include ist nunmal einfach nicht dazu da ein Programm dynamisch werden zu lassen, sondern um Bibliotheken (Funktionen usw.) einzubinden die meistens jemand anderes programmiert hat. |
||
Mansoor |
Mo, Aug 02, 2004 16:48 Antworten mit Zitat |
|
---|---|---|
Also, ich werde mit Functions arbeiten aber nur für Zwecke die es auch geeignet ist! Nur, mir wurde immer erzählt das Goto&Gosub das logische Denken verringern und es sehr böse etc... ist und deshalb habe ich versucht den Befehl Goto&Gosub zu umgehen und Functions zuerschaffen. Und hot-bit hat den Kernpunkt des Problemes gelöst! | ||
User posted image |
Jolinah |
Mo, Aug 02, 2004 17:14 Antworten mit Zitat |
|
---|---|---|
Stimmt..
Goto&Gosub sind Befehle wie alle anderen auch. Ein Befehl kann nicht Böse sein. Jeder muss selber herausfinden wann es sinnvoll ist diese Befehle zu nutzen und wann nicht Jedoch.. gab es diese Befehle schon in älteren Basic sprachen und es hat sich einfach so eingebürgert das man diese Befehle nicht zu oft benutzt. Grund: Weil damit sehr unübersichtlicher Code entstehen kann. Wenn der Code sehr gross ist, und man viele If Abfragen hat und überall immer zu ner anderen Marke springt verwirrt das den Programmierer der später mal diesen Code anschauen muss. Und das Problem war ja früher das man es nicht nur für If Abfragen benutzt hat sonder auch noch um Schleifen frühzeitig abzubrechen und irgendwo aus der Schleife hinaus zu springen usw.. Es wird sogar dich selber verwirren wenn du zu viele Sprungmarken hast. Zu dem Zeitpunkt wo du noch programmierst vielleicht nicht. Aber denk daran das das Projekt vielleicht mal auf Eis gelegt wird. Oder du möchtest es später mal verbessern oder irgendwas am Code verändern. Es wird dir fast unmöglich sein dich wieder in den Code einzuarbeiten. Das gleiche gilt wenn du den Code dann noch veröffentlichst und anderen zeigen willst. Sie werden mühe haben den Code zu verstehen, auch wenn du ihn dokumentierst.. Fazit und Erfahrung aus der Geschichte: Heute verwendet man es nur noch selten. Vielleicht bei komplizierten Schleifen wo man es fast nicht anders hinkriegt ohne eine Sprungmarke, ausser man würde vielleicht 10 mal mehr code schreiben, was ja Niemand unnötig will. Das ist mit Sicherheit auch der Grund warum viele Leute eben behaupten Goto ist böse. Man sagt absichtlich so ein unzutreffendes Wort wie böse um Neulinge schon von Anfang an davon abzuhalten in diesem Stil zu programmieren. Sie würden es später nur bereuen. Mit der Zeit finden die Neulinge dann auch selber heraus was Goto macht und wozu es nützlich ist, weil es ja bekanntlich reizt etwas "verbotenes" oder "böses" kennen zu lernen. Aber den Befehl werden sie sicher nicht als erstes anschauen weil er eben "böse" ist und sie lernen erst mal zu programmieren mit Funktionen. Zitat: Nur, mir wurde immer erzählt das Goto&Gosub das logische Denken verringern und es sehr böse etc... ist und deshalb habe ich versucht den Befehl Goto&Gosub zu umgehen und Functions zuerschaffen.
Siehst du den Effekt? Genau deswegen... Es gibt viel übersichtlicheren Code mit Funktionen, und im Endeffekt sind Funktionen auch nichts anderes als Sprünge mit Goto, nur eben Versteckt so das es übersichtlich bleibt. Eine Funktion kannst du auch als solches anschauen: Code: [AUSKLAPPEN] Code.... Goto Funktionsmarke .Zurück Goto Weiter .Funktionsmarke Inhalt der Funktion Goto Zurück .Weiter Hier gehts weiter weil sonst die Funktion automatisch nochmals ausgeführt werden würde ohne ein Goto, darum muss sie übersprungen werden Mit Funktion: Code: [AUSKLAPPEN] Code Funktion() Function Funktion() Inhalt der Funktion End Function Was ist jetzt besser zum Durchblicken? |
||
Mansoor |
Mo, Aug 02, 2004 17:46 Antworten mit Zitat |
|
---|---|---|
@Jolinah
Also, nun ist die Frage, welcher Code ist schneller? a.) Nur Functions ? b.) Goto & Functions ? Danke! Beide Wege sind möglich! |
||
User posted image |
hot-bitGast |
Mo, Aug 02, 2004 17:52 Antworten mit Zitat |
|
---|---|---|
Hi,
Das ist kein gutes Beispiel gewesen ... Bei *Goto* geht es darum, daß man bei gewissen Bedingungen an eine bestimmte Stelle im Programm verzweigen kann. Bei *Gosub*, welches wie eine Funktion ist, wird ein Unterprogramm aufgerufen, und aus diesem mit *Return* wieder an die Stelle nach dem *Gosub-Befehl* zurück gekehrt. Wegen der Schnelligkeit: Da *Gosub* keine Parameter mitnimmt, werden auch keine Daten in den Registern gespeichert, und deswegen ist *Gosub* um einen Hauch schneller. Aber das ist so minimal, das es gar nicht auffällt. Erst bei zig-tausenden Aufrufen ! Toni Toni |
||
sbrog |
Mo, Aug 02, 2004 17:56 Antworten mit Zitat |
|
---|---|---|
Zitat: Der Befehl Gosub ist wesentlich schneller als Function. Der Unterschied ist sogar sehr gewaltig. Darum nehmt besser Gosub. Dies kann aber oft zu unübersichtlichen Programmen führen. |
||
Mansoor |
Mo, Aug 02, 2004 18:00 Antworten mit Zitat |
|
---|---|---|
Hm... dann ist ja Gosub schneller, aber was is mit Goto? Ist Goto schneller als Functions? | ||
User posted image |
Jolinah |
Mo, Aug 02, 2004 18:03 Antworten mit Zitat |
|
---|---|---|
Ich glaube etwa beides ist gleich schnell.
Es gab mal im Forum so nen Geschwindigkeitstest Funktionen vs. Goto Da haben sie in ner Schleife 1mio. mal Goto verwendet und 1mio. mal Funktionen. Goto war bei mir vielleicht 10ms schneller. Aber das ist für die ganze Million Aufrüfe! Ich denke von daher spielts keine Rolle. Mit dem obigen Post wollte ich dir auch nicht verbieten Goto zu verwenden, ich wollte dich lediglich über das Thema aufklären. Und wenn du eine Situation hast wo es dir halt viel leichter geht mit Goto dann verwende es mit ruhigem gewissen. Es geht ja nur darum das nicht der ganze Code davon voll ist wenn es doch so etwas praktisches wie Funktionen gibt. Das hilft dir und auch all den anderen die später vielleicht mal deinen Source betrachten dürfen. Hier nochmal ein Chaos Code, zum zeigen wohin es führen würde. Code: [AUSKLAPPEN] resx = 1024 resy = 768 bit = 32 fenster_mode = 1 Goto Graphics .Graphics_ReturnPoint Goto BackBuffer ;BackBuffer setzt eine Variable buffer auf den Backbuffer .Backbuffer_ReturnPoint Goto SetBuffer ;SetBuffer verwendet die Variable um den Buffer zu setzen .SetBuffer_ReturnPoint Repeat Goto SpielerZeichnen .SpielerZeichnen_ReturnPoint Goto PhysikEngine .PhysikEngine_ReturnPoint .SpielerZeichnen_ReturnPoint2 Goto Bla .Bla_ReturnPoint .SpielerZeichnen_ReturnPoint3 Until Keyhit(1) End .Graphics Graphics(resx,resy,bit,fenster_mode) Goto Graphics_ReturnPoint .BackBuffer buffer = BackBuffer() Goto BackBuffer_ReturnPoint .SetBuffer SetBuffer(buffer) Goto SetBuffer_ReturnPoint .SpielerZeichnen if moeglichkeit =1 then Goto SpielerZeichnen_ReturnPoint else if moeglichkeit = 2 then Goto SpielerZeichnen_ReturnPoint2 else Goto SpielerZeichnen_ReturnPoint3 Wobei man das noch nicht mal Sphagetti code nennen kann. Das schlimme ist dann erst wenn aus irgend einem Grund irgend an ein Total anderes Ort gesprungen wird und nicht immer schön dahin wo man vorher das Goto aufgerufen hatte. Und zum Thema Gosub. Das habe ich selber oft verwendet weil da im Gegensatz zu Goto immer wieder an die Richtige Stelle zurück gesprungen wird. |
||
bruZard |
Mo, Aug 02, 2004 18:12 Antworten mit Zitat |
|
---|---|---|
Schluss mit dem Blödsinn, geschlossen | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group