Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi StrinGrid, random String, Vokabel Abfrage (https://www.delphipraxis.net/4654-stringrid-random-string-vokabel-abfrage.html)

Daniel B 8. Mai 2003 16:14

Hallo,

ich habe es nach VCL-Komponenten verschoben, mit Datenbanken hat das ja wirklich nichts zutun. ;)

Grüsse, Daniel :hi:

nailor 8. Mai 2003 16:23

wenn rowcount (wie ich vermute) die anzahl der reihen angibt, und du ZB. 2 zeilen hast, und dann random(2-1) aufrufst, wirst du immer das ergebnis 0 haben. gibt rowcount den höchsten index an, dann wird die sache auch nicht besser. also nehme ich an, dass es so wie es immoment ist, falsch ist

Stanlay Hanks 8. Mai 2003 16:32

Zitat:

Zitat von Nailor
wenn rowcount (wie ich vermute) die anzahl der reihen angibt, und du ZB. 2 zeilen hast, und dann random(2-1) aufrufst, wirst du immer das ergebnis 0 haben.

Ich kapier nicht, was du meinst. 2-1 ist 1. und da StringGird Werte nullbasiert sind, lese ich damit doch die 2 Zeile. Lasse mich aber gerne korigieren.

Man liest sich. Stanlay 8)

nailor 8. Mai 2003 17:20

GEnau und (Random(1) = 0) ist immer true. weil es nur eine möglichkeit gibt!

dde 8. Mai 2003 17:30

Wie ich sehe, komm ich nicht rum eine neue Prozedur mit Random_Abrage-Algorithmen zu coden. Naja, Vorschläge erwünscht. Bis dahin versuche ichs selber.

Stanlay Hanks 8. Mai 2003 17:39

@ Nailor. Ziehe mich zurück. :oops: Hast natürlich recht. :wall:

Man liest sich in Demut. Stanlay :oops:

dde 8. Mai 2003 18:32

So ich habe es nun wie folgt gemacht:

Delphi-Quellcode:
procedure TForm1.NextButtonClick(Sender: TObject);
var x:integer;
begin
  x:=0;
  x:=random(StringGrid1.rowcount-1);
  Label1.Caption:=IntToStr(x);
  VokabelLabel.Caption:=StringGrid1.cells[0,StrToInt(Label1.Caption)];
end;

und entsprechend bei der abfrage (Button):

procedure TForm1.EnterButtonClick(Sender: TObject);
begin
   VokEingabeEdit.Text=StringGrid1.cells[1,StrToInt(Label1.Caption)] end;
Zu sagen ist noch: Label1 ist Visible:=false, sprich invisible!

Naja jetzt habe ich es hinbekommen, dass die Abfrage richtig beantwortet wird, doch dann ist mir aufgefallen, dass bei Random, nicht alle Zellen drankommen, nur ein paar. Wie könnte ich denn alle abfragen lassen? Vielleicht mit nem Timer immer neue Werte erstellen und dann random?

Stanlay Hanks 8. Mai 2003 19:17

Wenn du nur Random nimmst, werden immer die gleichen Zufallszahlen erzeugt, so dumm sich das auch aanhört. Du musst vorher irgendwo die Procedur

Delphi-Quellcode:
Randomize;
aufrufen. Dann werden bei jedem Random andere Zufallszahlen erzeugt.

Man liest sich. Stanlay 8)

dde 8. Mai 2003 19:40

Zitat:

Wenn du nur Random nimmst, werden immer die gleichen Zufallszahlen erzeugt, so dumm sich das auch aanhört. Du musst vorher irgendwo die Procedur
Muss ich wirklich eine richtige Prozedur dafür machen? Denn ich habe Randomize vorher so einfach eingesetzt, aber es hat nur richtigen Nutzen, wenn viele Zellen vorhanden sind. Wenn die Zellen unter 10 sind, dann bringt diese Methode auch nichts. Danke trotzdem.
Ich dachte wieder an sowas wie ne Schleife, dass der einfach die Zellen durchgeht, aber dann könnte ich keine Abfrage mehr machen. Vielleicht ginge es ja wenn ich "break" setze:
Kann man extern (z.B per Button) eine Schleife zum Stoppen bringen (mit "break")??


Oder kennt einer unter euch ne bessere Lösung??

@ssach
wo bleibt denn jetzt der source code deines Vokabel Trainers?

Stanlay Hanks 8. Mai 2003 19:44

Ich versteh nicht was du meinst mit: "Muss ich dafür wirklich eine eigene Procedur machen?" Radomize ist doch schon eine eigene Procedur, die du einfach nur z.B. gleich nach dem begin in deinem NextButtonOnClick Ereignis vor den anderen Anweisungen schreiben musst.
Oder hab ich dich falsch verstanden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.
Seite 2 von 3     12 3      

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