Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi das abfragen der listboxen (https://www.delphipraxis.net/85346-das-abfragen-der-listboxen.html)

Jakob3 29. Jan 2007 16:31


das abfragen der listboxen
 
Ich hätte eine Frage zu Listboxen (mal wieder...) Ich benötige für eine Vokabel Programm das mit 2 Listboxen arbeitet, in listbox1 werden die Fremdsprachigen vokabeln angezeigt und in listbox2 die muttersprachigen Vokabeln. Die jewalls zusammen gehörigen Vokabeln stehn in der listbox an gleicher stelle (Bsp: go-gehen). Ich will jetzt per Knopfdruck eine zufällige deutsche/englische Vokabel in ein Panel erscheinen lassen und der user muss die englische/deutsche lösunfg in ein edit-feld schreiben. Ob er richtig liegt würd ihm durch eine message bekannt gegeben. Wie kann ich durch zufall eine deutsche/englische Vokabel in einem panel erscheinen lassen und die antwort kontrollieren lassen?

MarvinM 29. Jan 2007 17:03

Re: das abfragen der listboxen
 
Steht in den Boxen dann z.B. an erster Stelle einmal "go" und in der anderen "gehen" ?

Jakob3 29. Jan 2007 17:05

Re: das abfragen der listboxen
 
Zitat:

in der listbox an gleicher stelle (Bsp: go-gehen)
genau das wollt ich damit sagen! :P

shmia 29. Jan 2007 17:05

Re: das abfragen der listboxen
 
Delphi-Quellcode:
var
   rindex : integer;
begin
   rindex := random(listbox1.Count); // Zufallszahl zwischen 0 und listbox1.Count-1
   
   listbox1.ItemIndex := rindex;  // die Zeile anwählen
   PanelForeign.Caption := listbox1.Items[rindex]; // Zufällige Vokabel
end;
Um nun die Eingabe zu prüfen:
Delphi-Quellcode:
   i := listbox2.Items.IndexOf(EditVokabel.Text);
   if i < 0 then
      raise Exception.CreateFmt('<%s> ist nicht in der Liste', [EditVokabel.Text])
   else
   begin
      listbox2.ItemIndex := i;
      if listbox1.ItemIndex <> listbox2.ItemIndex then
         raise Exception.CreateFmt('<%s> ist falsch', [EditVokabel.Text])
   end;

Jakob3 29. Jan 2007 17:09

Re: das abfragen der listboxen
 
Zitat:

PanelForeign.Caption := listbox1.Items[rindex]; // Zufällige Vokabel
Das kennt delphi net :(

MarvinM 29. Jan 2007 17:14

Re: das abfragen der listboxen
 
Probier mal das:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MutterList: TListBox;
    FremdList: TListBox;
    Gen: TButton;
    EingabeEdt: TEdit;
    Chk: TButton;
    procedure GenClick(Sender: TObject);
    procedure ChkClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Zufall: Integer;
  AskWord: String;

implementation

{$R *.DFM}

procedure TForm1.GenClick(Sender: TObject);
begin
  //ZUfallszahl
  randomize;
  zufall := random(FremdList.Items.Count);

  //Wort auswählen
  AskWord := FremdList.Items.Strings[Zufall];
  Showmessage(AskWord);
end;

procedure TForm1.ChkClick(Sender: TObject);
var
  Eingabe: String;
begin
  //Eingabe mit Vorgabe vergleichen
  Eingabe := EingabeEdt.Text;
  if not (Eingabe = MutterList.Items.Strings[Zufall]) then
    Showmessage('Die Eingabe ist falsch!');
end;

end.

shmia 29. Jan 2007 17:15

Re: das abfragen der listboxen
 
Zitat:

Zitat von Jakob3
Zitat:

PanelForeign.Caption := listbox1.Items[rindex]; // Zufällige Vokabel
Das kennt delphi net :(

Du darfst natürlich nicht blind abschreiben, sondern musst die Namen der Controls an deine Namensgebung anpassen. Anstelle eines Panel kannst du auch ein TEdit verwenden, um den fremdsprachigen Text auszugeben.
Ich muss auch von dir erwarten, dass du die Onlinehilfe von Delphi benützt.

Jakob3 29. Jan 2007 17:20

Re: das abfragen der listboxen
 
das war auch das falsche zitat (sry)

ich mein das:
Zitat:

i := listbox2.IndexOf(EditVokabel.Text);
mein delphi kennt kein indexof!

shmia 29. Jan 2007 17:22

Re: das abfragen der listboxen
 
Zitat:

Zitat von Jakob3
ich mein das:
Zitat:

i := listbox2.IndexOf(EditVokabel.Text);
mein delphi kennt kein indexof!

Da musst du dich verlesen haben. :zwinker: Kuck nochmal, was da genau steht...

Pfoto 29. Jan 2007 17:23

Re: das abfragen der listboxen
 
Du hast noch was vergessen... (Items)

Delphi-Quellcode:
i := listbox2.items.IndexOf(EditVokabel.Text);
Gruß
Pfoto


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz