Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 03:32

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[How-To]Instanzierung von Forms

Discussion on [How-To]Instanzierung von Forms within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
DeinMud's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 989
Received Thanks: 127
[How-To]Instanzierung von Forms

Da ich in diesem Forum genug von sowas hab:
Code:
Form2.show()
(Dies geht, da VB.net eine implizite Instanz des Dialogs erstellt & Sie anzeigt (stammt aus VB6 Zeiten))
Zeig ich euch einfach mal, wie und vorallendingen wieso man eine Klasse instanzieren sollte;

Warum sollte man eine Klasse instanzieren?

Zu allererst, was ist eine Klasse?

Eine Klasse ist der Bauplan eines Objekts, welcher bei der instanzierung mittels dem Schlüsselwort new gegründet wird (also das Objekt). Wenn wir nun ohne Instanzierung auf die Klasse zugreifen, führt dies dazu, dass am Bauplan Sachen verändert werden --> Auswirkungen auf weitere Instanzierungen.

Probleme bei nicht Instanzierung:
-Um Events formübergreifend zu abonnieren wird eine Instanz dieser benötigt.
-Es können keine zwei Formen angezeigt werden, da bloß ein "Objekt" bzw der Bauplan vorhanden ist.
-Da an dem Bauplan Sachen geändert werden, wird bei einer weiteren Instanzierung, das Objekt gemäß dem Bauplan gebaut --> Änderung an zukünftig instanzierten Objekten.

Wie instanziere ich eine Form nun richtig?

Eine Form instanziert ihr mittels dem Schlüsselwort new;
Code:
Dim frm as new form2
Nun gibt es zwei Möglichkeiten diese anzeigen zu lassen:
Code:
frm.show()
und
Code:
frm.showDialog()
Was ist nun der Unterschied zwischen beiden?
Die erste Methode, zeigt einfach die Form an - Die sonstige Code Durchführung wird weder angehalten, noch sonst beeinträchtigt.
Anders bei der zweiten Methode, diese hält die Code Durchführung an, solange der Dialog offen ist. Ausserdem kann der Dialog eine "Antwort" geben.
Hier mal ein kleines Beispiel:

Code:
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Using frm As New Form2
            If frm.ShowDialog() = Windows.Forms.DialogResult.OK Then
                MessageBox.Show("Ok wurde betätigt")
            End If
        End Using
    End Sub
End Class
Code:
Public Class Form2
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Me.DialogResult = Windows.Forms.DialogResult.OK
    End Sub
End Class
Mit dem Klick auf Button1 schliesst sich die Form & die Messagebox erscheint.
Dies dient also, als eine Art Dialog mit Rückgabemöglichkeit.
Ich habe hier ausserdem eine using-kapselung genutzt, da die Klasse IDisposable implementiert & somit automatisch .dispose() aufgerufen wird.
DeinMud is offline  
Thanks
1 User
Old 11/06/2013, 19:39   #2
 
elite*gold: 159
Join Date: Jun 2013
Posts: 1,776
Received Thanks: 2,004
Quote:
Originally Posted by DeinMud View Post
Da ich in diesem Forum genug von sowas hab:
Code:
Form2.show()
Quote:
Originally Posted by DeinMud View Post
Code:
frm.show()
Oha viel besser
Brendan Jordan is offline  
Thanks
2 Users
Old 11/06/2013, 22:44   #3
 
DeinMud's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 989
Received Thanks: 127
???
Ich hab bis jetzt in diesem Forum noch keinmal in einem Code Ausschnitt gesehen, dass eine Form richtig instanziert wurde.
Ist ja schon traurig sowas ^
DeinMud is offline  
Old 11/06/2013, 23:14   #4
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
Quote:
-Da an dem Bauplan Sachen geändert werden, wird bei einer weiteren Instanzierung, das Objekt gemäß dem Bauplan gebaut --> Änderung an zukünftig instanzierten Objekten.
in einem normalen .net programm sind die im designer angelegten formen bereits instanziert. man greift also keines wegs direkt auf das objekt zu sondern einfach nur auf die default instanz.

den grund das es diese default instanzen gibt ist schlicht und ergreifend das es am Anfang einfacher ist. Strikt oop ist es natürlich nicht, aber das ist .net so oder so nicht.

wenn man also keinen triftigen grund hat die formen per hand zu instanzieren ist es nicht notwendig.
tolio is offline  
Old 11/07/2013, 07:34   #5
 
