Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Hilfe bei Arrays und Mitarbeiterverwaltung


robby1200 - Do 22.09.11 19:30
Titel: Hilfe bei Arrays und Mitarbeiterverwaltung
Hallo,

ich bin neu hier im forum, habe es aber schon des öftern benutzt wenn ich nicht mehr weiter wusste. Seit tagen sitze ich am gleiche projekt und trete einfach auf der Stelle, da ich es aber für die Schule bis morgen fertig haben muss bete ich euch nun um hilfe.
ICh habe also 1 hauptfenster, dass nun ein zweites Fenster mit editfeldern anzeigt. Darüberhinaus habe ich ein array von meiner Lehrerin bekommen mit vorgefertigten daten. Es gibt die oberklasse TMitarbeiter und die unterklasse TArbeiter,Angestellter und Heimarbeiter, welche von TMitarbeiter den konstruktor sowie die funktionen erben. Mein problem wie zeige ich nun die daten von einem mitarbeiter an und wie blätter ich mit den buttons zum nächsten?

Habe zur veranschaulichung nur das mainfenster mit dem array, die oberklasse sowie eine unterklasse hinzugefügt. Prinzip müsste für die anderen ja gleich sein.
Bin für jede hilfe dankbar,

Robert


Gausi - Do 22.09.11 19:43

Hallo und :welcome: in der Entwickler-Ecke,

aber SCHREI HIER BITTE NICHT SO RUM!

Soll heißen: Ändere bitte den Titel des Topics und nutze dabei nicht nur Großbuchstaben - das wird allgemein als Schreien empfunden und ist hier nicht besonders förderlich, wenn du eine Antwort haben willst. ;-).

Einfach unten in deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Danke Dir!


robby1200 - Do 22.09.11 19:45

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Hallo und :welcome: in der Entwickler-Ecke,

aber SCHREI HIER BITTE NICHT SO RUM!

Einfach unten in deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Danke Dir!


Entschuldigung, das wusste ich nicht. Man lernt nie aus


Xion - Do 22.09.11 22:10

user profile iconrobby1200 hat folgendes geschrieben Zum zitierten Posting springen:
ICh habe also 1 hauptfenster, dass nun ein zweites Fenster mit editfeldern anzeigt. Darüberhinaus habe ich ein array von meiner Lehrerin bekommen mit vorgefertigten daten. Es gibt die oberklasse TMitarbeiter und die unterklasse TArbeiter,Angestellter und Heimarbeiter, welche von TMitarbeiter den konstruktor sowie die funktionen erben. Mein problem wie zeige ich nun die daten von einem mitarbeiter an und wie blätter ich mit den buttons zum nächsten?


Du hast also ein Array mit Mitarbeitern.

Rauskriegen, welcher Typ der Mitarbeiter ist, geht in Delphi mit is.

Delphi-Quelltext
1:
if (hMitarbeiter[nr] is TAngestellter) then                    


Zum Durchblättern musst du ja nur nr de-/inkrementieren (Aufpassen, dass Nr innerhalb des Bereichs des Arrays bleibt. Das Array geht von 0 bis High(hMitarbeiter))


robby1200 - Do 22.09.11 22:23

ok das habe ich soweit verstanden. Danke für den tipp, das macht es später auf jedenfall leicheter. Mein problem liegt aber schon darin, dass ich als beispiel ein array zugriff gemacht habe mit der variabel nr die ich statich als 2 festgelegt habe. Dann kommt aber ein Zugriffsfehler und das Programm bircht ab. Ich versteh es einfach nicht warum. Eigentlih müsste dieser Mitarbeiter doch dann angezeigt werden.
Ich schaff es also nicht irgendeinen Mitarbeiter überhaupt in den edit feldern anzuzeigen. Es will einfach nicht funktionieren. Steh ich einfach auf dem Schlauch?


Xion - Fr 23.09.11 01:06

user profile iconrobby1200 hat folgendes geschrieben Zum zitierten Posting springen:
Mein problem liegt aber schon darin, dass ich als beispiel ein array zugriff gemacht habe mit der variabel nr die ich statich als 2 festgelegt habe. Dann kommt aber ein Zugriffsfehler und das Programm bircht ab.

Wo kommt denn der Fehler (welche Zeile?). Geh mal per Einzelschritt/Breakpoint durch um das rauszukriegen.

Rufst du denn irgendwo MitarbeiterErzeugen() auf? Sonst gibt es in deinem Array niemanden (nur Verweise ins Leere). Dann kommt eine Zugriffsverletzung, weil du ins "nichts" nicht zugreifen kannst/darfst.


robby1200 - Sa 24.09.11 02:22

So ich danke für die ganzen tipps. Den fehler habe ich nicht gefunden. Habe alles nochmal geschrieben und das meiner Meinung nach auch gleich, nun funktioniert es. War bestimmt nur ein kleiner Syntax fehler, den ich nicht gefunden habe.(Mitarbeiter eurzeugen war vorhanden)
Nochmals danke