ERLEDIGT
NEIN
NEIN
ANTWORTEN
76
76
ZUGRIFFE
4190
4190
EMPFEHLEN
-
07.08.06 10:58 #1
Hallo zusammen. Da es einen entsprechenden Beitrag scheinbar noch nicht gibt, wollte ich mal einen aufmachen. Dieser Beitrag soll Anfängern den Einstieg erleichtern. Jeder ist herzlich eingeladen sich zu beteiligen.
Hinweis: Die hier behandelten Themen beziehen sich hauptsächlich auf die Entwicklungsumgebung SharpDevelop!
- Problem:
Ich bin ein Neuling in Visual Basic und habe noch von nichts eine Ahnung. Was brauche ich um anzufangen und wo bekomme ich es her?
Lösung:
Grundsätzlich braucht man nur eine Portion guten Willen, eine vernünftige Entwicklungsumgebung und eine gute Anleitung (siehe nächster Punkt). Für den guten Willen muss man leider selbst sorgen, aber den Rest gibt es hier. Die zwei populärsten Entwicklungsumgebungen sind (zumal kostenlos):- Visual Basic 2005 Express: Offizielles Tool von Microsoft für (logisch) Windows
- SharpDevelop: OpenSource Projekt großem Funktionsumfang für Windows. Für dieses Programm ist außerdem noch das .NET Framework 2.0 von Microsoft notwendig.
- Problem:
Ich finde im Internet auch nach längerer Suche keine vernünftigen Tutorials. Habt ihr da ein paar Links für mich?
Lösung:
Liste von Einsteiger-Tutorials für VB.NET:- Wiki-Books (sehr empfehlenswert!)
- Galileo Computing
- VB lernen auf VB-Magazin.de
- VB in 21 Tagen
- diverse Tutorials
- Und natürlich: Tuts hier auf Tutorials.de
- Problem:
Mein erstes Programm wird nicht erfolgreich kompiliert. Fehlermeldung: "Es wurden keine Eingabequellen angegeben (BC2008)
Lösung:Code :1 2 3 4 5 6 7 8 9 10 11 12 13
Class HalloWelt Shared Sub Main() Dim Variable As String = "Hello World" ' Variable deklarieren Console.WriteLine(Variable) ' Variable ausgeben Console.ReadKey() ' Konsolenfenster erst nach Tastendruck schließen End Sub End Class
Die Datei ist aller Wahrscheinlichkeit nach keinem Projekt (Solution) zugeordnet. Um das zu ändern bitte in der linken Liste das Projekt markieren und darin eine neue Datei erstellen. Jetzt den bisher erstellten Quellcode per copy/paste in die neue Datei einfügen und ausprobieren.
- Problem:
Wenn ich mit Hilfe des Befehls "System.Windows.Forms.MessageBox.Show(Variable)" versuche eine Variable auszugeben bekomme ich die Fehlermeldung "Windows ist kein Member von System (BC30456)".
Lösung:
Wenn sie eine neue Datei erstellen, müssen sie für diesen Befehl die Vorlage für eine Windows-Anwendung auswählen. Nur hier stehen die notwendigen Referenzen zur Verfügung.
Geändert von Vertigo21 (10.08.06 um 08:38 Uhr) Grund: Erweiterung des Beitrages
Seine Worte wurden zum Sinnspruch für die ausgehenden Tage des 20. Jahrhunderts, eine Epoche, in der die Wirklichkeit die Satire nahezu aussterben ließ.
- Judith Stone , "Murphy's Gesetze - Das Gesetz vom Scheitern", 14.11.2005 -
Bist auch du ein Pastafari?
Wir haben bezahlt!
Ich bin ein PIRAT!
___________________________________
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination.
- Problem:
-
07.08.06 11:39 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Der Compiler scheint sich zu beschweren das keine Eingabedateien angegeben wurden. Ich vermute mal du hast die Datei nicht zum Projekt bzw. der Solution hinzugefügt?
Wenn du eine String Variable deklarieren möchtest, geht das so:
Zitat von Vertigo21
Allerdings kann dir SharpDevelop auch Arbeit abnehmen wenn du die Variable gleich initialisierst, denn dann kann das Programm automatisch feststellen welchen Typ die Variable haben muss:Code vb:1
Dim Variable As String = "Hello World"
wird nachdem du die Zeile mit der Eingabetaste bestätigst zu dem oberen Ausdruck - also das Fragezeichen wird automatisch durch String ersetzt.Code vb:1
Dim Variable As ? = "Hello World"
Welche Version von SharpDevelop verwendest du denn eigentlich?
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
07.08.06 12:32 #3Version 2.0.0, Built 1591.
Zitat von deepthroat
Das mit dem automatischen Zuweisen von Datentypen finde ich sehr interessant. Erinnert ein wenig an PHP, denn da passiert das (fast) immer automatisch.
Habe es jetzt mal geändert:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
Class HalloWelt Shared Sub Main() 'Option Explicit On Dim Variable As String = "Hello World" Console.WriteLine(Variable) 'System.Windows.Forms.MessageBox.Show(Variable) End Sub End Class
Ja, daran hat es gelegen. Jetzt ruft er ganz kurz ein DOS-Fenster auf und verschwindet gleich wieder. Versuch ich es mit dem Befehl System.Windows.Forms.MessageBox.Show(Variable) Bekomme ich die Fehlermeldung "Windows ist kein Member von System (BC30456)".
Zitat von deepthroat
Geändert von Vertigo21 (07.08.06 um 16:59 Uhr)
Seine Worte wurden zum Sinnspruch für die ausgehenden Tage des 20. Jahrhunderts, eine Epoche, in der die Wirklichkeit die Satire nahezu aussterben ließ.
- Judith Stone , "Murphy's Gesetze - Das Gesetz vom Scheitern", 14.11.2005 -
Bist auch du ein Pastafari?
Wir haben bezahlt!
Ich bin ein PIRAT!
___________________________________
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination.
-
07.08.06 12:51 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Gut. Das ist auch genau das was zu erwarten war. Evtl. kannst du in der DOS Box auch noch den Text "Hello World" erkennen. Damit sich das Fenster nicht sofort wieder schließt, kannst du z.B. die Anweisung
Zitat von Vertigo21
als letzte Anweisung einfügen. Dann mußt du erst eine Taste drücken damit das Programm beendet wird.Code vb:1
Console.ReadKey()
Um eine Windows Anwendung zu schreiben, solltest du mit einem Windows Application Projekt anfangen. Im Consolen Application Projekt fehlen die entsprechenden Referenzen auf die Windows Form Assembly's (die du natürlich auch noch manuell hinzufügen könntest).
Zitat von Vertigo21
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
07.08.06 16:33 #5
Stimmt. Ich hatte mich am Anfang extra für eine "leere Datei" und nicht für ein Windows-Projekt entschieden. Da lag der Fehler. Meine Liste ganz oben habe ich bereits aktualisiert. Ich hoffe, gemeinsam können wir später noch ein paar Punkte klären.
Geändert von Vertigo21 (07.08.06 um 16:44 Uhr)
Seine Worte wurden zum Sinnspruch für die ausgehenden Tage des 20. Jahrhunderts, eine Epoche, in der die Wirklichkeit die Satire nahezu aussterben ließ.
- Judith Stone , "Murphy's Gesetze - Das Gesetz vom Scheitern", 14.11.2005 -
Bist auch du ein Pastafari?
Wir haben bezahlt!
Ich bin ein PIRAT!
___________________________________
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination.
-
Hoffentlich finden unsere lieben Anfänger diesen Thread auch....
Noch kleine Anmerkung: VB 6.0 (und niedriger) unterscheiden sich stark von VB.Net (zu VB.Net gehört auch VB 2005!)
Also bei der Wahl des Tutorials drauf achten!hihi = -h²
-
09.08.06 08:41 #7
Ein guter Einwand. Den Link zu dem VB6- Tutorial habe ich entfernt.
(Hui, mein 150ster Beitrag. Ich hatte eigentlich gehofft, er hätte mehr Inhalt. Aber naja.)Geändert von Vertigo21 (09.08.06 um 08:43 Uhr)
Seine Worte wurden zum Sinnspruch für die ausgehenden Tage des 20. Jahrhunderts, eine Epoche, in der die Wirklichkeit die Satire nahezu aussterben ließ.
- Judith Stone , "Murphy's Gesetze - Das Gesetz vom Scheitern", 14.11.2005 -
Bist auch du ein Pastafari?
Wir haben bezahlt!
Ich bin ein PIRAT!
___________________________________
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination.
-
VB-Seminar ist ebenfalls ein Tutorial zu VB6.
Mach doch einfach zwei Listen, eine zu VB6 und eine zu VB.Net. Schließlich kreuzen hier immer wieder Anfängerfragen zu VB6 auf, das heißt es gibt wohl Leute die jetzt noch mit VB6 anfangen.hihi = -h²
-
10.08.06 08:43 #9
@Shakie: Erledigt.
@All:
Ich bin immer noch mit den Grundlagen beschäftigt und bin jetzt bei den Funktionen angekommen. Allerdings werden in zwei verschiedenen Tutorials auch zwei verschiedene Möglichkeiten dafür aufgeführt:
Wiki-Books empfiehlt:
Code :1 2 3 4
Private Sub BeendeDasProgramm() MessageBox.Show(a) End End Sub
Galileo-Computing empfiehlt aber es folgendermaßen zu machen:
Code :1 2 3
Function WURZEL2() As Double Return[URL="http://www.tutorials.de/forum/"][/URL] System.Math.Sqrt(2) End Function
Unabhängig vom Inhalt der jeweiligen Funktionen, welche Methode würdet ihr vorziehen, bzw. welche hat sich im täglichen Gebrauch als sinnvoller erwiesen oder ist es gar völlig egal?Seine Worte wurden zum Sinnspruch für die ausgehenden Tage des 20. Jahrhunderts, eine Epoche, in der die Wirklichkeit die Satire nahezu aussterben ließ.
- Judith Stone , "Murphy's Gesetze - Das Gesetz vom Scheitern", 14.11.2005 -
Bist auch du ein Pastafari?
Wir haben bezahlt!
Ich bin ein PIRAT!
___________________________________
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination.
-
Hi,
das sind doch 2 unterschiedliche Dinge, einmal ein Sub ohne Rückgabewert und einmal eine Funktion mit Rückgabewert.
Das kommt auf das Anwendungsgebiet an, für was Du Dich entscheidest.
-
10.08.06 09:20 #11Es wäre vielleicht praktisch, wenn du dies alles zusammenstellst und daraus ein Tutorial machst, wir sind ja hier schliesslich auf tutorials.de
Zitat von Vertigo21

Das kannst du nicht so vergleichen. Eine Sub ist eine Prozedur d.h. eine Stapelung von diversen Anweisungen, welche nacheinander ausgeführt werden. Wurden alle Anweisungen in der Prozedur abgehandelt, geht das Programm weiter. Ein Beispiel aus dem täglichen Leben wäre z.B. "ApfelEssen". Wenn Dir dein Gehirn sagst du sollst den Apfel essen dann machst du es und danach machst du was anderes.
Zitat von Vertigo21
Eine Funktion jedoch hat einen Rückgabewert. In einer Funktion werden z.B. diverse Sachen berechnet und dann zurückgegeben. Wenn du zum Beispiel wissen willst, wieviele Äpfel du heute schon gegessen hast, rufst du die entsprechende Funktion auf, welcher Dir den Wert zurückgibt.
Es kommt also ganz darauf an was du gerade machst. In praktisch allen Projekten und Programmen verwendest du jedoch immer Prozeduren UND Funktionen.Geändert von aquasonic (10.08.06 um 09:26 Uhr)
MfG AqUaSoN!C
o Wie man richtig Fragen stellt o
o Nicht in Problemen sondern in Lösungen denken! o
o Es gibt 2 Dinge, die sind unendlich: das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir noch nicht ganz sicher. o
> Meine Linksammlung > http://linksys.aquasonic.ch
> Mein Wiki > http://wiki.aquasonic.ch
-
10.08.06 09:25 #12
Ach so. Bei Wikibooks stand der Begriff "sub" unter "Funktion". Dann wäre das ja geklärt. Ist offensichtlich nur ein Formulierungsfehler im Wiki-Book.
Seine Worte wurden zum Sinnspruch für die ausgehenden Tage des 20. Jahrhunderts, eine Epoche, in der die Wirklichkeit die Satire nahezu aussterben ließ.
- Judith Stone , "Murphy's Gesetze - Das Gesetz vom Scheitern", 14.11.2005 -
Bist auch du ein Pastafari?
Wir haben bezahlt!
Ich bin ein PIRAT!
___________________________________
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination.
-
10.08.06 09:28 #13
Siehe noch meine Änderung im oberen Post

Ja da hast du recht. Grundsätzlich gibt es beim programmieren nur Methoden, enweder mit oder ohne Rückgabewert.
zum Beispiel mit Rückgabewert:
Code :1
public string bla() {}
ohne Rückgabewert:
Code :1
public void bla() {}
Aber ist ja bekannt dass die Microsoft immer anders machen muss
MfG AqUaSoN!C
o Wie man richtig Fragen stellt o
o Nicht in Problemen sondern in Lösungen denken! o
o Es gibt 2 Dinge, die sind unendlich: das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir noch nicht ganz sicher. o
> Meine Linksammlung > http://linksys.aquasonic.ch
> Mein Wiki > http://wiki.aquasonic.ch
-
10.08.06 09:39 #14Früher oder später werde ich das sowieso. Nur wollte ich erstmal etwas sammeln.
Zitat von aquasonic
Wenn man bei Wikibooks weiterliest kommt man gegen Ende tatsächlich auch zum Wörtchen "Function". Allerdings wird der Unterschied nicht so ganz klar. Ich werde das oben noch mit einarbeiten.
##### EDIT ##########
Noch eine allgemeine Frage zum Aufbau:
Beispiel:
Zur ersten Zeile: "ByVal Zahl As Integer" ist ja noch einleuchtend, aber warum wird hinter der Klammer nochmals "As Integer" benötigt?Code :1 2 3 4
Private Function Verdoppeln(ByVal Zahl As Integer) As Integer Dim Doppel As Integer = 2 * Zahl Return Doppel End Function
Geändert von Vertigo21 (10.08.06 um 10:15 Uhr)
Seine Worte wurden zum Sinnspruch für die ausgehenden Tage des 20. Jahrhunderts, eine Epoche, in der die Wirklichkeit die Satire nahezu aussterben ließ.
- Judith Stone , "Murphy's Gesetze - Das Gesetz vom Scheitern", 14.11.2005 -
Bist auch du ein Pastafari?
Wir haben bezahlt!
Ich bin ein PIRAT!
___________________________________
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination.
-
Weil das der Rückgabetyp der Funktion ist.

[edit]
Zitat von aquasonic
Funktion sollte man nicht immer nur verwenden um Werte von irgend wo her zu beziehen.
[/edit]
Bevor ich weiter ausführe ein paar Basics für .NET:
Es gibt Wert-Typen ( Strukturen und alle primitiven Datentypen ), welche ansich ja auch nur Strukturen sind.
Und gibt es noch die Referenz-Typen ( Klassen ). Wenn Du Referenztypen zuweist,
hast immer eine Referenzkopie auf das selbe Objekt. Bei Werttypen eine Kopie,
was sich dann auch bei den Methodenaufrufen wieder spiegelt.
D.h. dass die Parameter einer Methode die Werttypen sind kopiert werden,
aber Referenztypen hingegen direkt verändern kannst. Damit meine ich aber nur deren den Inhalt.
Wenn Du Referenztypen neu instanzierst geht die Referenz verloren und Du hast 2 unterschiedliche Objekte.
Du kannst aber ich das Verhalten der Werttypen mittels Ref und Out Parameter
dahingehend beeinflussen, dass sie sich bei Methodenaufrufen wie Referenztypen verhalten.
Daher ist es nicht immer so das man Informationen nur durch einen Rückgabewert bekommen kann.
Die Informationen können sich aber auch innerhalb eines Objekts/Klasse befinden,
welches sich um eine Bestimmte Aufagbe kümmert. Daher ist es nicht immer notwendig,
sich einen Wert durch eine Methode/Funktion zu holen, was zudem auch immer einen Overhead bedeutet.
Stichwörter (Sry, Links sind leider für c# *g*):- Value Types
- Reference Types
- Access Modifiers (Zugriffsmodifzierer)
- Accessibility Levels (Zugriffsebenen)
- Properties (Zugriffsschnittstellen)
- Ref
- Out
Das ist zwar richtig aber man sollte das nicht so weit runter brechen.
Zitat von aquasonic
In der Prozeduralen Welt mag das vielleicht so sein aber so formuliert man es nicht nicht
nach den Idiomen der heutigen Anwendungsentwicklung.
Was ich sagen will das man nicht nur in Methoden und Funktionen denke solllte,
Man muss jedes Problem dahingehend abstrahieren können das man die Aufgaben
in Teilaufgaben zerlegt (Methoden/Funktionen) und in einem Objekt/Klasse zusammengefasst.
Mehrere Klassen werden wiederum in Aufagenbereiche (Namespaces) zusammengefasst.
Das ganze nennt sich OOP (Object-Oriented Programming / Objekt Orientierte Programmierung).
Die OOP ist zZ das aktuelle Paradigma der Anwendungsentwicklung und ist aus der Notwendigkeit herraus entstanden,
die IT Branche aus der damaligen Softwarekriese herraus zu führen.
Würde man sie die heutzutage auch gekonnt einsetzen, hätte man nicht solch blamable Fälle
wie eine unwartbare Arbeitslosengeld 2 Software die Millionen verschlang (Initiator Peter Harz - Vorstand Harzkommision).
Lass Dir das eine Lehre sein Vertigo21.
Du solltest dich bevor Du dich überhaupt an das umsetzen irgend welcher Programme
erst mal mit den Grundlagen deiner Programmiersprache vertraut machen.
Lern wirklich alle Schlüsselworter und mach dich mit den Namespaces des Frameworks vertraut.
Dafür ist die MSDN da und probier alles akriebisch aus. Alles weitere kann man dann hier besprechen.
Von einem Tut würd ich übrigens erst mal abraten.
Geändert von Christian Kusmanow (10.08.06 um 11:41 Uhr)
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
Ähnliche Themen
-
Grundlage Frage zu AS3 (import etc.) [Anfänger Thread]
Von SonMiko im Forum Flash PlattformAntworten: 2Letzter Beitrag: 27.11.08, 11:21 -
Anfänger Thread Frage
Von afurtenbacher im Forum JavaAntworten: 12Letzter Beitrag: 09.05.07, 22:55 -
Thread A stösst Änderung in Thread B an. Aber wie?
Von BeaTBoxX im Forum .NET CaféAntworten: 12Letzter Beitrag: 13.12.06, 11:52 -
Thread public [Anfänger]
Von MrHoki im Forum JavaAntworten: 2Letzter Beitrag: 04.03.05, 19:52 -
max - c4d (Thread split by IKEAFREAX on 09.07.2002 23:43 (thread by pasq))
Von pasq im Forum 3D Studio MaxAntworten: 19Letzter Beitrag: 12.07.02, 11:13





Zitieren
Login





