Autor Beitrag
nl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 10.11.10 13:36 
Wie weise ich bei Property "FFrage" etwas zu? So wie ich das sehe ist da ja keine procedure dabei oder?

Wenn ich es in unterschiedliche Units machen möchte, wie teile ich das am besten auf?
Muss ja OOP bleiben, oder hat das garnichts damit zutun :D?
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Mi 10.11.10 13:41 
user profile iconnl hat folgendes geschrieben Zum zitierten Posting springen:
Wie weise ich bei Property "FFrage" etwas zu? So wie ich das sehe ist da ja keine procedure dabei oder?


FFrage ist kein Property. Das Property ist Frage. Die Zuweisung ist dann:

ausblenden Delphi-Quelltext
1:
 Card.Frage := 'Wie heiße ich?';					


user profile iconnl hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich es in unterschiedliche Units machen möchte, wie teile ich das am besten auf?
Muss ja OOP bleiben, oder hat das garnichts damit zutun :D?


Die Aufteilung der Klassen in Units in unabhängig von OOP. Du kannst auch alles in eine Unit bzw. Datei schreiben. OOP heißt nur, dass du mit Objekten arbeitest. Die erzeugst du dir ja bspw. mit den Klassen TCard.

Nachtrag: evtl. könntest du dein Projekt schon eimal online stellen. Dann sehen wir, was du wie machst.
nl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: So 14.11.10 19:48 
Also, der Lehrer hat uns ein wenig geholfen und das herausgearbeitet:

ausblenden volle Höhe Delphi-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:
unit UKarte;

interface

type TKarte = class
  private
    Vorderseite: string;
    Rueckseite: string;
  public
    function getVorderseite: string;
    function getRueckseite: string;
    constructor create(V,R: string);
  end;

implementation

function TKarte.getVorderseite: string;
begin
   result:=Vorderseite;
end;

function TKarte.getRueckseite: string;
begin
   result:=Rueckseite;
end;

constructor TKarte.create(V,R: string);
begin
   inherited create;
   Vorderseite:= V;
   Rueckseite:= R;
end;

end.


ausblenden volle Höhe Delphi-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:
38:
39:
40:
unit UKasten;

interface

uses UKarte;

type TKasten = class
   private
      n : integer;
      st : array of TKarte;
   public
      function getKarte(k: integer): TKarte;
      procedure add(k: TKarte);  overload;
      procedure add(V,R: string); overload;
   end;

implementation

function TKasten.getKarte(k: integer): TKarte;
begin
  if k<n then result:=st[k]
         else result:=TKarte.create('-''0');
end;

procedure TKasten.add(k: TKarte);
begin
   n:=n+1;
   Setlength(st, n);
   st[n-1]:=k;
end;

procedure TKasten.add(V,R: string);
var k: TKarte;
begin
   k:=TKarte.create(V,R);
   add(k);
end;


end.


Wie füge ich jetzt einer Karte was zu? Das versteh ich nich ganz. Und wie verbinde ich das mit ButtonOnClick ?

:)
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Mo 15.11.10 17:57 
Hallo NL!

Das, was euer Lehrer da gemacht hat, funktioniert zwar; aber ich finde das gruselig.

Verstehst du, was dort gemacht wird und warum?

Beim Programmieren geht es eigentlich nicht darum, immer nur Programmcode zu tippen. Man sollte auch nachdenken und Lösungen, die schon einmal gefunden wurden, wieder benutzen. Das tut euer Lehrer nicht. Nun kenne ich seine Hintergründe nicht und weiß nicht, ob er mit dieser Art irgendwas bezwecken will.

In deinem Formular erzeugst du dir nun eine Instanz von TKasten. Von dieser Instanz rufst du einfach die Funktion Add auf. Wie das alles geht, solltest du in den Crashkursen gelesen haben. Deshalb verwundert mich eigentlich deine Frage auch ein wenig.

Da du dich bei dem Code von deinem Lehrer auch um die gesamte "Speicherverwaltung" kümmern musst, achte darauf, dass beim Beenden des Programms auch wieder alle Instanzen freigegeben werden. Als Erinnerung hilft es, wenn du bspw. in das OnCreate des Formular diese Zeile mit hinein nimmst.

ausblenden Delphi-Quelltext
1:
  ReportMemoryLeaksOnShutdown := true;					


Grüße
nl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mo 15.11.10 22:35 
Hm ja der Lehrer macht das eigtl meistens so...Weiß nicht ob jmd "Chuck a Luck" kennt aber das haben wir ähnlich programmiert, ehrlich gesagt klingen eure Lösungen besser, aber ich hab nicht mehr viel Zeit und da die Note wichtig ist sollte ich schnellstmöglich fertig werden auch wenn ich nicht alles genaustens verstehe. Habe also leider nicht mehr viel Zeit daran rum zu feilen :/
nl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 17.11.10 14:27 
Ich versteh einfach überhaupt nicht wie ich jetzt einen "verwalter" mache der die Inhalte der Karten speichert und diese Random aufruft. Was passiert denn überhaupt bei Add? Es kommt eine Karte dazu? Und woher weiß das Programm was diese Karte besitzt? Lediglich Vorder und Rückseite oder? Weiß garnicht wie ich realisieren soll dass jetzt Vorder bzw Rückseite rnd iwas zugewiesen bekommt :(
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Mi 17.11.10 15:57 
Das hier wir dir persönlich garantiert nicht helfen; geschweige denn, dass ich glaube, dass du dadurch etwas lernst.

Ich habe dir mal schnell ein Programm zusammengeschrieben. Vielleicht steigst du da ja durch. Du solltest dir allerdings überlegen, ob es so schlau war, Informatik zu belegen. Wir haben dir hier nun ziemlich viele Hilfen gegeben. Die Tutorials scheinst du - meiner Ansicht nach - nicht durchgearbeitet zu haben. Sorry...
Einloggen, um Attachments anzusehen!
nl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Di 30.11.10 16:38 
Ich habe Informatik belegt weil ich in Latein, Chemie und Physik eine totale Niete bin.
Ganz ehrlich seit dem ich mich hier angemeldet habe habe ich mehr gelernt als in den 2 Jahren Informatik die ich hatte ;)
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Di 30.11.10 16:55 
Hast du die Aufgabe denn inzwischen bewältigen können?