Befehl "Include", Mehrfachverwendung net möglich!

Übersicht BlitzBasic Allgemein

Gehe zu Seite Zurück  1, 2, 3

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

Jolinah

BeitragMo, Aug 02, 2004 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann musst du wahrscheinlich eben die Fonts in der include Datei font.bb global machen.

Hab ich doch oben geschrieben.
 

Edlothiol

BeitragMo, Aug 02, 2004 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Global?

Edit: Zu spät...

Jolinah

BeitragMo, Aug 02, 2004 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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..

BladeRunner

Moderator

BeitragMo, Aug 02, 2004 15:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ihr wisst sicher schon was jetzt kommt .... Rolling Eyes

[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

BeitragMo, Aug 02, 2004 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
___________________________________________________
Man Beachte diesen Strich!
between angels and insects
 

hot-bit

Gast

BeitragMo, Aug 02, 2004 15:52
Antworten mit Zitat
Hi,

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

auch dieser ist nicht zu vernachlässigen ... Wink

Toni

sbrog

BeitragMo, Aug 02, 2004 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal testen

_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_ 8)
 

Dreamora

BeitragMo, Aug 02, 2004 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
**********************************************************

sieht viel besser aus Very Happy
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

sbrog

BeitragMo, Aug 02, 2004 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo kämen wir denn da hin ?

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 

hot-bit

Gast

BeitragMo, Aug 02, 2004 16:17
Antworten mit Zitat
Hoi,

LOL...

@sbrog:

Deine Signatur finde ich sehr gut ! Wink

Toni
 

Mansoor

BeitragMo, Aug 02, 2004 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

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

BeitragMo, Aug 02, 2004 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Very Happy

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

BeitragMo, Aug 02, 2004 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
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! Wink
User posted image

Jolinah

BeitragMo, Aug 02, 2004 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

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

BeitragMo, Aug 02, 2004 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
@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-bit

Gast

BeitragMo, 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

BeitragMo, Aug 02, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm... dann ist ja Gosub schneller, aber was is mit Goto? Ist Goto schneller als Functions?
User posted image

Jolinah

BeitragMo, Aug 02, 2004 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 02, 2004 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Gehe zu Seite Zurück  1, 2, 3

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group