Autor Beitrag
Inforgruppe
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 19.01.10 17:54 
Hey, wir sind eine Mädchengruppe im Informatikunterricht und haben winzige Probleme mit unserer Aufgabe.:?!?:

Also, erstmal dazu was wir überhaupt machen müssen. Wir sollen ein Wissensquiz erstellen in einer Form, die wir wollen (natürlich sollen wir ein Programm schreiben). Wir haben es uns da relativ einfach gemacht und Formulare verwendet, die sich nach dem beantworten der Frage schließen und sich ein neues öffnet. Dadurch haben wir 27 Formulare und somit auch 27 Units. Das klappt alles total gut, aber jetzt kommt der Haken. Wir wollen eine Variable mitlaufen lassen, welche die falschen Antworten zählt. Also müssen wir die Variable ja global definieren. Die Frage hierbei ist, wo ? Und zwar muss ja von Unit zu Unit die Variable übergeben werden, damit wir sie zum Schluß bei der Auswertung ausgeben können. Wie organisiert man das?

So, nachdem das geklärt wäre, kommen wir zu nem anderen Punkt. Weiß jemand, wie man es schafft nur ein bis zwei Formulare zu nutzen, also das sich die Fragen weglöschen und sich neue beim "Weiter"-Klicken aufschlagen?

Vielen Dank schonmal im Voraus für euere Hilfe. :flehan:


Moderiert von user profile iconNarses: Topic aus Algorithmen, Optimierung und Assembler verschoben am Di 19.01.2010 um 17:59
max1235
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

win 98 (aber so gut wie nie dran), win xp, win vista, xandros
delphi(delphi3+7), c#(MV), c++(codeblocks;noch ganz am Anfang vom Lernen)
BeitragVerfasst: Di 19.01.10 17:56 
eigentlich alle komponenten kann man mit z.b. label1.visible:=false; unsichtbar machen. sichtbar werden sie eben wieder mit label1.visible:=true;. nur halt anstatt label1 den namen der komponenten
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 19.01.10 17:58 
Hallo und :welcome: im Delphi-Forum!

Also ersteinmal, eigentlich pro Topic eine Frage. Dann kann man dem Disskussionsstrang besser folgen.

Eine globale Variable könnt ihr zum Beispiel im Quelltext zum ersten Formular deklarieren. Genauer gesagt unter dem Wort public. Zugreifen könnt ihr dann mit Form1.GlobaleVariable := 15;

Um die Fenster zu reduzieren könntet ihr TabSheets verwenden. ;)

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Di 19.01.10 17:58 
Vielleicht hättet ihr euch ein variableres Format wählen sollen, wo ihr beispielsweise, die Fragen und Antwortmöglichkeiten in Arrays oder in Listen speichert & dann ausliest, so hätt ihr nur eine Form und euer Problem wäre so gelöst.

Aber wenn ihr das so machen wollt, wie im Moment, dann solltet ihr eventuelle eine Unit erstellen, die eure Variable enthält, und die überall einbinden damit ihr die einfach verändern könnt.
Sprich also eine Leere Unit mit einer globalen Variable:
Die wird eingebunden in der "uses" Klausel.
Dann könnt ihr ganz einfach "Variablenname := Variablenname + 1;" anwenden und euer Problem wäre gelöst.


//Edit
Das ist ja blöd. Da waren einige doch glatt schneller als ich :nixweiss:
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 19.01.10 18:02 
user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht hättet ihr euch ein variableres Format wählen sollen, wo ihr beispielsweise, die Fragen und Antwortmöglichkeiten in Arrays oder in Listen speichert & dann ausliest, so hätt ihr nur eine Form und euer Problem wäre so gelöst.


Wie man die Fragen speichert ist ja nun kein Problem das an die Formulare gekoppelt ist. Ich kann ein Array machen mit den Fragen und Antworten usw und trotzdem für jede Frage ein neues Fenster aufmachen. Genauso könnt ich aber die Fragen Hardcoden und nur 1 Fenster machen.

user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:
Aber wenn ihr das so machen wollt, wie im Moment, dann solltet ihr eventuelle eine Unit erstellen, die eure Variable enthält, und die überall einbinden damit ihr die einfach verändern könnt.
Sprich also eine Leere Unit mit einer globalen Variable:
Die wird eingebunden in der "uses" Klausel.
Dann könnt ihr ganz einfach "Variablenname := Variablenname + 1;" anwenden und euer Problem wäre gelöst.


Wenn sie schon 27 Units haben, hältst du es dann für sinnvoll noch eine Unit reinzuschmeißen? Man könnte doch auf schon vorhandene zurückgreifen.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Di 19.01.10 18:05 
Natürlich könnte man das auch, mein Vorschlag wäre ja von anfang an eine Unit die Dynamisch ist, vllt hab ich deswegen die "extra" Unit eingebaut. Das würde den 27 Units vorbeugen bzw. 27 Formulare.
Im endeffekt läuft das ja darauf hinaus was ich auch gesagt hab, vllt wurds nur nich ganz so verstanden, wie ich das gemeint hatte.