DeinMud's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 989
Received Thanks: 127
Quote:
Originally Posted by tolio View Post
in einem normalen .net programm sind die im designer angelegten formen bereits instanziert. man greift also keines wegs direkt auf das objekt zu sondern einfach nur auf die default instanz.

den grund das es diese default instanzen gibt ist schlicht und ergreifend das es am Anfang einfacher ist. Strikt oop ist es natürlich nicht, aber das ist .net so oder so nicht.

wenn man also keinen triftigen grund hat die formen per hand zu instanzieren ist es nicht notwendig.
Hast es erfasst, das ist nicht strikt oop also finger weg davon

@Y U K I

Das hat nichts mit Besserwisserei zu tun, in diesem Forum sind bloß viele Leute die
veralteten **** gelehrt bekommen, von Leuten wie dir und tolio. Also bitte erst lernen dann posten.
DeinMud is offline  
Old 11/07/2013, 10:12   #6
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
ok darf ich dann auch keine variablen mehr benutzen weil sie auch nicht strikt oop sind?
tolio is offline  
Old 11/07/2013, 12:14   #7
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
OOP ist nicht das Maß aller Paradigmen. Nur mal so eingeworfen.
Schlüsselbein is offline  
Old 11/07/2013, 14:12   #8
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Quote:
Originally Posted by DeinMud View Post
Hast es erfasst, das ist nicht strikt oop also finger weg davon

@Y U K I

Das hat nichts mit Besserwisserei zu tun, in diesem Forum sind bloß viele Leute die
veralteten **** gelehrt bekommen, von Leuten wie dir und tolio. Also bitte erst lernen dann posten.
1. Ich finds ziemlich daneben das du hier jemanden angreifst, der dir jede noch so doofe Frage beantwortet hat und das teilweise noch mehrmals.

2. Das ganze hat wenige mit VB6 Abwärstkompatibilität zu tun.

3. Ein Programmierparadigma soll dich unterstützen, eins der wichtigsten Dinge ist dabei zu wissen wann eine Verletzung in Ordnung ist, es geht schliesslich nicht darum das Paradigma sklavisch zu verfolgen, wenn es dich gleichzeitig behindert.

4. Wenn striktes OOP derart wichtig für dich ist versteh ich beim besten Wille nicht warum du nicht eine Sprache nutzt die von Anfang an darauf ausgelegt ist. Es hat seine Gründe warum die meisten sehr verbreiteten Sprachen die Fähigkeit haben OOP Grundsätze zu verletzen.
dready is offline  
Old 11/07/2013, 17:13   #9
 
DeinMud's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 989
Received Thanks: 127
Wer nicht oop programmiert sollte nichts mit programmieren am hut haben Punkt Wer anders meintm soll onkel google oder sich bei seinem prof beraten.
Und wenn du dich davon angegriffen fühlst dready, dann weisst du ja was schief läuft ; )
Weiterer off topic(flamewar), der nichts mit dem tutorial zu tun hat, wird nun Reported.
und vb.net benutze ich, da wir dies an der uni nutzen (Informatikstudium)
DeinMud is offline  
Old 11/07/2013, 17:32   #10
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
Quote:
Originally Posted by DeinMud View Post
Wer nicht oop programmiert sollte nichts mit programmieren am hut haben Punkt
ok lassen wir das einfach so als meinung stehen, wer mit einer "ich hab immer recht"-position in einer diskursion ankommt dem kann man eh nicht mehr helfen

Quote:
Originally Posted by DeinMud View Post
Wer anders meintm soll onkel google oder sich bei seinem prof beraten.
ich bin mir da nicht so ganz sicher was du da mit google meinst, aber offensichtlich hat dir ein professor diese ideen in den kopf gesetzt, wunderbar das es inkompetenz an hohen stellen gibt. nunja ist nicht das erste mal braucht man sich also auch nicht drüber aufregen.

Quote:
Originally Posted by DeinMud View Post
Und wenn du dich davon angegriffen fühlst dready, dann weisst du ja was schief läuft ; )
so wie ich das sehe bezog sich diese aussage auf das was er gequotet hat...

