Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Hilfe beim Fragespiel

  Alt 15. Mär 2011, 11:33
...kann uns einer sagen wie man das macht? lg
In Delphi eine neue Anwendung erzeugen.
2 x Label Komponente auf das Form1 legen (Caption auf Frage: und Antwort: setzen)
2 x TEdit Komponente auf das Form1 legen
1 x Button auf das Form 1 legen.
-> Button doppelklicken -> Editor geht auf.

Quelltext wie folgt vervollständigen:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses
  IniFiles;

{$R *.dfm}

const
  cNoQuestion = 'keine Frage angegeben';
  cNoAnswer = 'keine Antwort angegeben';

procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStringList;
  s: string;
begin
  sl := TStringList.Create;
  try
    // IniDatei hat Dateinamen der Exe nur mit '.ini' statt '.exe'
    with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do
    try
      ReadSections(sl); // Sektionen auslesen -> [Sektionname]
      s := sl[random(sl.Count)]; // per "Zufall" eine Sektion auswählen
      Edit1.Text := ReadString(s, 'Frage', cNoQuestion); // Frage der Sektion in Edit Feld schreiben
      Edit2.Text := ReadString(s, 'Antwort', cNoAnswer); // Antwort - dito
    finally
      Free; // IniDatei wieder freigeben
    end;
  finally
    sl.Free; // StringListe wieder freigeben
  end;
end;

initialization
  Randomize; // Zufall initialisieren ;-)
end.
IniDatei anlegen.
Ini Datei ist eine Text-Datei mit dem Namen der Exe-Datei aber mit der Dateiendung ini statt exe

z.B. Project1.ini

Folgender Inhalt sollte funktionieren:
Code:
[1]
Frage=Warum?
Antwort=Darum!
[2]
Frage=Weshalb?
Antwort=Deshalb!

[Allgemeinwissen 1]
Frage=Was ist die Antwort auf die Frage nach dem Leben, dem Universum und einfach allem?
Antwort=42

[Fangfrage 1]
Frage=Wo wurde der Friedensvertrag von 1918 unterzeichnet?
Antwort=Unten rechts
Ich hoffe das hilft Dir.
Viel Spaß
MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat