AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fahrschulprogramm

Ein Thema von Bloodycrow · begonnen am 5. Jun 2006 · letzter Beitrag vom 6. Jun 2006
Antwort Antwort
Bloodycrow

Registriert seit: 2. Jun 2006
3 Beiträge
 
#1

Fahrschulprogramm

  Alt 5. Jun 2006, 13:32
Hi,

Erstmal muss ich sagen, dass dies mein erstes Thema ist.

Achso Vorweg: Dieses Programm soll im Auftrag eines Schulprojekts der 12 Klasse stattfinden.

Wie der Titel schon sagt, versuche ich ein Fahrschulprogramm zu machen, mit Grafik und Fragebogen. Leider habe ich noch nicht wirklich Ideen und hoffe daher,dass ihr mir da helfen könnt.

zur Erläuterung des Programmes:

Es sollen möglichst Fragebögen mit Grafiken eingebaut werden, die mit richtig und falsch bewertet werden (am Ende wird dann eine Lösung kommen mit den richtigen Antworten, diese Antworten sollen jeweil mit grün für richtig und mit rot für falsch ausgegeben werden).
Vieleicht ist es auch möglich, eine kleine Straße zu basteln (grafisch), wo man das Fahrverhalten nachahmen kann, z.B. die Rechts vor Links Regelung.


Das sollte erstmal reichen, wenn ihr ne Idee habt, dann postet bitte.

LG
Bloodycrow
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2

Re: Fahrschulprogramm

  Alt 5. Jun 2006, 13:47
Ich würde zunächst erstmal überlegen, wie ihr/du die Grafiken und den Text (sprich Fragen und Antworten, richtige Antworten...) speichert. Das könntest du mit einer DB machen. Theoretisch können sogar ganze Bilder als Blobs (richtig?) in die DB gespeichert werden.
Allerdings sind DBs vielleicht nichts für jemanden, der gerade erst mit Delphi oder gar mit dem Programmieren anfängt. Sicherlich kriegt man das auch irgendwie hin, ist aber sicherlich nicht optimal für den Einstieg. Musst du daher wissen (Kenne deine Erfahrungen ja nicht ).

Alternativ könntest du statt richtiger Datenbank auch ein Ini-File nehmen. Da findest du recht viel hier und auch in der Hilfe. Die Bedienung ist echt simpel. Für jede Frage könntest du eine Hauptgruppe erstellen und dann die Antworten als einzelne Unterpunkte speichern. Um die Bilder auch noch einzubinden, kannst du da auch einfach die Pfade speichern.
Da kannst du ja ein wenig mit rumspielen. Inis sind prinzipiell so aufgebaut:
Code:
[Hauptgruppe]
unterpunkt1=wert
unterpunkt2=wert2
[Hauptgruppe2]
unterpunkt1=wert
unterpunkt2=wert2
Als nächste etwas flexiblere Lösung bietet sich XML an. Da findest du zwar hier ein Tutorial, aber für den Einstieg ist das vielleicht auch nicht unbedingt das beste.

Nachtrag: Erst wenn du dir überlegt hast, wie du die Fragen etc. speicherst, würde ich mir Gedanken über die Darstellung im Programm machen. Aber prinzipiell könntest du halt dir die Radiobutton nehmen und diese dynamisch erstellen. Bilder halt im Timage reinladen.
Fang am besten erstmal an und stelle dann gezieltere Fragen
Alexander
  Mit Zitat antworten Zitat
Bloodycrow

Registriert seit: 2. Jun 2006
3 Beiträge
 
#3

Re: Fahrschulprogramm

  Alt 5. Jun 2006, 13:56
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; Zeile: String;
begin
  randomize;
  Gefragt := 0;
  Geloest := 0;
  try
    if OpenDialog1.Execute then
      DateiName := OpenDialog1.FileName
    else
      DateiName := 'Fragen.txt';
    AssignFile (Datei, DateiName);
    Reset (Datei);
    for i := 1 To Max do
    begin
      Readln (Datei, Frage[i]);
      Readln (Datei, Antwort[i,1]);
      Readln (Datei, Antwort[i,2]);
      Readln (Datei, Antwort[i,3]);
      Readln (Datei, Zeile);
      Richtig[i] := StrToInt (Zeile);
    end;
    CloseFile (Datei);
  except
    ShowMessage ('Datei oder Daten nicht vorhanden!');
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Nr := random (Max) + 1;
  Panel1.Caption := Frage[Nr];
  RadioGroup1.Items[0] := Antwort[Nr,1];
  RadioGroup1.Items[1] := Antwort[Nr,2];
  RadioGroup1.Items[2] := Antwort[Nr,3];
  if CheckBox1.Checked then
    RadioGroup1.ItemIndex := Richtig[Nr]-1
  else
    RadioGroup1.ItemIndex := -1;
  inc (Gefragt);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if RadioGroup1.ItemIndex = Richtig[Nr]-1 then
  begin
    inc (Geloest);
    Panel1.Caption := 'Von ' + IntToStr(Gefragt) + ' sind ' + IntToStr(Geloest) + ' richtig!';
  end
  else
    Panel1.Caption := 'Falsch!';
end;
das habe ich schon von einem früheren Quiz,allerdings muss ich die Möglickeit haben, mehrere Antworten auswählen zu können und das muss ich verändern...und da fehlen mir die ideen.

Und ich möchte, dass zu bestimmten Fragen auch das dazugehörige Bild dahinkommt...das kann ich noch nicht realisieren.
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Fahrschulprogramm

  Alt 5. Jun 2006, 14:36
