Autor |
Beitrag |
Hannah1990
      
Beiträge: 16
|
Verfasst: Do 14.09.06 19:25
Hi!
Sorry, wenn ich euch schon wieder nerve, aber ich bin am verzweiflen..ich versteh einfach gar nichts mehr und mir graut schon vor der nächsten Informatik-Klausur ...:S
Also, folgendes :
Wir sollen also ein Projekt erstellen, dass sich "Tag-Abend-Nacht" nennt...
Zuerst soll der HIntergrund blau sein, mit einem "Sonnen-Label", dann, wenn man auf den Hintergrund klickt, soll der HIntergrund rot werden und es soll immer noch das "Sonnen-Label" da sein, dann klickt man nochmal, der HIntergrund wird schwarz und es erscheint ein Mond. Und dann eben immer so weiter, dass man theoretisch unendlich klicken kann.
In der Unit soll irgendwas mit if, then, else vorkommen und bei den Implemantations sollen Tag, Abend und Nacht sozusagen definiert werden...
Versteht mich jemand...kann mir jemand helfen...??
Wär euch wirklich dankbar..
MfG, Hannah
|
|
der Berliner
      
Beiträge: 417
Win Xp Home
delphi 2005
|
Verfasst: Do 14.09.06 19:36
hi
beschäftige dich mal mit:
Form1.Color
und mit dem ereignis "OnClick" von deinem Formular.
If then is ja nischt weiter wie "Wenn das so ist dann mache folgendes."
Fang einfach mal an und wenn dann was nich geht postet du wo du Schwierigkeiten hast.
Gruß
_________________ [b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]
|
|
Jetstream
      
Beiträge: 222
|
Verfasst: Do 14.09.06 19:38
Hmmm ... also irgendwas mit "if the else" ?
Schau dir mal die Events deiner Form an. Da gibt es ein "onClick" Event.
Das wird immer dann ausgelöst, wenn jemand die Form anklickt.
Jetzt stell dir mal vor, du schreibst da sowas rein wie "wenn grade Tag war, dann soll jetzt Abend sein".
Das noch in Delphi übersetzen und du bist fertig.
_________________ Die folgenden Klangbeispiele sind Ergänzungen zum methodischen Aufbau der Textbeilage und dürfen nicht losgelöst von dieser behandelt werden.
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: Do 14.09.06 19:42
Also einiges davon ist nur so ungefähr aber mach doch erstmal einen Aufzählungstyp:
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:
| type TTagesstates = (Tag,Abend,Nacht,...); var Tageszeit:TTagesstates;
implementation
procedure Graphic.click(...); begin tageszeit:=(ord(Tageszeit)+1) mod (length(Tageszeit)); case tageszeit of Tag:begin end; Abend:begin end; ... end; end; |
Und nun viel Spaß!!!
Zuletzt bearbeitet von Allesquarks am Do 14.09.06 19:47, insgesamt 3-mal bearbeitet
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Do 14.09.06 19:42
sowas haben wir im Wahl-Kurs 7.Klasse gemacht
Ansich würde ich sagen, du hast doch schon beschrieben wie es funktioniert. Etwaige Probleme werden dir dann schon beantwortet, aber dass jemand dir das ferige Programm schreibt, wird hier im Forum bei "Hausaufgaben" nicht gern gesehen. Immerhin soll man ja auch was dabei lernen.
also, viel Spaß noch mit deinem Informatik-GK (oder sogar LK? *beneid*)...bei uns konnte man den leider nicht wählen
Xion
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
Hannah1990 
      
Beiträge: 16
|
Verfasst: Do 14.09.06 19:50
Ach Gott, nein, es ist kein LK..."nur" ein GK 11. Jahrgang
Also, ich bin jetzt dabei und stocke bei folgendem :
Also, ich muss Tag, Abend und Nacht ja im Private-Teil des Interfaces "definieren", oder?
Wie schreibt man das?
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: Do 14.09.06 19:57
indem du meinen Vorschlag des Aufzählungstyps und die globale variable unter private schreibst.
|
|
Hannah1990 
      
Beiträge: 16
|
Verfasst: Do 14.09.06 20:09
Also, ich habe jetzt geschrieben :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| private tag:= form1.color := claqua; tag:= lblSonneTag.visible := true ; abend:= form1.color := clpurple; abend:= lblSonneAbend.visible := true ; nacht:= form1.color:= clblack; nacht:= lblMond.visible:= true; |
Krieg aber die Fehlermeldung
"Einen Bezeichner erwartet, aber "=" gefunden in Klasse TForm1"
 Ich kanns einfach nich....
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: Do 14.09.06 20:44
Also!!!!:
Eine Deklaration ist etwas anderes als eine Zuweisung. Punkt!!! (Es gibt Sprachen in denen man nicht alles deklarieren muss aber Delphi gehört nicht dazu.
Eine Deklaration macht man mit = . Das Symbol (oder die Symbolkombination) := ist eine Zuweisung beziehungsweise steht für "ist definiert durch".
Man arbeitet in der Programmierung mit "Gefäßen" den Variablen, welche alle einen bestimmten Typ haben, auf welche (die Variablen) man dann Aktionen anwendet oder "umfüllt" durch "Zuweisung".
Nun ist zu unterscheiden zwischen Grundtypen und selbst definierten Typen (wäre ja auch viel verlangt, wenn Delphi alle denkbaren Typen kennen müsste). Eigene Typen deklariert!!!! man und zwar mit type!!!!!.
also:
Delphi-Quelltext 1:
| type TTagesstates = (Tag,Nacht); |
Das ist ein Aufzählungstyp und zwar nur die Deklaration.
Delphi-Quelltext 1: 2: 3: 4:
| type Tmeintyp = record name:string; wert:integer; end; |
Das ist ein "recordtyp" und zwar hat jede Variable dieses Typs einen namen, der nicht der name im Program ist und einen Wert. Gebrauchen kann man das dann wie folgt:
Delphi-Quelltext 1: 2:
| var person : TMeintyp; person.name:='Janina'; |
klar?
Variablenzuweisungen benutzt man nur in der Implementation
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Do 14.09.06 20:45
du kennst dich nicht wirklich mit delphi aus, oder?  aber keine sorge, jeder hat mal klein angefangen. aalso:
du schreibst in den private teil rein:
var Status: String;
meiner meinung nach ist es unnötig kompliziert gleich mit types anzufangen
dann hast du in deiner procedure Form.OnClick (einfach doppelklicken auf Form, dann generiert er die automatisch, oder im Object Inspector unter Events) da schreibst du dann rein:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| if Status='Abend' then begin Form1.Color:=clAqua; end else if Status='Nacht' then ... |
das wars schon. Oh, vergess nicht die Variable Status am Anfang zu initialisieren. Am besten in Form1.OnCreate:
Delphi-Quelltext
natürlich ist das nicht so professionell wie ein type, aber es ist vermutlich als anfänger einfacher zu verstehen
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: Do 14.09.06 21:18
@@ Xion: Also zunächst einmal hat sie ja gesagt, dass der Lehrer will, dass sie das deklarieren sollen. Wenn der Lehrer damit gemeint haben sollte die Varialen Tag und Nacht zu nennen, obwohl sie päter durch den Compiler in reine Speicherstellen verwandelt werden, dann ist der Lehrer meiner Meinung nach auch nicht der beste. Deshalb habe ich in meiner Antwort meiner Meinung nach auch wirklich nur das nötigste erklärt allerdings methodisch nicht auf den speziellen fall gemünzt. Und ich kann dazu nur sagen dieses ganze automatische erstelle etc. hat mich am Anfang nur verwirrt.
@@Hannah: wenn du Xions Methode verwenden solltest, solltest du darauf achten, immer die Vartiable auch weiterzusetzen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| if Tagstring='Nacht' then begin tagstring:='Morgen'; end else if tagstring='Morgen' then begin ... end esle ... |
|
|
Hannah1990 
      
Beiträge: 16
|
Verfasst: Do 14.09.06 21:20
Nee, ich hab ma wirklich so gar keine Ahnung von Delphi...
Und ich kriegs jetzt auch nich hin..is wohl zu spät
Ich versuchs morgen nochma und wenn nich, dann werd ich euch nochma nerven 
|
|
|