Autor Beitrag
Rob-Pha
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Do 07.11.13 16:46 
Du könntest ein TPageControl verwenden und immer nur das aktuelle TabSheet anzeigen.
Rob-Pha Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 07.11.13 17:11 
ok davon habe ich noch nix gehört damit muss ich mich erstma auseinandersetzen
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Fr 15.11.13 10:04 
Also du machst ein Formular und definierst darin eine globale Variable, so z.B.:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Fr 15.11.13 11:24 
user profile iconbaumina hat folgendes geschrieben Zum zitierten Posting springen:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
type TfmFragen = class(TForm)
{....}
  private
    Punktzahl : Integer;
  end;



ähm... Einspruch... das ist das totale Gegenteil einer globalen Variable....

eine globale Variable ist wie der Namen schon sagt, global in einer Unit bekannt bzw. im Projekt sobald die unit in der uses steht, also so was:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
interface
..

var
  Punktanzahl: Integer;

...
implementation
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 15.11.13 11:27 
Um genau zu sein handelt es sich im Formular um ein privates Feld der Klasse TfmFragen.
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Fr 15.11.13 11:34 
user profile iconbaumina hat folgendes geschrieben Zum zitierten Posting springen:
Also du machst ein Formular und definierst darin eine globale Variable, so z.B.:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Fr 15.11.13 11:42 
user profile iconbaumina hat folgendes geschrieben Zum zitierten Posting springen:
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...