Das Bild von Word, was ich auf dem Screen sehe ist eigentlich ganz normal. Du bist nicht im Vollbild- oder Lesemodus, bist auf dem Start-Tab, Zoom ist auf 64%, anscheinend hast du ein paar Rechtschreibfehler laut dem roten Buch-Symbol in der Leiste unten, und ganz rechts ist ein Zusatztab eingeblendet, auf dem ich ganz verschwommen "PDF" lesen kann.

Sonst fällt mir aber nichts besonders auf. Könntest du vielleicht

  1. Einen größeren Screenshot machen? Auf dem kleinen sieht man kaum etwas.
  2. Schreiben, was genau du mit dem "Modus" meinst? Für mich sieht alles ganz normal aus.
...zur Antwort

Zuerst einmal macht es einen ganz großen Unterschied, ob du Admin des Servers bist oder ein einfacher User.

Wenn du Admin bist, dann kannst du - wie gesagt - entweder WorldEdit installieren, und damit schnell das Wasser entfernen (dazu gibt es dutzende Tutorials auf YouTube), oder aber du gibst "/gamemode 1" ein und bestätigst mit [Enter]. Dann bist du im Creative-Modus und kannst ganz einfach Schwämme benutzen. Mit "/gamemode 0" kehrst du wieder zum Survival-Modus zurück.

Wenn du nur ein User bist, dann bist du leider komplett machtlos, sorry. Aber als Normaluser hat man auf Servern überhaupt keine Rechte, außer die, die man halt auch so im Survival-Modus hat. In dem Fall kannst du entweder einen Admin (wenn er nett ist :D) oder einen Moderator bitten, das Wasser unter deinem Haus wegzunehmen und gegebenfalls mit Erde aufzufüllen (heute haben eigentlich die allermeisten Server WorldEdit als Standard drauf).

Wenn sich auch kein Admin oder Moderator findet, der so nett ist, bleibt dir nur noch die eine Möglichkeit, die du immer hast. Den Raum mit Blöcken zu füllen.

(Vergiss nicht: Einer von uns verdient die hilfreichste Antwort)

...zur Antwort

Meine Empfehlung, die ich immer wieder gebe:

Fang mit Visual Basic.net an, wenn du das gut kannst, dann ist der Umstieg auf C# kinderleicht, da C# genau die gleiche Entwicklungsumgebung hat und auch viele Ähnlichkeiten mit VB hat. Oder wenn du dir das zutraust, dann kannst du auch den Weg abkürzen und gleich zu C# gehen.

Weil C# viele Elemente von C# hat, kannst du, wenn du willst, schließlich von C# auf C++ gehen.

Eine Definition von C#: C# bietet die Möglichkeiten von C++, ist aber so leicht zu benutzen wie Visual Basic, weil es schwierige Konstrukte von C++ nicht enthält (oder so ähnlich).

Und wenn du erstmal auf C++ bist, dann hast du eine superbreite Palette an Möglichkeiten. Denn die Programmiersprachen haben alle ganz ähnliche Strukturen und sind in ihren Grundelementen quasi gleich. Also ist es nicht nur ganz leicht, auf C oder Java umzusteigen, sondern auch auf viele andere Sprachen, wenn du erstmal den Dreh raus hast, wie Programmiersprachen ticken :D

So habe ich es zumindest gemacht - mein Programmierweg :D

Viel Erfolg beim Programmieren-Lernen ;)

PS: Ich kann zwar noch nicht von so viel Erfahrung sprechen, ich habe eher ein sehr breites Wissen, denn ich habe schon mit vielen Programmiersprachen ein Bisschen programmiert (VB, C#, C++, C, Java, Ruby, JavaScr­ipt ein wenig), von demher habe ich von allen ein bisschen Erfahrung.

PPS: Zum Lernen kann ich die Buchreihe "Richtig einsteigen: Programmieren lernen mit Visual Basic 2010 (bzw. die entsprechende Version)" empfehlen. Die gibt es für jede Microsoft [Programmiersprache] Express Edition-Entwicklungsumgebung. Die sind zwar recht teuer, aber die nächste Bücherei hat es bestimmt ;)

...zur Antwort
In visual basic hilfe bitte!

ich wollte Packman programmieren aber die figur bewehgt sich nicht und die zehnen sollen fehler sein Link zur videovorlage : http://www.youtube.com/watch?v=PxUnO4Hu0Gs

Code : Public Class Form7

Dim richtung As Integer = 0 '1rechts 2link 3hoch 4unten
Dim lblock As Integer = 0
Dim rblock As Integer = 0
Dim ublock As Integer = 0
Dim dblock As Integer = 0
Dim i As Integer = 0
Dim maxessen As Integer = 45
Sub Bewegen()
    If richtung = 1 Then
        If rblock = 0 Then
            Pacman.Left += 10()
        End If
    End If
    If richtung = 2 Then
        If lblock = 0 Then
            Pacman.Left -= 10()
        End If
    End If
    If richtung = 3 Then
        If ublock = 0 Then


            Pacman.Top += 10()

        End If
    End If
    If richtung = 4 Then
        If dblock = 0 Then
            Pacman.Top -= 10()
        End If
    End If
End Sub

Private Sub Form7_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    If e.KeyCode = Windows.Forms.Keys.Up Then
        richtung = 3
    End If
    If e.KeyCode = Windows.Forms.Keys.Left Then
        richtung = 2
    End If
    If e.KeyCode = Windows.Forms.Keys.Right Then
        richtung = 1
    End If
    If e.KeyCode = Windows.Forms.Keys.Down Then
        richtung = 4
    End If
End Sub

Private Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick
    Call Bewegen()
End Sub
Sub wall()
    If Pacman.Right = p1.Left Or Pacman.Right = w1.Left And Pacman.Bottom > w1.Top And Pacman.Top < w1.Bottom Or Pacman.Right = w2.Left And Pacman.Bottom > w2.Top And Pacman.Top < w2.Bottom Or Pacman.Right = w3.Left And Pacman.Bottom > w3.Top And Pacman.Top < w3.Bottom Or Pacman.Right = w4.Left And Pacman.Bottom > w4.Top And Pacman.Top < w4.Bottom Or Pacman.Right = w5.Left And Pacman.Bottom > w5.Top And Pacman.Top < w5.Bottom Or Pacman.Right = w6.Left And Pacman.Bottom > w6.Top And Pacman.Top < w6.Bottom Then
        rblock = 2()
    Else
        rblock = 0
    End If
End Sub

End Class

P.S. Bei "Sub wall" ist von IF bis zum Then eine zeile und noch bei "sub Bewegen" die 10'en sind fehler hier ist die fehlermeldung :"Der Ausdruck ist kein Array oder keine Methode und kann keine Argumentliste haben"

ich hoffe ihr könnt mir helfen :)

...zum Beitrag

Warum schreibst du nicht einfach mal dem Macher des Youtube-Videos eine kleine Mail? Das habe ich auch schon mal so gemacht, und ein paar Tage später hatte er den Fehler...

...zur Antwort

Fehlermeldungen haben einen Grund! Sie dir sollen helfen, die Fehler in deinem Programm zu finden. Das, was du hier siehst ist ein ganz normales Verhalten von Microsoft Visual Basic Express Edition.

Programme mit Fehlern können nicht ausgeführt werden. Da ist es egal, ob du das Programm im Binärcode mit 0 und 1 programmierst, oder einen ganz einfachen Texteditor nimmst, oder aber die Entwicklungsumgebung Visual Basic Express Edition benutzt. Der Unterschied ist aber, dass dir VB Express Edition beim Finden des Fehlers mit allen Mitteln hilft und dich nicht in Stich lässt.

Nur mal so ein Exkurs, damit du denn Sinn von Fehlermeldungen verstehst. Damit will dich das Programm nicht ärgern oder nerven. Die sollen DIR helfen.

Deshalb hier erst einmal der ERSTE Schritt:

Schreibe bitte hier zuerst einmal die komplette Fehlermeldung, am besten ZUSAMMEN mit der Codestelle, die markiert ist und ein paar Zeilen über und unter ihr, damit wir auch den Kontext verstehen.

Dazu gibt es hier oben über dem Eingabefeld, wenn du eine Antwort schreibst, extra einen Knopf: Klicke zuerst oben auf den Button mit den zwei blauen < >-Zeichen und der blauen Schriftrolle ("Codebeispiel einfügen"). Dann füge deinen Code mit Copy&Paste dahinter ein.

...zur Antwort

Hmmm, ich komme da jetzt auch nicht mehr weiter...

Sonst ist die einzige Möglichkeit die, halt eine neues Projekt zu erstellen, wieder genau die gleichen Fenster mit Steuerelementen zu machen, die Namen der Komponenten GENAU zu übernehmen, und dann eben den Code auch in das neue Projekt rüberzunehmen und bei Problemen so weit anzupassen, dass es wieder funktioniert.

Der Prozedurname ist der Name einer Prozedur, selbsterklärend. Eine Prozedur müsstest du kennen. Bei Fenstern benutzt man am häufigsten die Ereignisprozeduren, die auf Ereignisse reagieren.

Ein Ereignis wird zum Beispiel dann ausgelöst, wenn der Benutzer auf einen Button klickt. Die Ereignisprozeduren fangen dann das Ereignis ab, und reagieren dann darauf, indem zum Beispiel die Anwendung geschlossen wird.

Also Ereignisprozeduren sind diese Code-Strukturen, in die du deinen Code reinplatzieren musst, nachdem du z.B. doppelt auf ein Steuerelement wie einen Button geklickt hast (in der Entwickleransicht, nicht beim Ausführen des Programms).

Die Argumentliste ist das, was bei einer Prozedur in den Klammern () drinsteht. Wenn es einfach nur ein leeres Klammerpaar () ist, dann gibt es keine Argumentliste. Aber oft steht in den Klammern etwas drin, z.B. "Open(path as String, mode as Integer)" oder so etwas.

In dem Fall stehen in der Liste mehrere Argumente - jede Variable in den Klammern ist ein Argument. Sobald du eine Prozedur mit Argumenten aufrufst (da steht also etwas in der Klammer drin), musst du dort in den Klammern für jedes Argument einen Wert übergeben. Das könnte dann z.B. bei der Beispielprozedur oben so aussehen: "Open("C:\file.txt, 2)"

Ok, die Antwort ist mal wieder etwas länger ausgefallen, aber wenigstens konnte ich einiges erklären :D

...zur Antwort
Visual Basics Umfrageprogramm, antworten speichern?

Ich habe ein Visual Basics programm geschrieben bei dem man haken setzen kann und würde nun gerne die dadurch entstandenen antworten irgendwie speichern. am besten als Textdokument in dem Programmordner. es sollte dann gespeichert werden wenn der knopf "envoyer" (französisch für senden) gedrückt wird.

der programm text: Public Class Launcher

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)

End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs)

End Sub

Private Sub Process1_Exited(sender As System.Object, e As System.EventArgs)

End Sub

Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    MessageBox.Show("Merci, vos informations seront communiqueés à Goethe dans quelques instants...", "Merci", MessageBoxButtons.OK)

End Sub

Private Sub CheckBox7_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox7.CheckedChanged
    MessageBox.Show("Yeah man.", "Chuck Norris:", MessageBoxButtons.OK)
End Sub

Private Sub CheckBox2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox2.CheckedChanged

End Sub

Private Sub CheckBox3_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox3.CheckedChanged

End Sub

Private Sub CheckBox5_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox5.CheckedChanged

End Sub

Private Sub CheckBox6_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox6.CheckedChanged

End Sub

Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged

End Sub

Private Sub CheckBox8_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox8.CheckedChanged
    MessageBox.Show("I gonna kill you, M********* !", "Chuck Norris:", MessageBoxButtons.OK)
End Sub

Private Sub Label1_Click(sender As System.Object, e As System.EventArgs) Handles Label1.Click

End Sub

Private Sub CheckBox4_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox4.CheckedChanged

End Sub

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub CheckBox13_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox13.CheckedChanged

End Sub

Private Sub CheckBox12_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox12.CheckedChanged

End Sub

Private Sub CheckBox11_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox11.CheckedChanged

End Sub

Private Sub CheckBox10_CheckedChanged(sender As System.Object, e As System.EventArgs) 
...zum Beitrag

Warum hast du so viele Ereignisprozeduren? Da kommt man ja gar nicht mit, welche Ereignisprozedur zu welchem Steuerelement gehört.

Am besten wäre es, du löscht erstmal alle Ereignisprozeduren, um mal aufzuräumen und den Code viel übersichtlicher zu machen.

Dann bitte den Code noch einmal so posten, wie gerade eben (Kompliment - vielen muss man erstmal ausführlich erklären, wie man die Code-Funktion benutzt und sobald man einen Screenshot will, ist Schluss :D)