hi, wie ich sehe hast du radiobuttons genommen in dem Quiz.
Hoffentlich mach ich mich jetzt nicht ganz zum deppen aber so weit ich weiß kann man immer nur 1 Radiobutton anklicken.
Daher würde ich an deiner stelle checkboxen nehmen, da man damit mehrere anklicken kann.
Zu dem Bild:
Du nimmst einfach ein TImage Komponenten und plazierst ihn auf die Form.

Mit folgendem Code lädst du ein Bild in das TImage:
image1.Picture.LoadFromFile(//name des bildes);

Hoffe ich konnte dir damit helfen

martin
Martin
  Mit Zitat antworten Zitat
Bloodycrow

Registriert seit: 2. Jun 2006
3 Beiträge
 
#5

Re: Fahrschulprogramm

  Alt 5. Jun 2006, 14:48
danke für die Antwort. Ich weiss das mit dem Bild, mein Problem ist,dass ich nun inifiles nehmen möchte und nicht weiß, wie man es dann auf die Form überträgt! hier is das alte Programm, mit dem Radioboxen.

Delphi-Quellcode:
const
  Max = 3;
var
  Form1 : TForm1;
  Frage : Array[1..Max] of String;
  Antwort: Array[1..Max, 1..3] of String;
  Richtig: Array[1..Max] of Integer;
  Nr : Integer;
  Gefragt: Integer;
  Geloest: Integer;
  Datei : TextFile;
  DateiName: String;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; Zeile: String;
begin
  randomize;
  Gefragt := 0;
  Geloest := 0;
  try
    if OpenDialog1.Execute then
      DateiName := OpenDialog1.FileName
    else
      DateiName := 'Fragen.txt';
    AssignFile (Datei, DateiName);
    Reset (Datei);
    for i := 1 To Max do
    begin
      Readln (Datei, Frage[i]);
      Readln (Datei, Antwort[i,1]);
      Readln (Datei, Antwort[i,2]);
      Readln (Datei, Antwort[i,3]);
      Readln (Datei, Zeile);
      Richtig[i] := StrToInt (Zeile);
    end;
    CloseFile (Datei);
  except
    ShowMessage ('Datei oder Daten nicht vorhanden!');
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Nr := random (Max) + 1;
  Panel1.Caption := Frage[Nr];
  RadioGroup1.Items[0] := Antwort[Nr,1];
  RadioGroup1.Items[1] := Antwort[Nr,2];
  RadioGroup1.Items[2] := Antwort[Nr,3];
  if CheckBox1.Checked then
    RadioGroup1.ItemIndex := Richtig[Nr]-1
  else
    RadioGroup1.ItemIndex := -1;
  inc (Gefragt);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if RadioGroup1.ItemIndex = Richtig[Nr]-1 then
  begin
    inc (Geloest);
    Panel1.Caption := 'Von ' + IntToStr(Gefragt) + ' sind ' + IntToStr(Geloest) + ' richtig!';
  end
  else
    Panel1.Caption := 'Falsch!';
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  try
    if SaveDialog1.Execute then
      DateiName := SaveDialog1.FileName
    else
      DateiName := 'Geloest.txt';
    AssignFile (Datei, DateiName);
    Rewrite (Datei);
    Writeln (Datei, Gefragt);
    Writeln (Datei, Geloest);
    CloseFile (Datei);
  except
    ShowMessage ('Daten lassen sich nicht speichern!');
  end;
end;
jetzt ändere ich diesen Code,indem ich halt inifiles nehme,dass sieht in etwa so aus:

Delphi-Quellcode:
var ini : TInifile;
    loesung : string;
    i : integer;
    b : boolean; // temporäres ergebnis
begin
  ini := TInifile.Create('C:\new.ini');
  loesung := ini.readstring('1','L','0000');
Jetzt brauche ich die Ausgabe dafür und die fehlt mir halt mit den inifiles.
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#6

Re: Fahrschulprogramm

  Alt 5. Jun 2006, 16:47
Hi,
ich habe gerade nicht so viel Zeit, aber es gibt ja z.B. die Methoden ini.ReadSections() und ini.ReadSection(), mit denen du die einzelnen Hauptgruppen und dann auch den Inhalt dieser Gruppen auslesen kannst. Das wäre dann der erste Schritt. Zum Anzeigen gehst du dann durch die StringList die durch die Methode ReadSection bekommst (der 2. Parameter der Funktion, glaube ich zumindest. Habe gerade kein Delphi parat). Da sind dann die Fragen etc. drin. Die musst du nur in deine RadioGroup z.B. mit assign anhängen.
Sprich:
Delphi-Quellcode:
var
  Ini : TIniFile;
  sl : TStringList;
begin
// Ini erzeugen etc...
  sl := TStringList.Create;
  ini.ReadSection('..', sl);
  RadioGroup1.Items.Assign(sl);
Ich hoffe zumindest dass ich gerade keine Methoden der Inis verwechsele. Es gibt zumindest eine Methode, mit der man die Schlüssel und Werte auslesen kann.
Für weitere Fragen, könntest du auch mal posten, wie genau deine Ini jetzt aussieht.
Alexander
  Mit Zitat antworten Zitat
Börn

Registriert seit: 5. Jun 2006
8 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Fahrschulprogramm

  Alt 6. Jun 2006, 10:49
zu Radio-Buttons:

in einer Groupbox mit Radiobuttons kann immer nur ein Radiobutton ausgewählt werden, ist ja gerde der Sinn dieser
Einrichtung.

es empfehlen sich Checkboxen, da können 0, 1, 2 ... alle angekreuzt werden.

Börn
wER rECHTSCHREIBFEHLER fINDET; dER dARF sIE bEHALTEN!!

werde mich aber dennoch bemühen...
Gruß Börn
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz