Autor Beitrag
HaShLo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


Flash,Visual Basic,
BeitragVerfasst: Do 06.03.08 23:51 
Hallo Leute !

Ich habe in C# Visual Studio 2005 folgende Klassen mit folgendem Codes erstellt.


Simkarte:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
using System;
using System.Collections.Generic;
using System.Text;

namespace Handyprojekt
{

    internal class Simkarte
    {
        private Provider prov;
        private String nr;

        /**
         * Provider festlegen
         */

        public void setzeProvider(Provider p)
        {
            prov = p;
        }
        
        /**
         *  Nummer festlegen
         */

        public void setzeNummer(String nummer)
        {
            nr = nummer;
        }

        /**
         * Nachricht vom Handy erhalten und weiterleiten an Provider
         */

        public void sendeNachricht(String nachricht, String nummer)
        {
            prov.Nachricht(nachricht,nummer);
        }
    }
}


Handy:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
using System;
using System.Collections.Generic;
using System.Text;

namespace Handyprojekt
{
    class Handy
    {
        private Simkarte sim;

        /**
         * Simkarte festlegen
         */

        public void setzeSimkarte(Simkarte s)
        {
            sim = s;
        }
        /**
         * Nachricht weiterleiten an die Simkarte
         */

        public void sendeNachricht(String nachricht, String nummer)
        {
            sim.sendeNachricht(nachricht, nummer);
        }
    }
}

Provider:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
using System;
using System.Collections.Generic;
using System.Text;

namespace Handyprojekt
{
   

    class Provider
    {
        private String na;
        private String nr;
        
        /**
         * Nachricht von Simkarte
         */

        public void Nachricht(String nachricht, String nummer)
        {
            na = nachricht;
            nr = nummer;
        }
      }
}
Mein Ziel:

Zwei Handy Objekte erstellen (Klasse Handy) , zwei Simkarte Objekte erstellen ( Klasse Simkarte) , ein Provider Objekt erstellen (Klasse Provider)

dann möchte ich von einem Handy zum anderen Handy SMS verschicken , was erst durch die Simkarte geht dann zum Provider und von dort zum richtigen Handy . nur ich weiß nicht wie ich Objekte von den Klassen erstellen kann bzw. diese Objekte auf dem Form1 anzeige , um die Methoden und so nutzen kann .....


So jetzt möchte ich von euch bitte wissen wie ich diese Klassen auf dem Form1 benutzen kann und natürlich deren Methoden. Sei es als ein Bild oder für eine Klasse immer ein neues Formular mit Buttons für die Methoden...

Ich habe nämlich mitgekriegt dass man es mit nem UserControl bzw. Control programmiert. Wenn es richtig ist dann bitte ich auch von euch mir zusagen wie es auszusehen hat mit diesem UserControl bzw. Control , wie oder wo programmiere ich diesen UserControl . Kann jemand vielleicht dazu ein Beispiel machen ???

Brauche bitte dringend Hilfe .....

Danke schön schonmal

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt

_________________
ProGrammer Of The FuTure......HaShLo BuRn
Spiritnight
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 17.03.08 07:16 
Titel: Konstruktor
ich bin selber neu in C Sharp aber ich glaube dir fehlt der Konstruktor.

der sollte in der klasse stehen.

bsp:public Simkarte() { }

in form 1 erstellst du dann Deine Klasse genau unter:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
public Form1()
        {
            InitializeComponent();
        }
Simkarte Sim1 = new Simkarte();//Erstelle Klasse Namens Sim1 vom Typ Simkarte
Simkarte Sim2 = new Simkarte();//läst sich beliebig wiederholen.


Wenn du nun in einem Knopf eine Methode von Simkarte nutzen möchtest sollte das so aussehen:
ausblenden C#-Quelltext
1:
2:
3:
4:
private void button1_Click(object sender, EventArgs e)//Spielknopf 1
        {
            Sim1.setzeNummer("0190usw");//Bei click aufruf der Methode
        }


Ich habe noch nicht geschlafen und wenn ich gerade mist erzählt habe so verzeih ^^
Aber meines erachtens sollte es so gehen.

Mfg Martin
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 17.03.08 11:00 
Und statt der Methoden 'setzeProvider', 'setzeNummer' etc. solltest du dir mal Eigenschaften (Properties) ansehen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
public Provider Provider
{
  get { return prov; }
  set { prov = value; } // value ist das Schlüsselwort für den übergebenen Wert
}

Benutzung dann einfach:
ausblenden C#-Quelltext
1:
2:
3:
Simkarte sim = new Simkarte();
Provider p = new Provider()
sim.Provider = p;


Alternativ könntest du auch gleich die Eigenschaften der Klasse im Konstruktor (mit Parametern) setzen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
class Simkarte
{
  Provider prov;
  string number;

