Autor |
Beitrag |
Rob-Pha
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 07.11.13 16:42
Hallo, ich bin Schüler an nem Gymnasium und soll jetzt in der 12. Klasse ein Spiel/Programm programmieren.
Meine Idee:
So etwas wie ein Ökologisches Verhalten,
man bekommt ca. 8 Fragen gestellt jede Frage ergibt einen Wert bsp. Wie oft fahren sie Auto in der Woche?
Antwort Möglichkeiten : 1x, 2x,3x,4x,5x oder mehr -> Diese antworten sollen auf einem Radiobutton beantwortet werden, die Antwort ergibt einen bestimmten Wert welcher immer mit der nächsten Frage bzw. deren Antwort addiert oder subtrahiert(es soll auch Fragen geben bei dem man -Werte auf die Endrechnung bekommt wie zum bsp. wie oft nutzen sie das Fahrrad? je nach Antwort 1-5x die Woche wird dann der Wert vom Endergebnis abgezogen weil es ja Ökologisch ist.) wird.
So nun wäre das anisch ja nicht schwer denn man könnte ja alles auf einer Seite machen ,aaaaaber meine Lehrerin möchte das ich den Spaß, also jede Frage auf einer eigenen Seite beantworte, bedeutet dass nach dem anklicken eines Buttons für bsp.weise "weiter" zur nächsten Seite komme. Da ist nun mein Problem wie bekomme ich es hin das diese Seiten alle miteinander rechnen können? denn auf der letzten Seite hätte ich gerne das es ein Ergebnis auf einem Label oder Panel ausspuckt das je nach Kategorie dem Benutzer sagt wie sein verhalten ist. Das lässt sich ja dann optisch auf Panels lösen.
Ich hoffe das es halbwegs verständlich ist was ich hier will.
Mit freundlichen Grüßen
|
|
baumina
      
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Do 07.11.13 16:46
Du könntest ein TPageControl verwenden und immer nur das aktuelle TabSheet anzeigen.
|
|
Rob-Pha 
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 07.11.13 17:11
ok davon habe ich noch nix gehört damit muss ich mich erstma auseinandersetzen
|
|
baumina
      
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Do 07.11.13 17:16
Mit einer TPageControl und der darauf liegenden TTabSheets hast du mehrere Registerkarten. Setzt Du in der TPageControl die TabHeight auf 0, werden die Reiter nicht mehr angezeigt. Den Weiter-Button und den Zurück-Button legst du ausserhalb von der TPageControl. Wird Weiter gedrückt, erhöhst du den ActivePageIndex der TPageControl um 1, beim Zurück -1. Innerhalb eines TTabSheets kannst du dann die jeweilige Frage und deren Radiobuttons legen. Auf dem letzten TabSheet kommt dann die Auswertung.
Dadurch merkt der Benutzer nichtmal dass er Registerkarten hätte.
|
|
WasWeißDennIch
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: Do 07.11.13 17:48
Statt mit TabHeight regele ich so etwas über TabVisible des TabSheets, aber jeder so, wie er mag.
|
|
Rob-Pha 
Hält's aus hier
Beiträge: 4
|
Verfasst: Fr 15.11.13 09:01
Hallo, Danke erstml für die Antwort ich werde mich jetzt mal mit den Sachen auseinander setzen, kann mir jemand eventuellnen tutorial empfehlen? Grüße
|
|
baumina
      
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Fr 15.11.13 09:06
Ein Tutorial kenne ich jetzt keins, aber evtl. hilft dir das hier weiter delphi.about.com/od/.../hidepagectrltab.htm
|
|
Rob-Pha 
Hält's aus hier
Beiträge: 4
|
Verfasst: Fr 15.11.13 09:55
Hallo, Danke für die Seite, also ich hab gerade Unterricht und meine Lehrerin meint ich muss auch schauen wie ich die Variable welche zum Ende des Programms den End wert errechnet, deklairere ( Global muss es sein ,
aber mein größtes Problem ist erstmal die Verarbeitung des Wertes welcher der RadioButton gibt ( bsp. heißt die 1. Frage wie oft nutzen sie Ihr Auto, der Nutzer hat per Radiobuton die antwort möglichkeiten von 1-6 x die Woche)
wie bekomme ich es hin das dieser Wert Addiert wird, denn ziel des Programmes ist es ja am Ende einen Gesamtwert zu bekommen welcher die Aussage über das ökologische Verhalten gibt. Ich bin mit den Tpagecontrol nocht nicht ganz durchgestiegen,wie realisiere ich denn das diese mit den Werten umgehen kann?
|
|
baumina
      
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Fr 15.11.13 10:04
Also du machst ein Formular und definierst darin eine globale Variable, so z.B.:
Delphi-Quelltext 1: 2: 3: 4: 5:
| type TfmFragen = class(TForm)
private Punktzahl : Integer; end; |
Auf die globale Variable Punktzahl kannst du jetzt überall innerhalb von TfmFragen zugreifen (auf 0 setzen, erhöhen, zum Schluss anzeigen).
Was die Komponente TPageControl geht, musst einfach mal die Komponente auf dein Formular setzen, rechts klicken, neue Seite anklicken und bisserl rumspielen (auf jede der Registerkarten mal ein TLabel legen), das verstehst du sicher dann schon.
Zuletzt bearbeitet von baumina am Fr 15.11.13 11:33, insgesamt 1-mal bearbeitet
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Fr 15.11.13 11:24
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 15.11.13 11:27
Um genau zu sein handelt es sich im Formular um ein privates Feld der Klasse TfmFragen.
|
|
baumina
      
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Fr 15.11.13 11:32
Unglücklich ausgedrückt, sorry, ich streiche das Wort "global", ich habe es ja schon alleine durch die Aussage "innerhalb des Formulars" widerlegt. Trotzdem wäre eine Variable innerhalb der Formular-Klasse für die Anforderung eine gute Lösung.
|
|
baumina
      
Beiträge: 305
Erhaltene Danke: 61
Win 7
Delphi 10.2 Tokyo Enterprise
|
Verfasst: Fr 15.11.13 11:34
baumina hat folgendes geschrieben : | Also du machst ein Formular und definierst darin eine globale Variable, so z.B.:
Delphi-Quelltext 1: 2: 3: 4: 5:
| type TfmFragen = class(TForm)
private Punktzahl : Integer; end; |
Auf die globale Variable Punktzahl kannst du jetzt überall innerhalb von TfmFragen zugreifen (auf 0 setzen, erhöhen, zum Schluss anzeigen).
Was die Komponente TPageControl geht, musst einfach mal die Komponente auf dein Formular setzen, rechts klicken, neue Seite anklicken und bisserl rumspielen (auf jede der Registerkarten mal ein TLabel legen), das verstehst du sicher dann schon. |
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Fr 15.11.13 11:42
baumina hat folgendes geschrieben : | Unglücklich ausgedrückt, sorry, ich streiche das Wort "global", ich habe es ja schon alleine durch die Aussage "innerhalb des Formulars" widerlegt. Trotzdem wäre eine Variable innerhalb der Formular-Klasse für die Anforderung eine gute Lösung. |
keine Frage - für den Zweck so spontan gesagt auch die deutliche bessere Lösung...
|
|