App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Delphi: Schulprogramm
- Ersteller ericstar
- Erstellt am
ericstar
Vice Admiral Special
hallo, ich muss für die schule ein kleines delphiprogramm schreiben- es geht ausschließlisch darum, sich in einer art textadventure durch verschiedene räume zu bewegen.
jetzt habe ich verschiedene fragen:
- wie kann ich es erreichen, dass vor der beschreibung eines neuen raums das Memo1-Feld gecleart wird
- dass in den Feldern nicht mehr 'Memo1' und 'Edit1' steht und die Überschrift einen anderen Namen als 'Form1' hat
- wie kann ich fotos einfügen (siehe unten, einen teil habe ich schon)
p.s. das programm läuft bis auf die fotos
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
Image1: TImage;
Image2: TImage;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type
TRaum = class
Beschreibung: String;
FotoReferenz: String;
U1, U2, U3, Exit, Station : TRaum;
procedure setAusgaenge (U1, U2, U3, Exit, Station : TRaum);
end;
var
Form1: TForm1;
ManhattanS, Manhattan, BrooklynS, Brooklyn, QueensS, Queens : TRaum;
aktuellerRaum : TRaum;
implementation
{$R *.dfm}
procedure TRaum.setAusgaenge (U1, U2, U3, Exit, Station :TRaum);
begin
self.U1 := U1;
self.U2 := U2;
self.U3 := U3;
self.Exit := Exit;
self.Station := Station;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Add('Welcome to a virtual trip through New York. You can explore the citys boroughs by taking the subway. Your job is to find Jennifer Lopez. Just click the "Move"-Button to start.');
ManhattanS:=TRaum.Create;
BrooklynS:=TRaum.Create;
QueensS:=TRaum.Create;
Manhattan:=TRaum.Create;
Brooklyn:=TRaum.Create;
Queens:=TRaum.Create;
ManhattanS.Fotoreferenz:= 'Bilder/lagemap.jpg'
BrooklynS.FotoReferenz:= 'Bilder/lagemap.jpg'
QueensS.FotoReferenz:= 'Bilder/lagemap.jpg'
Manhattan.FotoReferenz:= 'Bilder/Manhattan.jpg'
Brooklyn.FotoReferenz:= 'Bilder/Brookln.jpg'
Queens.FotoReferenz:= 'Bilder/Queens.jpg'
ManhattanS.Beschreibung:= ('Your journey starts in Manhattan Station. Its quite noisy.');
BrooklynS.Beschreibung:= ('This is the Brooklyn subway station.');
QueensS.Beschreibung:= ('You can either take the U2 to Manhattan Station, the U3 to Brooklyn Station or just exit the Station to explore the town of Queens.');
Manhattan.Beschreibung:= ('This is the skyline of Manhattan. Manhattan has got about 1.5million inhabitants and it was founded it 1624 as an independant town');
Brooklyn.Beschreibung:= ('What you just see is the Brooklyn-Bridge. It was finished in 1883 by german engineers and it connects Manhattan and Brooklyn');
Queens.Beschreibung:= ('Now youre in Queens. And what a nice surprise: You found Jennifer Lopez! Have a nice day!');
aktuellerRaum := ManhattanS;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Eingabe : String;
begin
Eingabe := Edit1.text;
if Eingabe= 'U1' then aktuellerRaum:=aktuellerRaum.U1;
if Eingabe= 'U2' then aktuellerRaum:=aktuellerRaum.U2;
if Eingabe= 'U3' then aktuellerRaum:=aktuellerRaum.U3;
if Eingabe= 'Exit' then aktuellerRaum:=aktuellerRaum.Exit;
if Eingabe= 'Station' then aktuellerRaum:=aktuellerRaum.Station;
if Eingabe = 'ManhattanS' then Memo1.Lines.add (ManhattanS.Beschreibung);
if Eingabe = 'Manhattan' then Memo1.Lines.add (Manhattan.Beschreibung);
if Eingabe = 'BrooklynS' then Memo1.Lines.add (BrooklynS.Beschreibung);
if Eingabe = 'Brooklyn' then Memo1.Lines.add (Brooklyn.Beschreibung);
if Eingabe = 'QueensS' then Memo1.Lines.add (QueensS.Beschreibung);
if Eingabe = 'Queens' then Memo1.Lines.add (Queens.Beschreibung);
Memo1.Lines.add (aktuellerRaum.Beschreibung);
ManhattanS.setAusgaenge(BrooklynS, QueensS, nil, Manhattan, nil);
BrooklynS.setAusgaenge(ManhattanS, nil, QueensS, Brooklyn, nil);
QueensS.setAusgaenge(nil, ManhattanS, BrooklynS, Queens, nil);
Manhattan.setAusgaenge(nil, nil, nil, nil, ManhattanS);
Brooklyn.setAusgaenge(nil, nil, nil, nil, BrooklynS);
Queens.setAusgaenge (nil, nil, nil, nil, QueensS);
if aktuellerRaum.U1 <> nil then Memo1.Lines.add('--> U1');
if aktuellerRaum.U2 <> nil then Memo1.Lines.add('--> U2');
if aktuellerRaum.U3 <> nil then Memo1.Lines.add('--> U3');
if aktuellerRaum.Exit <> nil then Memo1.Lines.add('--> Exit');
if aktuellerRaum.Station <> nil then Memo1.Lines.add('--> Station');
end;
end.
jetzt habe ich verschiedene fragen:
- wie kann ich es erreichen, dass vor der beschreibung eines neuen raums das Memo1-Feld gecleart wird
- dass in den Feldern nicht mehr 'Memo1' und 'Edit1' steht und die Überschrift einen anderen Namen als 'Form1' hat
- wie kann ich fotos einfügen (siehe unten, einen teil habe ich schon)
p.s. das programm läuft bis auf die fotos
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
Image1: TImage;
Image2: TImage;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type
TRaum = class
Beschreibung: String;
FotoReferenz: String;
U1, U2, U3, Exit, Station : TRaum;
procedure setAusgaenge (U1, U2, U3, Exit, Station : TRaum);
end;
var
Form1: TForm1;
ManhattanS, Manhattan, BrooklynS, Brooklyn, QueensS, Queens : TRaum;
aktuellerRaum : TRaum;
implementation
{$R *.dfm}
procedure TRaum.setAusgaenge (U1, U2, U3, Exit, Station :TRaum);
begin
self.U1 := U1;
self.U2 := U2;
self.U3 := U3;
self.Exit := Exit;
self.Station := Station;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Add('Welcome to a virtual trip through New York. You can explore the citys boroughs by taking the subway. Your job is to find Jennifer Lopez. Just click the "Move"-Button to start.');
ManhattanS:=TRaum.Create;
BrooklynS:=TRaum.Create;
QueensS:=TRaum.Create;
Manhattan:=TRaum.Create;
Brooklyn:=TRaum.Create;
Queens:=TRaum.Create;
ManhattanS.Fotoreferenz:= 'Bilder/lagemap.jpg'
BrooklynS.FotoReferenz:= 'Bilder/lagemap.jpg'
QueensS.FotoReferenz:= 'Bilder/lagemap.jpg'
Manhattan.FotoReferenz:= 'Bilder/Manhattan.jpg'
Brooklyn.FotoReferenz:= 'Bilder/Brookln.jpg'
Queens.FotoReferenz:= 'Bilder/Queens.jpg'
ManhattanS.Beschreibung:= ('Your journey starts in Manhattan Station. Its quite noisy.');
BrooklynS.Beschreibung:= ('This is the Brooklyn subway station.');
QueensS.Beschreibung:= ('You can either take the U2 to Manhattan Station, the U3 to Brooklyn Station or just exit the Station to explore the town of Queens.');
Manhattan.Beschreibung:= ('This is the skyline of Manhattan. Manhattan has got about 1.5million inhabitants and it was founded it 1624 as an independant town');
Brooklyn.Beschreibung:= ('What you just see is the Brooklyn-Bridge. It was finished in 1883 by german engineers and it connects Manhattan and Brooklyn');
Queens.Beschreibung:= ('Now youre in Queens. And what a nice surprise: You found Jennifer Lopez! Have a nice day!');
aktuellerRaum := ManhattanS;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Eingabe : String;
begin
Eingabe := Edit1.text;
if Eingabe= 'U1' then aktuellerRaum:=aktuellerRaum.U1;
if Eingabe= 'U2' then aktuellerRaum:=aktuellerRaum.U2;
if Eingabe= 'U3' then aktuellerRaum:=aktuellerRaum.U3;
if Eingabe= 'Exit' then aktuellerRaum:=aktuellerRaum.Exit;
if Eingabe= 'Station' then aktuellerRaum:=aktuellerRaum.Station;
if Eingabe = 'ManhattanS' then Memo1.Lines.add (ManhattanS.Beschreibung);
if Eingabe = 'Manhattan' then Memo1.Lines.add (Manhattan.Beschreibung);
if Eingabe = 'BrooklynS' then Memo1.Lines.add (BrooklynS.Beschreibung);
if Eingabe = 'Brooklyn' then Memo1.Lines.add (Brooklyn.Beschreibung);
if Eingabe = 'QueensS' then Memo1.Lines.add (QueensS.Beschreibung);
if Eingabe = 'Queens' then Memo1.Lines.add (Queens.Beschreibung);
Memo1.Lines.add (aktuellerRaum.Beschreibung);
ManhattanS.setAusgaenge(BrooklynS, QueensS, nil, Manhattan, nil);
BrooklynS.setAusgaenge(ManhattanS, nil, QueensS, Brooklyn, nil);
QueensS.setAusgaenge(nil, ManhattanS, BrooklynS, Queens, nil);
Manhattan.setAusgaenge(nil, nil, nil, nil, ManhattanS);
Brooklyn.setAusgaenge(nil, nil, nil, nil, BrooklynS);
Queens.setAusgaenge (nil, nil, nil, nil, QueensS);
if aktuellerRaum.U1 <> nil then Memo1.Lines.add('--> U1');
if aktuellerRaum.U2 <> nil then Memo1.Lines.add('--> U2');
if aktuellerRaum.U3 <> nil then Memo1.Lines.add('--> U3');
if aktuellerRaum.Exit <> nil then Memo1.Lines.add('--> Exit');
if aktuellerRaum.Station <> nil then Memo1.Lines.add('--> Station');
end;
end.
Zuletzt bearbeitet:
SuperCow
Admiral Special
- Mitglied seit
- 11.11.2001
- Beiträge
- 1.318
- Renomée
- 1
- Mein Laptop
- HP Compaq nx9005
- Prozessor
- X2 3800+ @2,5GHz @1,25V (default) @C'nQ
- Mainboard
- Gigabyte GA-MA69G-S3H
- Kühlung
- Arctic Cooling Freezer 64 Pro
- Speicher
- 4x512MB, DDR2-800, Aeneon
- Grafikprozessor
- onboard
- Display
- Sony SDM-X95FB (19'')
- HDD
- Seagate Barracuda 7200.10 250GB (250GB/Platters)
- Optisches Laufwerk
- LiteOn SOHD-16P9S (DVD/CD), Pioneer DVR-110 (DVD-Brenner)
- Soundkarte
- onboard
- Gehäuse
- Chieftec CS-601
- Netzteil
- 300W HEC
- Betriebssystem
- Windows 7
- Webbrowser
- IE 8
Ja, ja. Wir machen auch mit Delphi rum... Beschäftigen uns allerdings gerade mir Rekursion
Im Objektexpektor kannst du unter Caption bzw. Text die "Beschriftungen" der jeweiligen Elemente ändern.
Unter zusätzlich, ziehst du dir das Element Image auf deine Form. Dann kannst du im Objektinspektor unter Picture dein Photo einfügen. Oder natürlich z.B. mit Image1.Picture:='...' Achtung! Wähle das passende Dateiformat und achte auf die Verzeichnisstruktur deines Projektes!
Beim Beschreiten eines neuen Raumes z.B. Edit1.Text:='';
SuperCow
Im Objektexpektor kannst du unter Caption bzw. Text die "Beschriftungen" der jeweiligen Elemente ändern.
Unter zusätzlich, ziehst du dir das Element Image auf deine Form. Dann kannst du im Objektinspektor unter Picture dein Photo einfügen. Oder natürlich z.B. mit Image1.Picture:='...' Achtung! Wähle das passende Dateiformat und achte auf die Verzeichnisstruktur deines Projektes!
Beim Beschreiten eines neuen Raumes z.B. Edit1.Text:='';
SuperCow
ericstar
Vice Admiral Special
danke dir also beim edit-feld habe ich den text jetzt gelöscht, beim memo-feld finde ich im object-inspector aber weder 'text' noch 'caption'
mit dem foto hat der lehrer geschrieben:
fotoreferenz als string deklarieren,
verständlich
im form1.create teil:
[raum].FotoReferenz := 'Bilder/[raum].jpg'
habe ich bereits eingebracht, siehe oben
foto in das objekt laden:
Image1.Picture.LoadFromFile(aktuellerRaum.Fotoreferenz);
foto entfernen:
Image1.Picture.CleanUpInstance;
keine ahnung wo das hinsoll
mit dem foto hat der lehrer geschrieben:
fotoreferenz als string deklarieren,
verständlich
im form1.create teil:
[raum].FotoReferenz := 'Bilder/[raum].jpg'
habe ich bereits eingebracht, siehe oben
foto in das objekt laden:
Image1.Picture.LoadFromFile(aktuellerRaum.Fotoreferenz);
foto entfernen:
Image1.Picture.CleanUpInstance;
keine ahnung wo das hinsoll
Zuletzt bearbeitet:
SuperCow
Admiral Special
- Mitglied seit
- 11.11.2001
- Beiträge
- 1.318
- Renomée
- 1
- Mein Laptop
- HP Compaq nx9005
- Prozessor
- X2 3800+ @2,5GHz @1,25V (default) @C'nQ
- Mainboard
- Gigabyte GA-MA69G-S3H
- Kühlung
- Arctic Cooling Freezer 64 Pro
- Speicher
- 4x512MB, DDR2-800, Aeneon
- Grafikprozessor
- onboard
- Display
- Sony SDM-X95FB (19'')
- HDD
- Seagate Barracuda 7200.10 250GB (250GB/Platters)
- Optisches Laufwerk
- LiteOn SOHD-16P9S (DVD/CD), Pioneer DVR-110 (DVD-Brenner)
- Soundkarte
- onboard
- Gehäuse
- Chieftec CS-601
- Netzteil
- 300W HEC
- Betriebssystem
- Windows 7
- Webbrowser
- IE 8
Ja stimmt, beim Momo ist das so 'ne Sache.
Per OnCreate (Ereignis von Form) Memo1:=''; Dann wird das Memo-Feld gelöscht beim Programmstart gelöscht. Sonst nimmst du auch immer Memo1:='';.
Zum anderen: Du musst Image1.Picture.LoadFromFile(aktuellerRaum.Fotoreferenz); immer dann einfügen, wenn du den Raum (das Bild) wechseln willst, also wenn der Benutzer z.B. auf den Button "Move!" klickt.
Image1.Picture.CleanUpInstance; verwendest du immer, wenn du den Raum (das Bild) "löschen" willst.
SuperCow
Per OnCreate (Ereignis von Form) Memo1:=''; Dann wird das Memo-Feld gelöscht beim Programmstart gelöscht. Sonst nimmst du auch immer Memo1:='';.
Zum anderen: Du musst Image1.Picture.LoadFromFile(aktuellerRaum.Fotoreferenz); immer dann einfügen, wenn du den Raum (das Bild) wechseln willst, also wenn der Benutzer z.B. auf den Button "Move!" klickt.
Image1.Picture.CleanUpInstance; verwendest du immer, wenn du den Raum (das Bild) "löschen" willst.
SuperCow
Antarctica
Grand Admiral Special
- Mitglied seit
- 11.09.2004
- Beiträge
- 2.444
- Renomée
- 34
- Standort
- Kupferstadt Stolberg
- Mein Laptop
- HP 625, V140, 4GB RAM, 32GB SSD, Ubuntu 15.04 (WT279EA)
- Prozessor
- Intel Core i5-4690, 4x 3.50GHz, boxed (BX80646I54690)
- Mainboard
- ASRock H97M Pro4 (90-MXGTA0-A0UAYZ)
- Kühlung
- Scythe Big Shuriken 2 Rev. B (SCBSK-2100)
- Speicher
- 2x Exceleram Black and White 8GB PC3-12800 DDR3-1600 Kit (EBW301A)
- Grafikprozessor
- Gigabyte GeForce GTX 750 Ti OC low profile, 2GB GDDR5, DVI, 2x HDMI, DisplayPort (GV-N75TOC-2GL)
- Display
- Samsung SyncMaster T24A350, 24" (LT24A350EW)
- SSD
- Samsung SSD 960 EVO 500GB, PCIe (MZ-V6E500BW)
- HDD
- 2x Seagate GoFlex Desk 3TB, USB 3.0 (STAC3000201/STAC3000202)
- Optisches Laufwerk
- Samsung SH-224BB schwarz, SATA, retail (SH-224BB/RSMS)
- Soundkarte
- on-board
- Gehäuse
- Inter-Tech IT-5908
- Netzteil
- be quiet! System Power S6 80Plus 300W ATX 2.2 (S6-SYS-UA-300W/BN080)
- Betriebssystem
- Microsoft: Windows 10 Pro 64Bit, DSP/SB (deutsch) (PC) (FQC-08922)
- Webbrowser
- Mozilla Firefox
Memo1.Lines sollte dein Freund sein.- wie kann ich es erreichen, dass vor der beschreibung eines neuen raums das Memo1-Feld gecleart wird
Form1.Caption, Edit1.Text, Memo1.Lines- dass in den Feldern nicht mehr 'Memo1' und 'Edit1' steht und die Überschrift einen anderen Namen als 'Form1' hat
Image1.LoadFromFile(dateiname)- wie kann ich fotos einfügen (siehe unten, einen teil habe ich schon)
aber es müssen BMPs sein, JPEG kann Delphi nicht.
ericstar
Vice Admiral Special
jo danke euch,
hab deine tips alle verstanden antarctica (bin leider neuling auf dem gebiet, der quelltext war vom lehrer so fast vorgegeben, bisher haben wir nur in pascal programmiert- ist doch praktisch delphi ohne graphischer oberfläche?)
jetzt fehlt mir nur noch das mit den bildern, der lehrer hat [raum].FotoReferenz := 'Bilder/[raum].jpg' vorgegeben, vielleicht hat er sich da vertan werds mal ausprobieren
/edit: ICH HAAAAABS!!!!
und es funktioniert mit jpeg's
hab deine tips alle verstanden antarctica (bin leider neuling auf dem gebiet, der quelltext war vom lehrer so fast vorgegeben, bisher haben wir nur in pascal programmiert- ist doch praktisch delphi ohne graphischer oberfläche?)
jetzt fehlt mir nur noch das mit den bildern, der lehrer hat [raum].FotoReferenz := 'Bilder/[raum].jpg' vorgegeben, vielleicht hat er sich da vertan werds mal ausprobieren
/edit: ICH HAAAAABS!!!!
und es funktioniert mit jpeg's
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 408
- Antworten
- 0
- Aufrufe
- 931
- Antworten
- 0
- Aufrufe
- 388
- Antworten
- 0
- Aufrufe
- 795