Re: Delphi-Programm mit Klassen!
Geizhals » Forum » Programmierung » Delphi-Programm mit Klassen! (17 Beiträge, 219 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Delphi-Programm mit Klassen!
05.10.2007, 14:20:57
Hallo!

Wir haben jetzt in der Schule mit dem objektorientierten Programmieren begonnen (Klassenkonzept, ...., mit Delphi)! Nun hab ich meine erste Hausübung zu dem Thema bekommen, und ich hab mir auch schon eine Lösung für das gestellte Problem überlegt, nur will ich vorher fragen, ob das so funktionieren könnte:

Also, folgende Aufgabe:

Es gibt genau 1 Formular, auf diesem Formular kann eine neue Firma angelegt werden (Name, Telefon, Anschrift). Desweiteren müssen zu der neuen Firma Mitarbeiter hinzugefügt werden(das wird auf dem selben Formular gemacht). Es gibt dazu eine Listbox mit allen verfügbaren Mitarbeitern, aus diesen Mitarbeitern kann man auswählen, die ausgewählten MA werden dann in eine andere Listbox geschoben (Listbox: Ausgewählte Mitarbeiter)

Wenn man auf einen ausgewählten Mitarbeiter klickt, dann kommen 2 Textfelder, wo man den Namen und die Adresse des in der Listbox "Ausgewählte Mitarbeiter" Mitarbeiters eingeben kann.

Abschließend soll, nach Betätigen des Buttons "Speichern", die neue Firma +ausgewählte Mitarbeiter + Mitarbeiterdaten in eine Datenbank gespeichert werden.

Nun meine Lösung:

Eine Klasse Firma mit den Membervariablen Id,Name, Telefon, Anschrift, und einer Liste "Mitarbeiter" (in dieser Liste sollen dann alle Objekte vom Typ Mitarbeiter gespeichert werden)

Eine Klasse Mitarbeiter mit den Membervariablen Id, Name, Anschrift, FirmaId


Ist es nun möglich, dass ich nach betätigen des Speichern-Buttons ein neues Objekt vom Typ "Firma" anlege, und alle Firmendaten in die Membervariablen der Klasse speichere! Das selbe will ich dann mit den Mitarbeitern machen. Ist es überhaupt möglich, dass ich in eine Liste mehrere Objekte vom Typ "Mitarbeiter" speichere (diese Liste befindet sich in der Klasse Firma |denn eine Firma kann mehrere Mitarbeiter haben, darum ne Liste von Objekten), und wie soll ich das dann alles in die DB speichern, da muss ich theoretisch die ganze Liste von Mitarbeiterobjekten durchlaufen, oder?

Als nächstes soll dann eine bestehende Firma verändert werden können (z.B. neue Mitarbeiter hinzu, Mitarbeiter wegnehmen), wie kann ich da mit den Klassen drauf zugreifen


Ich hoffe ihr könnt mir helfen, sorry das ich soviel geschrieben habe, aber ich kenn mich mit dieser Thematik noch nicht so aus, und will nur wissen, ob mein Lösungsvorgang so halbwegs OK ist

Hier noch ein (Paint)-Bild meiner Form: http://bildupload.sro.at/a/images/Formular.JPG


danke







Antworten PM Alle Chronologisch
 
Melden nicht möglich
.
Re: Delphi-Programm mit Klassen!
05.10.2007, 18:36:11
Ich kann jetzt nicht konkret von Delphi reden, aber generell: Deine Lösung klingt plausibel.

Ist es nun möglich, dass ich nach betätigen des Speichern-Buttons ein neues
Objekt vom Typ "Firma" anlege, und alle Firmendaten in die Membervariablen der
Klasse speichere!

Ja, so würde man das machen.

Ist es überhaupt möglich, dass ich in eine Liste mehrere Objekte vom Typ
"Mitarbeiter" speichere

Idealerweise solltest du in deinem Programm eine Liste von Mitarbeiter Instanzen haben (alle).  Du würdest dann einfach nur eine Referenz auf einen Mitarbeiter speichern.
Sprich: Globale Liste enthält: MA1, MA2, MA3, MA4; MitarbeiterListe einer einzelnen Firma hat dann die Referenzen auf die Ibjekte MA2 und MA4 (z.b.). Sprich: Du legst also nicht für jede Firma mehrere Mitarbeiter an, sondern nutzt die bereits vorhandenen.

Vergiss weiters nicht, in deinem Programme eine Liste von Firmen zu führen. Du hättest dann also 2 Listen, einmal die Mitarbeiter und einmal die Firmen. Die Firmen selbst haben dann in einer Liste eine Referenz auf das jeweilige Mitarbeiter Objekt - so könntest du das auch dann schön persistieren (bspw. in einer DB).
Die würde dann wie folgt aussehen:
Table MA, Table Firma, Table MAinFirma.
MA: hat die Eigenschaften der einzelnen Mitarbeiter (ID, Name, ...); Firma hat die Eigenschaften der Firma (ID, Name, wasweiss ich,...) und MAinFirma hat dann nur die Beziehung Firma.ID mit MA.ID.
Um solche Beziehungen schön automatisch in eine DB überzuführen gibt es bereits fertige Frameworks, ich weiss jedoch nicht inwieweit ihr das selber machen sollt.


Als nächstes soll dann eine bestehende Firma verändert werden können (z.B.
neue Mitarbeiter hinzu, Mitarbeiter wegnehmen), wie kann ich da mit den
Klassen drauf zugreifen

Das ist das wenn ich oben schreibe dass du eine Liste von Firmen führen solltest. So kannst du im Prinzip deine Maske aufrufen, und beim Aufrufen übergibst du ihr im Konstruktor bereits das Objekt (eine Firma). Diese wird dann geändert und wenn die Maske geschlossen wird, kannst du das Objekt wieder aktualisieren. Du darfst nicht vergessen, dass du (wahrscheinlich auch in Delphi) eigentlich immer mit Referenzen arbeitest und nicht mit dauernd neuen Objekten. Sprich: Eine Änderung in der Maske wird sich auf das Objekt auswirken, das in der Liste der Firmen gespeichert ist.


(Ich hoffe das war einigermaßen verständlich).

life is not measured by the
number of breaths we take
but by the number of moments
that take our breath away

Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
..  Re(2): Delphi-Programm mit Klassen!  (Guugl am 06.10.2007, 15:20:19)
...  Re(3): Delphi-Programm mit Klassen!  (Somnatic am 06.10.2007, 18:11:34)
.  Re: Delphi-Programm mit Klassen!  (user40015 am 06.10.2007, 13:58:20)
.  Re: Delphi-Programm mit Klassen!  (Robert Craven am 06.10.2007, 16:01:48)
..  Re(2): Delphi-Programm mit Klassen!  (Guugl am 06.10.2007, 16:16:21)
...  Re(3): Delphi-Programm mit Klassen!  (Robert Craven am 06.10.2007, 16:30:53)
....  Re(4): Delphi-Programm mit Klassen!  (Guugl am 06.10.2007, 16:35:22)
.....  Re(5): Delphi-Programm mit Klassen!  (Robert Craven am 06.10.2007, 16:51:00)
......  Re(6): Delphi-Programm mit Klassen!  (Guugl am 06.10.2007, 17:43:37)
.......  Re(7): Delphi-Programm mit Klassen!  (Robert Craven am 06.10.2007, 17:45:26)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung