![]() |
Re: Zufälligen Buchstaben anzeigen
Zitat:
|
Re: Zufälligen Buchstaben anzeigen
@Sharky: Natürlich kann ich euch den code zeigen:
Delphi-Quellcode:
Also ich habe es so gemacht, wie es hier steht, also mit case oder a-z in einer variablen und dann mit Position, is denke ich für meinen zweck sinnvoller als das mit chr usw. da ich dann besser bestimmen kann, welche zeichen verwendet werden sollen.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Anschlage: TLabel; Fehler: TLabel; Button1: TButton; procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private C: Char; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Edit1Change(Sender: TObject); begin If Edit1.Text = Label2.Caption then begin Anschlage.Caption := inttostr(strtoint(Anschlage.Caption) + 1); end else begin Fehler.Caption := inttostr(strtoint(Fehler.Caption) + 1); end; Label2.Caption := ''; Edit1.Text := ''; repeat C := Chr(Random(127 + 1)); until C in ['A'..'Z', 'a'..'z']; Edit1.Text := C; end; procedure TForm1.FormCreate(Sender: TObject); begin randomize; end; procedure TForm1.Button1Click(Sender: TObject); begin repeat C := Chr(Random(127 + 1)); until C in ['A'..'Z', 'a'..'z']; Edit1.Text := C; end; end. PS: Wie war das nochmal mit "A..Z" also das z.B. das ganze Alphabet in variable "buchs" gesetzt wird ? MFG |
Re: Zufälligen Buchstaben anzeigen
@Äfan:
Also ich fand die hier vorgestellten Funktionen/ Prozeduren mit Ord und Chr besser als die Variante, welche du jetzt verwendest. Von den 128 zufälligen Zahlen, die du mit Random erzeugst, sind schonmal die ersten 64 überhaupt keine Buchstaben. Und dann kommen noch zwischen Groß- und Kleinbuchstaben im ASCII-Code einige Sonderzeichen und nach den Kleinbuchstaben auch noch. Also sind weniger als die Hälfte der Zahlen zu gebrauchen. Da finde ich die anderen Varianten doch effektiver. MfG Binärbaum |
Re: Zufälligen Buchstaben anzeigen
Ja, also mit meiner bissherigen methode is es nix, ich mache es mit case oder var mit a-z :thumb:
PS: Hab gleich was neues gelernt, wusste das mit case nähmlich noch nicht :roll: :oops: :-D MFG und thx |
Re: Zufälligen Buchstaben anzeigen
Zitat:
Die funktioniert zwar sicherlich auch, aber erstens ist es viel Schreibarbeit und zweitens Zitat:
|
Re: Zufälligen Buchstaben anzeigen
ja, ich meinte damit die von Chegga :oops:
OK, dann mach ichs mit der variable, a-z und position. Off Topic PS: Wie kann ich in Edit1 automatisch das alphabet einfügen ? da war doch mal was mit 'a'..'z' :gruebel: MFG |
Re: Zufälligen Buchstaben anzeigen
Zitat:
Du hast ein Ereigniss welches aufgerufen wird wenn sich der Inhalt von Edit-1 ändert. Und was machst Du innerhalb dieser Methode? .... Genau! Du Änderst den Inhalt von Edit-1. Ergo -> Die Methode ruft sich selber immer wieder auf. Das Ergebniss ist ein Stacküberlauf. P.S.: Deine repeat-Until-Schleife könnte unter umstenden Jahre laufen ohne je beendet zu werden ;-) |
Re: Zufälligen Buchstaben anzeigen
Zitat:
Delphi-Quellcode:
Ungetestet. Müsste aber das Alphabet in kleinbuchstaben ergeben.
for i:= 1 to 26 do
begin //evt. noch edit1.clear; (falls du nur das alphabet willst! edit1.Text:=edit1.Text+chr(ord('a')-1+i); end; mfg |
Re: Zufälligen Buchstaben anzeigen
Moin,
ich habe mal Sharkys Code benutzt und nun folgendes versucht: Es soll 6 mal ein zufälliges Zeichen ins Edit geschrieben werden, klappt auch ohne Probleme. Doch nun möchte ich verhindern das ein Buchstabe (egal ob klein oder groß geschrieben) doppelt im Edit vorkommt. Hab mal folgendes (als Anfang) versucht:
Delphi-Quellcode:
Klappt auch soweit, aber nur wenn doppelte Buchstaben in gleicher Größe (klein oder groß) vorkommen, wie kann ich also verhindern das ein Buchstabe egal ob groß oder klein doppelt im Edit vorkommt ?
procedure TForm1.Button1Click(Sender: TObject);
var buchstabe, s: String; i : Integer; begin edit1.text := ''; for i := 0 to 6 do begin buchstabe := Chr((Random (26) + 65)); if (Boolean(Random(2))) then begin buchstabe :=LowerCase (buchstabe); end; s := edit1.text; if Pos(buchstabe, s) <> 0 then begin buchstabe := Chr((Random (26) + 65)); if (Boolean(Random(2))) then begin buchstabe :=LowerCase (buchstabe); end; end else Edit1.Text := Edit1.Text + buchstabe; end end; *grad auf dem Schlauch steh* Danke schonmal, |
Re: Zufälligen Buchstaben anzeigen
Zitat:
Mein Vorschlag: Füge alle Buchstaben in ein Array ein, ![]() [add] Statt dem Array könnte man natürlich auch gleich einen String benutzen. [/add] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr. |
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