AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Spiel für Informatik Unterricht!!
Thema durchsuchen
Ansicht
Themen-Optionen

Spiel für Informatik Unterricht!!

Ein Thema von eMGee · begonnen am 9. Jan 2006 · letzter Beitrag vom 17. Jan 2006
Antwort Antwort
Seite 2 von 4     12 34      
emteg

Registriert seit: 16. Jun 2005
71 Beiträge
 
Delphi 2009 Architect
 
#11

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 16:12
Also das erste was du machen solltest, ist dir arrays zu bauen, so blickt man ja garicht mehr durch:

Delphi-Quellcode:
var Room: array [1..16] of TRaum;

{...}

procedure TForm1.FormCreate(Sender:TObject);
var i: integer;
begin

  //---Räume erzeugen---
  for i:=1 to 16 do
  begin
    Room[i]:=TRaum.Create;
    Room[i].Beschreibung:='Raum'+IntToStr(i); //Das ergibt immer "Raum"+Zahl, also z.B. Raum1, Raum2, ...
    Room[i].Bild:='Bilder\raum'+IntToStr(i)+'.jpg'; //Da werden wie obend die Namen der Bilder erzeugt.
  end;
 
  //---Ausgänge setzen---
  room[1].setAusgaenge(nil,room2,room5,nil);
  room[2].setAusgaenge(nil,room3,room6,room1);
  room[3].setAusgaenge(nil,room4,room7,room2);
  room[4].setAusgaenge(nil,nil,room8,room3);
  room[5].setAusgaenge(room1,room6,room9,nil);
  room[6].setAusgaenge(room2,room7,room10,room5);
  room[7].setAusgaenge(room3,room8,room11,room6);
  room[8].setAusgaenge(room4,nil,room12,room7);
  room[9].setAusgaenge(room5,room10,room13,nil);
  room[10].setAusgaenge(room6,room11,room14,room9);
  room[11].setAusgaenge(room7,room12,room15,room10);
  room[12].setAusgaenge(room8,nil,room16,room11);
  room[13].setAusgaenge(room9,room14,nil,nil);
  room[14].setAusgaenge(room10,room15,nil,room13);
  room[15].setAusgaenge(room11,room16,nil,room14);
  room[16].setAusgaenge(room12,nil,nil,room15);

  aktuellerRaum:=room[1];

end;
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#12

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 16:13
Was hast du denn da gemacht?

Da scheint jemand entweder gerne alles selbst zu tippen, oder er benutzt gerne Strg+C und Strg+V

Du musst, wenn du ein Event (Ereignis) hinzufügst, auch das richtige Event im Objektinspektor auswählen. Bei FormCreate und ButtonClick reicht auch ein Doppelklick auf das entspr. Objekt.

Jedenfalls musst du oben im Interface-Abschnitt bei der Klasse TForm1 noch was ergänzen. An dieser Stelle:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
Da hast du dann auch die Buttons stehen, dann die Prozedur FormCreate. Da musst du auch die Button-Prozeduren hinzufügen. Z.B: procedure Button1Click(Sender: TObject); Das musst du für jedes Click-Event machen
  Mit Zitat antworten Zitat
eMGee

Registriert seit: 9. Jan 2006
20 Beiträge
 
#13

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 16:16
ok danke für die ganze hilfe, wie gesagt hab von delpühi noch net so den plan... habe noch nie objektorientiert prgrammiert
werde mir mal aus euren tipps was neues basteln..
  Mit Zitat antworten Zitat
eMGee

Registriert seit: 9. Jan 2006
20 Beiträge
 
#14

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 16:29
also hab deinen vorschlag mit den array jetzt umgesetzt, allerdings sagt delphi mir jetzt hier:

Delphi-Quellcode:
  room[1].setAusgaenge(nil,room2,room5,nil);
  room[2].setAusgaenge(nil,room3,room6,room1);
  room[3].setAusgaenge(nil,room4,room7,room2);
  room[4].setAusgaenge(nil,nil,room8,room3);
  room[5].setAusgaenge(room1,room6,room9,nil);
  room[6].setAusgaenge(room2,room7,room10,room5);
  room[7].setAusgaenge(room3,room8,room11,room6);
  room[8].setAusgaenge(room4,nil,room12,room7);
  room[9].setAusgaenge(room5,room10,room13,nil);
  room[10].setAusgaenge(room6,room11,room14,room9);
  room[11].setAusgaenge(room7,room12,room15,room10);
  room[12].setAusgaenge(room8,nil,room16,room11);
  room[13].setAusgaenge(room9,room14,nil,nil);
  room[14].setAusgaenge(room10,room15,nil,room13);
  room[15].setAusgaenge(room11,room16,nil,room14);
  room[16].setAusgaenge(room12,nil,nil,room15);
immer undefinierter bezeichner room2, room5 usw also bei allen räumen...

kann ich die räume dort nicht so ansprechen wenn ich die durch einen array erzeugt habe??
  Mit Zitat antworten Zitat
eMGee

Registriert seit: 9. Jan 2006
20 Beiträge
 
#15

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 16:30
schon ok habs selber gefunden
  Mit Zitat antworten Zitat