  public Simkarte(Provider p, string nr)
  {
    prov = p;
    number = nr;
  }
]
HaShLo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


Flash,Visual Basic,
BeitragVerfasst: Mo 24.03.08 20:35 
ja vielen vielen dank leute werde ich nochmal ausprobieren aber ihr habt mich aber ganz missverstanden glaub ich...

das was ihr dort macht ist , dass ich die methoden aufrufe von den klassen oder wie ich sie mit werten fülle

könnte ihr mir einfach mal nur so sagen wie ich eine selbst erstellte Klasse ganz einfach auf dem Form1 bekomme ???? und zwar in Grafischer Form ich , will also was sehen können wenn ich das Programm starte und dann durch klicken und was auch immer die methoden der klassen aufrufen können , wie kann ich das ermöglichen

Also genauso wie wenn ich einen button auf mein form1 ziehe und dann z.b die größe davon verändern kann die ganzen eigenschaften und das alles halt mit meinen eigenen selbst erstellten Klassen bitte hilft mir

Brauche weiterhin Hilfe und mit beispielen auch noch wenns geht ;)... Danke schön schonmal ;)

_________________
ProGrammer Of The FuTure......HaShLo BuRn
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 25.03.08 11:08 
user profile iconHaShLo hat folgendes geschrieben:
könnte ihr mir einfach mal nur so sagen wie ich eine selbst erstellte Klasse ganz einfach auf dem Form1 bekomme ???? und zwar in Grafischer Form ich , will also was sehen können wenn ich das Programm starte und dann durch klicken und was auch immer die methoden der klassen aufrufen können , wie kann ich das ermöglichen

Das ist in dieser Form völlig unmöglich und außerdem widersinnig:
  • Alles, was auf ein Formular gezogen werden kann, muss von der Control-Klasse abgeleitet sein; die von Dir erstellten Klassen enthalten aber eine ganz andere Logik als GUI-Elemente.
  • Außerdem widerspricht dies den Forderungen der OOP, wo die Klassen die Wirklichkeit abbilden sollen; die Funktionalität eines Providers ist aber etwas ganz anderes als die Darstellung auf einem Formular.

Wenn Du eine solche Darstellung haben willst, musst Du Dir z.B. UserControls bauen, wo eine MaskedTextBox die Sim-Nr. darstellt usw.

Aber wie gesagt: Die GUI (Graphical User Interface = Benutzerschnittstelle) hat direkt nichts mit inhaltlichen Anforderungen der "Geschäftslogik" (Business Logical Interface) zu tun.

Jürgen
HaShLo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


Flash,Visual Basic,
BeitragVerfasst: Di 25.03.08 22:48 
Hallo Leute

Ich hab jetzt mal so recherchiert und nachgeschaut und habe herausgefunden dass man genau wie der JüTho es gesagt hast ein Usercontrol also ein Controller programmieren muss...

Aber leider weiß ich nicht wie ich an dieses Controller ran gehen soll bzw. es programmieren soll , könnte vielleicht jemand noch ein Beispiel dazu geben wie das mit dem Usercontrol auszusehen hat und wie und wo ich das genau bei C# mache..

Ich würde mich sehr darüber freuen

Ich bedanke mich schonmal

;)

_________________
ProGrammer Of The FuTure......HaShLo BuRn
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 26.03.08 12:07 
user profile iconHaShLo hat folgendes geschrieben:
Aber leider weiß ich nicht wie ich an dieses Controller ran gehen soll bzw. es programmieren soll, könnte vielleicht jemand noch ein Beispiel dazu geben wie das mit dem Usercontrol auszusehen hat

Nein, das ist Deine Aufgabe. Nur der HaShLo weiß, welche Darstellung mit welchen Elementen und welcher Funktionalität er haben will.
user profile iconHaShLo hat folgendes geschrieben:
und wie und wo ich das genau bei C# mache..

Falsch formulierte Frage: Bei C# geht es so, dass eine neue Klasse erstellt wird, die von UserControl abgeleitet wird und die die benötigten Controls enthält.

Besser formulierte Frage: Wie und wo mache ich das in meiner IDE? Antwort für Visual Studio und #D:
Projekt-Explorer -> Projekt -> Hinzufügen -> Neue Datei -> UserControl auswählen, passenden Namen von Datei und Klasse vergeben -> Designer öffnen und anfangen.

Jürgen
HaShLo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26


Flash,Visual Basic,
BeitragVerfasst: Fr 28.03.08 16:55 
ja ok danke schön JüTho , das ist schonmal ne hilfreiche Angabe mit Pröjekt hinzufügen und sowas werde ich auf jeden fall in den nächsten Tagen mal versuchen ;)

_________________
ProGrammer Of The FuTure......HaShLo BuRn