Du hast gerade eben quasi nur die Maske deines Programms. Um eine Umfrage machen zu können, wertest du am besten beim Klicken des Buttons aus, welche CheckBoxen aktiviert sind, und speicherst das in einer Textdatei.


Aber mal ganz ehrlich: Hast du wirklich wenigstens eine Grundahnung von VB? Weil sonst bringt das alles gar nichts. Man kann nicht einfach so programmieren, ohne wenigstens die Grundlagen zu beherrschen.

Außerdem sieht das sehr stark nach einem Spaßprogramm aus, und ich weiß nicht, was du damit anstellen willst...

...zur Antwort

Warum kannst du das nicht einfach wieder rückgängig machen und wieder auf Windows-Forms-Anwendung umstellen? Oder möchtest du explizit eine Klassenbibliothek haben?

...zur Antwort

(Antwort Nr.4)


Falls es weiterhilft: Bist du schon auf die Seite http://social.msdn.microsoft.com/Forums/de/visualbasicde/thread/14c1d841-0c4f-4f9a-b3ce-90ca05a10052 gestoßen? Vielleicht hilft die dir ja weiter...

...zur Antwort

(Antwort Nr.2)


Puh... Das alles muss man erstmal verarbeiten... :D Eigentlich hätte nur der kleine Satz zusammen mit der Codezeile gereicht, z.B.

"Die End-Anweisung ist ungültig." oder

"Eine Anweisung kann nicht innerhalb eines Methodentextes verwendet werden. Das Methodenende wird angenommen."

(beides Fehlermeldungen, die ich gerade provoziert habe).


Die Fehlermeldung:

System.InvalidOperationException wurde nicht behandelt. Message=Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.. Source=verschlüsselung(restore) StackTrace: bei verschlüsselungrestore.My.MyProject.MyForms.CreateInstance[T](T Instance) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 190. bei verschlüsselungrestore.My.MyProject.MyForms.getForm1() bei verschlüsselungrestore.My.MyApplication.OnCreateMainForm() in C:\Users\Pascal\documents\visual studio 2010\Projects\verschlüsselung(restore)\verschlüsselung(restore)\My Project\Application1.Designer.vb:Zeile 35. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) bei verschlüsselungrestore.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81. bei System.AppDomain.nExecuteAssembly(RuntimeAssembly assembly, String[] args) bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() bei System.Threading.ThreadHelper.ThreadStartContext(Object state) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ThreadHelper.ThreadStart() InnerException: System.NullReferenceException Message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Source=verschlüsselung(restore) StackTrace: bei verschlüsselungrestore.Form1.Label23Click(Object sender, EventArgs e) in C:\Users\Pascal\documents\visual studio 2010\Projects\verschlüsselung(restore)\verschlüsselung(restore)\Form1.vb:Zeile 308. bei System.Windows.Forms.Control.OnTextChanged(EventArgs e) bei System.Windows.Forms.Label.OnTextChanged(EventArgs e) bei System.Windows.Forms.Control.setText(String value) bei System.Windows.Forms.Label.setText(String value) bei verschlüsselungrestore.Form1.InitializeComponent() in C:\Users\Pascal\documents\visual studio 2010\Projects\verschlüsselung(restore)\verschlüsselung(restore)\Form1.Designer.vb:Zeile 320. bei verschlüsselungrestore.Form1..ctor() in C:\Users\Pascal\documents\visual studio 2010\Projects\verschlüsselung(restore)\verschlüsselung(restore)\Form1.vb:Zeile 6. InnerException: 

Die Code-Zeilen:

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If threadforverschlüsselung.ThreadState = "{Stopped}" Then RichTextBox2.Enabled = True ProgressBar1.Visible = False Button2.Visible = False End If End Sub

Hmmm - der Code ist gerade so durcheinander, dass ich ihn ehrlich gesagt nicht lesen kann :D

Ich bekomme es nicht einmal hin, die fehlenden Zeilenumbrüche einzufügen und den Code zu rekonstruieren.

Wenn du das mit dem "Codebeispiel einfügen"-Knopf (< > mit blauer Schriftrolle) nicht hinbekommst, könntest du dann wenigstens hinter jeder Zeile im Code zweimal die Enter-Taste drücken, dass jedes Mal ein Absatz eingefügt wird und ich das so wieder rekonstruieren kann?