eMGee

Registriert seit: 9. Jan 2006
20 Beiträge
 
#16

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 16:45
so hab mir jetzt aus euren ganzen hilfen (danke nochmal) was geschrieben was sich auch ohne fehler kompilieren lässt allerdings tut sich beim drücken auf die buttons komischerweise nichts... weder die beschreibung taucht im memo feld auf noch ein bild wird geleaden... bin am verzweifeln
naja hier der quelltext

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Memo1: TMemo;
    Image1: TImage;

    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
  TRaum=class
    Beschreibung:String;
    Bild:String;
    Norden,Osten,Sueden,Westen:TRaum;
    procedure setAusgaenge(norden,osten,sueden,westen:TRaum);
end;


var
  Form1: TForm1;
  Room: array [1..16] of TRaum;
  aktuellerRaum:TRaum;

implementation

{$R *.dfm}

procedure TRaum.setAusgaenge(norden,osten,sueden,westen:TRaum);
begin
  self.Norden:= norden;
  self.Osten:= osten;
  self.Sueden:= sueden;
  self.Westen:= westen;
end;

procedure TForm1.FormCreate(Sender:TObject);
var i: integer;
begin

  //---Räume erzeugen---
  for i:=1 to 16 do
  begin
    Room[i]:=TRaum.Create;
    Room[i].Beschreibung:='blabla';
    Room[i].Bild:='Bilder\raum'+IntToStr(i)+'.jpg';
  end;

  //---Ausgänge setzen---
  room[1].setAusgaenge(nil,room[2],room[5],nil);
  room[2].setAusgaenge(nil,room[3],room[6],room[1]);
  room[3].setAusgaenge(nil,room[4],room[7],room[2]);
  room[4].setAusgaenge(nil,nil,room[8],room[3]);
  room[5].setAusgaenge(room[1],room[6],room[9],nil);
  room[6].setAusgaenge(room[2],room[7],room[10],room[5]);
  room[7].setAusgaenge(room[3],room[8],room[11],room[6]);
  room[8].setAusgaenge(room[4],nil,room[12],room[7]);
  room[9].setAusgaenge(room[5],room[10],room[13],nil);
  room[10].setAusgaenge(room[6],room[11],room[14],room[9]);
  room[11].setAusgaenge(room[7],room[12],room[15],room[10]);
  room[12].setAusgaenge(room[8],nil,room[16],room[11]);
  room[13].setAusgaenge(room[9],room[14],nil,nil);
  room[14].setAusgaenge(room[10],room[15],nil,room[13]);
  room[15].setAusgaenge(room[11],room[16],nil,room[14]);
  room[16].setAusgaenge(room[12],nil,nil,room[15]);

  aktuellerRaum:=room[1];

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (aktuellerRaum.Norden <> nil) then
  begin
    aktuellerRaum:= aktuellerRaum.Norden;
    Image1.Picture.LoadFromFile(aktuellerRaum.Bild);
    Memo1.Lines.Add(aktuellerRaum.Beschreibung);
  end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
  if (aktuellerRaum.Osten <> nil) then
  begin
    aktuellerRaum:= aktuellerRaum.Osten;
    Image1.Picture.LoadFromFile(aktuellerRaum.Bild);
    Memo1.Lines.Add(aktuellerRaum.Beschreibung);
  end;
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
  if (aktuellerRaum.Sueden <> nil) then
  begin
    aktuellerRaum:= aktuellerRaum.Sueden;
    Image1.Picture.LoadFromFile(aktuellerRaum.Bild);
    Memo1.Lines.Add(aktuellerRaum.Beschreibung);
  end;
end;


procedure TForm1.Button4Click(Sender: TObject);
begin
  if (aktuellerRaum.Westen <> nil) then
  begin
    aktuellerRaum:= aktuellerRaum.Westen;
    Image1.Picture.LoadFromFile(aktuellerRaum.Bild);
    Memo1.Lines.Add(aktuellerRaum.Beschreibung);
  end;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#17

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 16:59
Nachdem Du schon mit dem FormCreate() ein Problem hattest dünkt mir, dass die Funktionen der Buttons (also alle ButtonClick's) gar nicht mit den Buttons verknüpft sind.

Wenn Du Dein Form hast und im Objektinspektor den Button anwählst und dort die Ereignisse anzeigen lässt, verweisen die Buttons dann auch auf die entsprechenden Funktionen?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
eMGee

Registriert seit: 9. Jan 2006
20 Beiträge
 
#18

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 17:08
nein bei den ereignissen ist nichts eingetragen... aber woran liegt das?? ich habe doch unten mit button1.click usw alles definiert.. was muss ich denn bei den erignissen eintragen damit es funzt?
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#19

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 17:26
Drei mal darfst du raten. Ich wette, du kommst selbst drauf.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#20

Re: Spiel für Informatik Unterricht!!

  Alt 9. Jan 2006, 17:45
Mal so ne frage: Wenn ich doppelklick auf bnen Button mach , dann legt der doch in der regel automatisch die deklaration an, oder?

hast du die button-Proceduren direkt geschrieben ohne über butten zu klicken?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz