Autor Beitrag
Hannah1990
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Do 14.09.06 19:42 
Also einiges davon ist nur so ungefähr aber mach doch erstmal einen Aufzählungstyp:
ausblenden 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,...{Sonnenaufgang}); //intern ist das ein Ganzzahltyp

var Tageszeit:TTagesstates;

implementation

procedure Graphic.click(...);
begin
   tageszeit:=(ord(Tageszeit)+1mod (length(Tageszeit));
   //hier könnte er einen Typfehler ausspucken aber auch nur weil Eelphi das nicht besser weiß.
   //desweiteren weiß ich nicht, ob ord auf Aufzählungstypen wirkt und ob dafür ein length definiert ist.
   //das length ist aber nicht so wichtig, da Aufzählungstypen zur Compilierzeit bekannt sind und zur Not per
   // Hand abgezählt werden können.
   case tageszeit of
   Tag:begin {zeichne Tag} end;
   Abend:begin {zeichne Abend} end;
   ...
   end;
   //case kann man auch als if then else coden:
   {if tageszeit=Tag
    then begin
       {zeichne Tag
   end else if tageszeit=Abend
   then begin
   ...
   end else if ...
   ...
   end;
   }

end;


Und nun viel Spaß!!!


Zuletzt bearbeitet von Allesquarks am Do 14.09.06 19:47, insgesamt 3-mal bearbeitet
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
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)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Do 14.09.06 19:57 
indem du meinen Vorschlag des Aufzählungstyps und die globale variable unter private schreibst.
Hannah1990 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Do 14.09.06 20:09 
Also, ich habe jetzt geschrieben :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  private
    { Private-Deklarationen }
    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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
type TTagesstates = (Tag,Nacht);					

Das ist ein Aufzählungstyp und zwar nur die Deklaration.

ausblenden 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:
ausblenden Delphi-Quelltext
1:
2:
var person : TMeintyp; 
 person.name:='Janina';

klar?

Variablenzuweisungen benutzt man nur in der Implementation
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
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)
BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
if Status='Abend' then
 begin
  //hier schreibst du was du machen willst z.B.
  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:

ausblenden Delphi-Quelltext
1:
 Status:='Abend';					


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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if Tagstring='Nacht'
then begin
   tagstring:='Morgen';
   {male Nacht}
   //beim nächsten klick ist dann die variable ja schon Morgen => fertig
end else if tagstring='Morgen'
then begin
   ...
end esle
...
Hannah1990 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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 :P