Am besten wäre es, wenn du zu der betreffenden Code-Zeile gehen würdest, dann F5 drücken würdest und einen Screenshot mit [Alt] + [Druck] oder entsprechendem Snapshot-Tool machen würdest und auf einem Bildhoster hochladen würdest, und dann noch den entsprechenden Bildlink hier einfügen würdest. Dafür könnte z.B. ich die Seite http://www.abload.de/ sehr empfehlen.

So sehen wir nämlich einmal den Code und die Fehlermeldung gleich mit und das noch alles richtig formatiert und sortiert.

...zur Antwort

(Antowort Nr.3)


PS: Ich bin noch einmal über deinen Code gegangen und bist du dir sicher, dass das der richtige Code-Ausschnitt ist? Wird genau hier der Fehler angezeigt? Weil wenn die Form nicht richtig aufgerufen werden kann, dann muss das eigentlich doch bei der Stelle sein, wo die Form aufgerufen wird und nicht irgendwo, wo eine RichTextBox oder eine ProgressBar sichtbar gemacht wird...

PPS: Nach allem, was ich bis jetzt gelesen habe, hast du irgendwo eine Objektvariable, die ins Leere zeigt, also auf gar nichts. Das ist mit großer Wahrscheinlichkeit genau die Variable für deine Form.

PPPS: Also gut... ich komme auf dieser Ebene einfach nicht weiter. Ist das Projekt privat oder könntest du mir das Projekt evtl. per E-Mail schicken? Über diese Ebene scheint es einfach nicht mehr weiterzugehen...

...zur Antwort

(Antwort Nr.1)


Hey hey hey stop, was machst du denn da? Du überfährst mich ja richtiggehend mit Informationen. So viel auf einmal brauche ich auch wieder nicht :D

...zur Antwort

"Me.Close()" ist schon richtig. Nur hast du eines nicht beachtetet:

Standardmäßig ist das allererste Fenster, das geöffnet wird, quasi das "Hauptfenster". Von diesem Hauptfenster werden dann alle weiteren Unter-Fenster geöffnet und geschlossen.

Sobald jedoch das Hauptfenster wieder geschlossen wird, beendet sich die Anwendung und alle anderen Unter-Fenster werden wieder geschlossen. Das kennt man aus vielen Programmen, dass da alle Dialoge automatisch geschlossen werden, sobald das große Hauptfenster schließt.


Dieses Verhalten kannst du jedoch in den Projekteigenschaften ändern.

Klicke dazu mit der rechten Maustaste im Projektmappen-Explorer auf den Namen deines Projekts, dann auf den Menüpunkt Eigenschaften. Jetzt öffnet sich das Projekteigenschaften-Fenster. Normalerweise müsstest du im Tab (links) Anwendung sein. Sonst klicke links einfach auf das Tab Anwendung und du bist im richtigen Bereich.

Im unteren Bereich des Fensters gibt es in der Untergruppe Eigenschaften des Windows-Anwendungsframeworks das Auswahlfeld Modus für das Herunterfahren.

Hiermit ist gemeint, wann dein Programm "heruntergefahren", also beendet wird. Klicke auf das Auswahlfeld und wähle Beim Schließen des letzten Formulars aus. Fertig!


Ab jetzt wird dein Programm erst geschlossen, wenn ALLE Fenster geschlossen sind ;-)

PS: Achja, du musst zuerst das eine Fenster öffnen und kannst erst dann das vorherige schließen, logischerweise :D

...zur Antwort

Also erstmal: Fehlermeldungen haben einen Grund! Sie sollen DIR helfen, die Fehler in deinem Programm zu finden.

Weil die Fehler kommen nicht von VB 2010. Sie sind in deinem Programm einfach drin und kommen von DIR.

Jetzt könnte dich VB 2010 auch einfach im Stich lassen und sagen: Finde du mal selbst heraus, wo der Fehler liegt, schließlich hast du ihn ja auch gemacht. Aber VB 2010 lässt dich nicht im Stich. Es hilft dir mit allen Möglichkeiten dabei, deinen Fehler zu finden.

Denn eins ist immer sicher: Programme mit Fehlern lassen sich nicht ausführen.


Deshalb hier erst einmal der ERSTE Schritt:

Schreibe bitte hier zuerst einmal die komplette Fehlermeldung, am besten ZUSAMMEN mit der Codestelle, die markiert ist und ein paar Zeilen über und unter ihr, damit wir auch den Kontext verstehen.

Dazu gibt es hier oben über dem Eingabefeld, wenn du eine Antwort schreibst, extra einen Knopf: Klicke zuerst oben auf den Button mit den zwei blaune < >-Zeichen und der blauen Schriftrolle ("Codebeispiel einfügen"). Dann füge deinen Code mit Copy&Paste dahinter ein.

Welche Änderung hast du vorgenommen? Es ist egal, ob du viel dran geändert hast oder nur wenig - du kannst mit nur EINEM einzigen Wort - nein, es reicht sogar ein Buchstabe - einen Fehler produzieren.

Die Wahrscheinlichkeit, dass der Fehler in deiner Änderung liegt, ist sehr nahe an 100%.

Bevor wir nicht die Codestelle kennen und den Kontext wissen, können wir auch nichts zu deinem "new" sagen - wir sind nicht diejenigen, die du in diesem Forum gefragt hast und wissen also dazu auch nichts.

Nur soviel kann ich ganz allgemein dazu sagen: Was ich weiß, ist, dass "new" ein Schlüsselwort ist, mit dem Speicherplatz für Objekte reserviert wird. Meistens brauchst du es, um - logischerweise - Objekte zu erstellen.


Aber fürs Erste brauchen wir mal die Codestelle, sowie die komplette Fehlermeldung.

...zur Antwort

Komm schon, das ist doch jetzt nicht so schwer. Einfach ein wenig den Kopf einschalten und nachdenken :D

Beim Pfad "C:\Musik\Lol.mp3" muss einfach nur alles bis zum '\'-Zeichen von hinten löschen. Nicht mehr, nicht weniger.

Beispiel: Ich habe eine Form: (siehe Link weiter unten bei "Ergebnis")

Das erste Textfeld heißt "txtKomplett" und das Zweite "txtOrdner".

Nun habe ich mit folgendem Code beim Klicken des Buttons den Pfad herausgefiltert:

    Dim pfadKomplett As String = txtKomplett.Text
    Dim pfadGefiltert As String = txtOrdner.Text

    pfadKomplett.Trim()
    pfadGefiltert = pfadKomplett.Remove(pfadKomplett.LastIndexOf("\"))
    txtOrdner.Text = pfadGefiltert + "\"

Das geht so: Zuerst werden mit "Trim()" alle eventuellen Leerzeichen vor und hinter der Eingabe gelöscht. Nun lösche ich alles ab einem bestimmten Index, den ich mit der Funktion "LastIndexOf()" herausfinde, indem ich nach dem letzten Vorkommen des "\"-Zeichens suche. Am Ende wird der gefilterte Pfad der Text-Eigenschaft des "txtOrdner"-Textfeldes zugewiesen - der gefilterte Pfad erscheint im zweiten Textfeld. Allerdings muss vorher noch ein '\'-Zeichen hinzugefügt werden, das hat mit dem Index zu tun, da wird ein Zeichen zuviel gelöscht. Ich könnte auch einfach dem Index genau 1 addieren.

Ergebnis: http://www.abload.de/img/dateipfadfilternergeby1j7p.jpg


Einfacher geht es mit folgendem Code:

    Dim pfadKomplett As String = txtKomplett.Text
    Dim pfadGefiltert As String = txtOrdner.Text

    pfadKomplett.Trim()
    pfadGefiltert = System.IO.Path.GetDirectoryName(pfadKomplett)
    txtOrdner.Text = pfadGefiltert + "\"

Hier passiert im Prinzip genau dasselbe, nur dass der Pfad ganz einfach schön automatisch mit einer Funktion gefiltert wird, die jedermann benutzen kann und auch die ganze Denkarbeit übernimmt. Nur muss am Ende wieder das "\"-Zeichen hinzugefügt werden, da es in der Funktion auch abgeschnitten wird.

In System.IO.Path gibt es übrigens noch eine ganze Reihe weiterer nützlicher Funktionen, wie zum Beispiel "Combine()", mit der automatisch zwei Pfade aneinander gereiht werden, mit Berücksichtigung von Backslash (), was bei einfachem aneinanderhängen von zwei Strings nicht gemacht wird.

Allgemein lohnt es sich, in System.IO reinzuschauen, da es dort viel gibt, was einem die Arbeit abnimmt.

Ich hoffe, ich konnte dir helfen :)

Ein Stern wäre nett, wenn du willst :D

...zur Antwort

Nein, das hat i.d.R keine Auswirkungen auf den Stomverbrauch.

Aber wenn du ganz sicher gehen willst: Bei mir sind Elektrogeräte wie Fernseher und PC immer an einer Steckerleiste eingesteckt. Sobald man die ausschaltet, fließt kein Strom mehr. Garantiert.

Oder du ziehst den Stecker. Damit ist es auch garantiert. Ist allerdings etwas aufwändig, immer den Stecker ein- und auszustecken, zumal dabei auch der Stecker mechanisch abgenutzt wird (alles geht irgendwann kaputt, wenn man es andauernd benutzt).

...zur Antwort

Also bei einer so komplexen und komplizierten Programmiersprache wie C++ ist es wirklich beinahe unmöglich, sich das so beizubringen, dass man damit nachher auch gut programmieren kann.

Hier braucht man einfach wenigstens eine richtige Einführung, die einem die Grundlagen mit Variablen, Konstanten, Ausdrücken, Schleifen, Abzweigungen und ganz wichtig die objektorientierte Programmierung erklärt.

Und bei C++ kommen auch noch die Zeiger dazu. Wenn du nicht weißt, wie du damit richtig umgehst, kannst du eine Katastrophe auslösen. Denn dann kann es vorkommen, dass der Zeiger auf einmal auf einen Speicherbereich zeigt, der gar nicht mehr dem Programm zugewiesen ist, und dort dann aus Versehen etwas ändern. Und wenn das etwas vom Betriebssystem ist, stürzt halt das Betriebssystem ab - tja. Und bei anderen Programmen kommt es zum Datenverlust.

Also ganz wichtig - ein Einführungsbuch zu C++. Ich denke das Geld kann man aufbringen und es wird sich ganz sicher in deiner weiteren Programmierkarriere lohnen und auszahlen. Selbst, wenn du Hobbyprogrammierer sein willst. Denn das Grundwissen kannst du sehr oft auch z.B. auf andere Programmiersprachen übertragen z.B. auf C#, Java oder Visual Basic. Außerdem weißt du, wie man beim Programmieren vorgeht und vor allem, wie man den Quelltext ordentlich hält und effektiv programmiert, auch so, dass auch andere den Quelltext nachvollziehen können.

Und wenn du aus welchen Gründen auch immer, das Geld nicht aufwenden kannst, dann geh (so wie ich auch) in die nächste Bücherei und leih dir dort ein (oder mehrere) Bücher über das Thema aus. Das ist sehr günstig, was dir sicher nahekommt und du lernst trotzdem das Programmieren und zwar richtig.

Weil auch in den ganzen Foren kaum jemand für dich die Geduld aufbringen, dir alles zu erklären, wenn du nicht einmal die Grundlagen kennst.

Und wenn du wirklich keinen Cent ausgeben willst, dann werde besser kein Programmierer, sondern suche dir etwas anderes aus. Oder such wenigstens nach kostenlosen Tutorials.

...zur Antwort

Also ich würde sagen K. wäre schon bei der ersten Kurs oder Neigungsänderung von den wirklichen G-Kräften so überrascht, und auch danach, dass er einen Blackout für den Rest bis zur Landung hätte.

Außerdem ist es im Flight Simulator leider so, dass vieles über die Tastatur und eingeblendete Elemente gemacht wird. Ich würde z.B. nicht einmal wissen, wie man die Klappen ein- und ausfährt, weil es dazu im Flight Simulator keinen Schalter gibt, sondern nur entweder Joystick-Shortcuttaste oder F5-F7.


Aber ich hätte doch eine Gegenfrage: Wenn K. eine Funk-Einführung bekommen würde, wo was ist und ein paar Manöver geflogen ist (bzw. ein paar mehr), um sich mit allem vertraut zu machen, würde er es dann vlt schaffen?

Ich meine bei der Landung - um den Sinkflug abzbremsen, Joystick zurück, und um schneller runterzugehen, Joystick vor. Und für Triebwerksleistung N1 könnte er ja immer über Funk Vorschläge bekommen, damit das Flugzeug richtig im Gleitpfad gehalten werden kann.

Und wenn der schon so viel Erfahrung damit hat, frage ich mich wirklich sehr: Warum nicht?

Was genau kommt schwieriges Neues dazu, was K. nicht bewältigen kann? Was ist der Grund dafür, dass K. es nicht schaffen wird?

Ne Wasserlandung ist ja ganz was anderes, aber eine ganz reguläre Landung auf einer asphaltierten Landebahn mit federnden Fahrwerken?

...zur Antwort