Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Abschlussarbeit 12. Klasse Informatik - Quiz (https://www.delphipraxis.net/187296-abschlussarbeit-12-klasse-informatik-quiz.html)

LeonPP 17. Nov 2015 11:40

Abschlussarbeit 12. Klasse Informatik - Quiz
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag alle samt :),

ich bin jetzt schon seit einigen wochen auf der suche nach tipps und Hilfestellungen
bezüglich meiner Abschlussarbeit, dem Quiz, welche ich mit der Lazarus IDE programmieren will.

Da ich mich sehr gerner mit Bildbearbeitungsprogrammen und dem erstellen von grafiken interessiere haben ich Anfangs
nur am Design meines Programmes gearbeitet. Nun bin ich am Punkt angekommen an dem es für mich persönlich ziemlich schwierig
ist. Ich muss dazu sagen das ich erst seit Anfang der 12. Klasse mit Lazarus und Programmieren im Allgemeinen konfrontiert geworden bin, d.h.
Bisher haben wir einen kleinen Taschenrechner programmiert mit den Grundfunktionen sprich +, -.* und /.
Wir sollten uns für unsere Abschlussarbeit ein Fach aussuchen und uns vom Lehrer ein Thema geben lassen welches im meinem Fall das erstellen
eines Multiple Choice Quiz ist (inkl. Anleitung für Lehrer). Um auf meine eigentliche Frage zurückzukommen ...


-> Wie benutze oder baue ich INI Files in mein Quiz ein?

Ich hab schon 'ne menge Seiten abgeklappert aber alles war ziemlich Unverständlich für mich, deshalb wende ich mich jetzt an euch :)

Hoffe ihr könnt mir ein paar Tipps geben (Ich will keine Lösungen, nur Ansätze ^^)

Danke im vorraus!
LeonPP

UNIT1:
Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, unit2, Windows
;

type

  { TForm1 }

  TForm1 = class(TForm)
    Bg: TImage;
    HP: TImage;
    Start: TImage;
    Beenden: TImage;
    procedure BgClick(Sender: TObject);
    procedure BeendenClick(Sender: TObject);
    procedure HPClick(Sender: TObject);
    procedure StartClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.BeendenClick(Sender: TObject);
begin
  Form1.Close;
end;

procedure TForm1.HPClick(Sender: TObject);
begin
  ShellExecute(Handle, 'OPEN', 'http://www.****.de', nil, nil,SW_SHOWNORMAL);
  {öffnet Internetadresse im Browser}
end;

procedure TForm1.StartClick(Sender: TObject);
begin
  Form1.Hide;
  Form2.Show;
end;

end.

Jumpy 17. Nov 2015 11:47

AW: Abschlussarbeit 12. Klasse Informatik - Quiz
 
Hier mal ein Link zu einem Tutorial für Ini-Files vom DT:

http://www.delphi-treff.de/tutorials...g/ini-dateien/


Wenn es nun darum geht, wie du z.B. konkret Fragen/Antworten was weiß ich in der INI-Datei speichern und wieder laden kannst, müsstest du dir Gedanken machen und uns hier vorstellen, wie du dir das Quiz überhaupt gedacht hast.

LeonPP 17. Nov 2015 11:53

AW: Abschlussarbeit 12. Klasse Informatik - Quiz
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Jumpy (Beitrag 1321676)
Wenn es nun darum geht, wie du z.B. konkret Fragen/Antworten was weiß ich in der INI-Datei speichern und wieder laden kannst, müsstest du dir Gedanken machen und uns hier vorstellen, wie du dir das Quiz überhaupt gedacht hast.

Danke für deine schnelle antwort :).


Im anhang ist ein Bild welches eigtl. alles erklären sollte ^^. Simple gehalten. Frage-> Antwort->Weiter | mehr soll es auch nicht können und wurde auch nicht so vom lehrer gewünscht.


LeonPP

Sir Rufo 17. Nov 2015 12:13

AW: Abschlussarbeit 12. Klasse Informatik - Quiz
 
Mach dir einmal Gedanken, was für Informationen du pro Frage in der Ini-Datei speichern musst, dann ergibt sich der Aufbau fast von selber.