Quote:
Originally Posted by DeinMud View Post
Weiterer off topic(flamewar), der nichts mit dem tutorial zu tun hat, wird nun Reported.
Das ist hier ist eine diskursion, "wer nicht meiner meinung ist fliegt raus" zieht da einfach nicht und ein famewar ist das ganze schonmal gar nicht weil hier argumentiert wird und nicht geflammt

Quote:
Originally Posted by DeinMud View Post
und vb.net benutze ich, da wir dies an der uni nutzen (Informatikstudium)
cool story bro; würd mich mal so ganz offtopic interessieren an welcher uni das so ist


Da du ja erfolgreich meinen ersten ansatz auf diesen punkt hinzuweisen ignoriert hast (und einige hinweise anderer leute), hätte ich gerne trotzdem noch das du mir die frage beantwortest ob man jetzt keine valuetypen mehr in .net nutzen darf, schließlich sind diese auch nicht oop konform.
tolio is offline  
Old 11/07/2013, 18:16   #11
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Quote:
Wer nicht oop programmiert sollte nichts mit programmieren am hut haben Punkt
Weil? Oder lernt man auf der Rütli-Schule kein Argumentieren?
Schlüsselbein is offline  
Thanks
1 User
Old 11/07/2013, 19:08   #12
 
DeinMud's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 989
Received Thanks: 127
Quote:
Originally Posted by tolio View Post
ok lassen wir das einfach so als meinung stehen, wer mit einer "ich hab immer recht"-position in einer diskursion ankommt dem kann man eh nicht mehr helfen


ich bin mir da nicht so ganz sicher was du da mit google meinst, aber offensichtlich hat dir ein professor diese ideen in den kopf gesetzt, wunderbar das es inkompetenz an hohen stellen gibt. nunja ist nicht das erste mal braucht man sich also auch nicht drüber aufregen.


so wie ich das sehe bezog sich diese aussage auf das was er gequotet hat...


Das ist hier ist eine diskursion, "wer nicht meiner meinung ist fliegt raus" zieht da einfach nicht und ein famewar ist das ganze schonmal gar nicht weil hier argumentiert wird und nicht geflammt


cool story bro; würd mich mal so ganz offtopic interessieren an welcher uni das so ist


Da du ja erfolgreich meinen ersten ansatz auf diesen punkt hinzuweisen ignoriert hast (und einige hinweise anderer leute), hätte ich gerne trotzdem noch das du mir die frage beantwortest ob man jetzt keine valuetypen mehr in .net nutzen darf, schließlich sind diese auch nicht oop konform.
1. Dieser Thread ist keine Diskussion sondern ein Tutorial, wer meint er weiß es besser soll seinen Weg gehen, wer jedoch bereit ist es gleich richtig zu lernen kann sich das Tutorial einfach ansehen.
2. Reported für off topic weil siehe 1.
Da ich keine Lust drauf habe euch jede noch so triviale Frage zu beantworten verweise ich auf Google und auf microsoft's entwicklerbuch (dahingegen ist das opengalileo book schrott)
DeinMud is offline  
Old 11/07/2013, 19:23   #13
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Quote:
Originally Posted by DeinMud View Post
Wer nicht oop programmiert sollte nichts mit programmieren am hut haben Punkt Wer anders meintm soll onkel google oder sich bei seinem prof beraten.
Und wenn du dich davon angegriffen fühlst dready, dann weisst du ja was schief läuft ; )
Weiterer off topic(flamewar), der nichts mit dem tutorial zu tun hat, wird nun Reported.
und vb.net benutze ich, da wir dies an der uni nutzen (Informatikstudium)
Ich fühlte mich nicht angegriffen, aber ich fand es nicht sonderlich fair von dir so agressiv auf Tolio's Einwand zu reagieren, erstrecht nicht nachdem er wie ich das im Kopf habe ne Menge Zeit aufgebracht hat um dir zu helfen.

Sowohl meins als auch Tolio's Post drehten sich ganz klar um dein Tutorial, seh da beim besten Willen kein geflame oder Offtopic und es entbehrt nicht einer gewissen Ironie das du einen Satz vorher einen Seitenhieb auf mich verteilst.
Einen weiteren Satz davor erklärst du das jeder .NET, Java oder Cpp usw. usw. (ich überlass es dir weiter nachzuschlagen, denk du weißt worauf ich hinauswill), Programmierer eigentlich am besten mitm Programmieren aufhören sollte ohne auchnur einen Ansatz der Erklärung zu dem Warum abzugeben.

Genau das ist es auch was hier gerade etwas polarisiert. Aber du kannst nicht erwarten soetwas zu posten und dann zu sagen, niemand darf mehr was zu sagen.

Es geht hier darum das du auf recht angriffslustige Art und Weise etwas als absolut indisktuabel darstellst. Worauf Tolio rauswollte ist das es praktisch niemanden gibt der tatsächlich und 100% OOP Paradigmen befolgt, einfach weil es Ding gibt die deutlich bequemer sind, ohne dabei die Vorteile des ganzen total zu killen.

In dem Moment wo das hier das größte Problem mit dem Code der Leute ist können wir alle heilfroh sein.
dready is offline  
Old 11/07/2013, 19:39   #14
 
DeinMud's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 989
Received Thanks: 127
All deine genannten Progammiersprachen sind oop.
Ich habe gesagt, wer nicht oop proggt wenne die möglichkeit hat macht etwas falsch.
Es ist schwer jemandem etwas aus dem Kopf rauszuschlagen was er mal gelernt hat,
dann muss man einfach direkt sprechen, gilt nicht nur fürs proggen sondern fürs leben allgemein.
und Doch oop ist einfach pflicht geworden, solange man nicht grade mit Vb6 proggt.
Wer weitere Fragen hat, hier findet ihr kompetente Hilfe;

Aber achtung: Wennde dort soetwas wie Form2.show () bringt wirse ordentlich verdrescht gleiches gilt bei fehlender eigeninitiative & option strict off.
Ahja das oop muss ich gilt natürlich nicht unbedingt für kleine 50 zeilen Projekte, doch je grösser das Projekt desto mehr wirds pflicht.
DeinMud is offline  
Old 11/07/2013, 20:18   #15
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Nö, cpp ist nicht ausschließlich _objektorientiert_ (eine Sprache kann nicht OOP sein).

Aber schön, dass du meine Posts und Hibterfragungen einfach überliest. So macht man sich Diskussion natürlich auch einfach: nur sehen, was man sehen will.
Schlüsselbein is offline  
Thanks
2 Users
Reply

Tags
.net, c#, framework, instanzierung, vb.net


Similar Threads Similar Threads
Brushes / Formen ?
11/18/2012 - General Art - 5 Replies
Hey , Suche brushes oder formen womit ich sowas anstellen kann . http://img4.fotos-hochladen.net/uploads/parasmall 0cxjpykd3s.png Kennt da jemand packs die ich downloaden bzw kaufen kann ? lg, voltar
auoit formen
08/26/2010 - AutoIt - 3 Replies
hi ich wollte mal fragen ob amn die form der fenster i-wie ändern kann z.b zu ein 3eck oder so ähnlich ?? wenn ja wie?
Druide Formen Changen
06/06/2008 - World of Warcraft - 3 Replies
Afaik gabs schonmal sowas, ist aber verhaltet soweit ich weiß.... also, nachdem ich trotz allem mein MWCS nicht zum Laufen bekomme frage ich euch... Baerform in Skelett (nogg) / Gnoll Katzenform in Gnoll (nur wenn Baer Skelett ist) / der Tiger von den ZG Faustwaffen proc oder so, weiß es nicht genau ob es der ist sollte so aussehen: screen fuers erste rausgenommen Danke im Vorraus.. achja, dafuer brauch man die exe oder? ;o
Druid Formen
06/04/2008 - World of Warcraft - 2 Replies
Hallo habe hier im Forum einen Link zu der .mpq datei gefunden nur leider ist der download invalid. Cat (Allianz)---> Tigon Bär (Allianz)---> Gnoll Kann das vl. jemand der es hat neu uploaden oder mir schicken? 241888440 (iCQ) oder vl. gibts ja noch einen funktionierenden download link? Mfg Fortex <hr>Append on Jun 2 2007, 18:16<hr> Hat sich erledigt habe noch einen anderen Thread hier in dem Forum gefunden wo der Link funktioniert
druid formen verändern?!
05/18/2007 - World of Warcraft - 12 Replies
hey jungs, also ich hab mir nen paar posts durchgelesen aber bin nicht wirklich schlau drauß geworden :rolleyes: :rolleyes: . wäre es denn nun möglich z.b. die bär form von einem dudu in die form eines moonrage oder etwas andres zu wechseln? dudu bär => moonrage(mob) ?



All times are GMT +2. The time now is 03:32.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.