Danach erstelle dir Methoden, die einfache Dinge erledigen:
Delphi-Quellcode:
TFrageForm = class( TForm )
 ...
private
  procedure ZeigeFrageAn( FrageIndex : Integer );
  function IstDieFrageRichtigBeantwortet( FrageIndex, AntwortIndex : Integer ): Boolean;
end;
Diese Methoden kann man dann sehr einfach für den Spielfluss verwenden:
Nach dem Drücken auf Weiter prüft man ob die Frage richtig beantwortet war und merkt sich das Ergebnis und lässt sich die nächste Frage anzeigen.
Delphi-Quellcode:
procedure TFrageForm.WeiterButtonClick(Sender: TObject);
begin
  {AntwortSpeicher - selber überlegen} := IstDieFrageRichtigBeantwortet( AktuelleFrageIndex, AntwortIndex );
  AktuelleFrageIndex := HoleNaechsteFrage;
  ZeigeFrageAn( AktuelleFrageIndex );
end;

LeonPP 17. Nov 2015 13:14

AW: Abschlussarbeit 12. Klasse Informatik - Quiz
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,

danke für die antworten. Ich bemerke das ich dafür noch nicht bereit bin :?. Könntet ihr mir ein Lazarus Tutorial bzw. Crashkurs anbieten? Damit ich erstmal mehr von der Grundmaterie verstehe denn so etwas hatten wir noch nicht in der Schule.

Danke!
LeonPP

Von den Anhängen bekommt ihr wahrscheinlich Kopfschmerzen ...

DeddyH 17. Nov 2015 13:18

AW: Abschlussarbeit 12. Klasse Informatik - Quiz
 
Ich hab den Link gerade in der Zwischenablage: http://www.delphi-treff.de/downloads/e-book/ :lol:
Ob da allerdings Ini-Dateien behandelt werden, weiß ich leider nicht, aber der Link zum Tutorial steht ja schon weiter oben.

Sir Rufo 17. Nov 2015 13:50

AW: Abschlussarbeit 12. Klasse Informatik - Quiz
 
Also was in keinem Delphi-(Irgendeine-Programmiersprache-)Handbuch zu finden ist, ist der Weg vom Problem zum Lösungsansatz.

Das ist wie mit den Textaufgaben in der Mathematik. Erst muss ich begriffen haben, worum es dort geht und dann kann ich mit der Mathematik anfangen.

Du musst jetzt ersst einmal ein paar Dinge festlegen:
  • Anzahl der Antworten zu einer Frage?
    • Fix: (z.B. immer 3 Antworten)
    • Variabel: 2-(max. 10?) Antworten
  • Anzahl der auswählbaren Antworten?
    • 1 bis 1 Antworten müssen ausgewählt werden
    • 0 bis 1 Antworten müssen ausgewählt werden
    • 1 bis n Antworten müssen ausgewählt werden
    • 0 bis n Antworten müssen ausgewählt werden
Nahmen wir einmal an, du legst folgendes fest:
  • Zu jeder Frage gibt es 3 Antwortmöglichkeiten
  • Es kann nur eine Antwort ausgewählt werden
  • Es muss eine Antwort ausgewählt werden
Dann könnte die Ini-Datei so aufgebaut sein
Code:
[Frage0]
Text=Was meinst du?
Richtig=1
[Frage0\Antworten]
0=Ja
1=Nein
2=Vielleicht
Auslesen kann man das dann
Delphi-Quellcode:
FrageSection := Format( 'Frage%d', [FrageIndex] );
AntwortSection := FrageSection + '\Antworten';
FrageText := FragenIni.ReadString( FrageSection, 'Text', '' );
RichtigeAntwort := FragenIni.ReadInteger( FrageSection, 'Richtig', 0 );

// alternativ kann man natürlich auch ein Array verwenden

Antwort0 := FragenIni.ReadString( AntwortSection, '0', '' );
Antwort1 := FragenIni.ReadString( AntwortSection, '1', '' );
Antwort2 := FragenIni.ReadString( AntwortSection, '2', '' );


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 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