![]() |
Zufälligen Buchstaben anzeigen
Hi,
Wie kann ich es machen, dass wenn ich auf den Button klicke, in Edit ein zufälliger buchstabe eigefügt wird ? MFG :-D |
Re: Zufälligen Buchstaben anzeigen
|
Re: Zufälligen Buchstaben anzeigen
Delphi-Quellcode:
Im FormCreate noch randomize aufrufen.
procedure Button1Click(Sender: TObject);
begin Edit1.Text:=Chr(Random(Ord('Z')-Ord('a'))+Ord('a')); end; Wohlgemerkt ohne Sonderzeichen EDIT: Ich hab mir vielleicht 5 Sekunden den Beitrag durchgelesen und du hast gleichzeitig die Antwort geschrieben :stupid: . |
Re: Zufälligen Buchstaben anzeigen
Zitat:
bist Du dir da sicher mit deinen "ORDs"? Da kommen doch sicher etwas falsche Buchstaben raus ;-) Edit: So wäre es glaube ich besser :stupid:
Delphi-Quellcode:
Edit1.Text := Edit1.Text + Chr (Random (56) + 64 + 1);
|
Re: Zufälligen Buchstaben anzeigen
Also bei beiden beispielen, stürzt mein prog ab und es kommt ein CPU fenster :(
|
Re: Zufälligen Buchstaben anzeigen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Äfan,
hier mal eine Demo dazu ... bye Claus |
Re: Zufälligen Buchstaben anzeigen
@Duffy: thx
Aber wenn ich ein eigenes Programm mache und diesen code einbaue, kommt ein fehler: ![]() MFG |
Re: Zufälligen Buchstaben anzeigen
Hast Du noch andere Komponenten auf der Form?
Hier mal ein anderer Code um Buchstaben (A..Z,a..z) zu erzeugen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var buchstabe : String; begin buchstabe := Chr((Random (26) + 65)); if (Boolean(Random(2))) then begin buchstabe :=LowerCase (buchstabe); end; Edit1.Text := Edit1.Text + buchstabe; end; |
Re: Zufälligen Buchstaben anzeigen
So ist es vielleicht besser:
Delphi-Quellcode:
Das +1 in Random muss sein,da sonst nur Buchstaben bis y erzeugt werden.
function Buchstabe(asUpperCase: Boolean): Char;
begin if asUpperCase then Result:=Chr( Random(Ord('Z')-Ord('A')+1) +Ord('A') ) else Result:=Chr( Random(Ord('Z')-Ord('A')+1) +Ord('a') ); end; ... procedure Button1Click(Sender: TObject); begin Randomize; Edit1.Text:=Buchstabe(True); end; MfG Binärbaum |
Re: Zufälligen Buchstaben anzeigen
Mit Binärbaum's code gehts. :gruebel:
|
Re: Zufälligen Buchstaben anzeigen
Zitat:
|
Re: Zufälligen Buchstaben anzeigen
Zitat:
bei deinem Code werden aber nur Gross oder Kleinbustaben erzeugt. Darum habe ich ja extra noch einen Zufallswert eingefügt um das zu umgehen ;-) Aber Äfan scheint zur Zeit ja andere Probleme mit den verschiedenen Beispeilen zu haben ;-) |
Re: Zufälligen Buchstaben anzeigen
Zitat:
[Edit] Allerdings kann man deine Methode nicht verwenden, wenn man nur Groß- oder nur Kleinschreibung haben möchte. Aber das kommt jetzt darauf an, was Äfan genau erreichen will. [/Edit] MfG Binärbaum |
Re: Zufälligen Buchstaben anzeigen
ich bekomm aber immer noch:
![]() |
Re: Zufälligen Buchstaben anzeigen
Das kann eigentlich nicht an diesen Zeilen liegen :gruebel: . Zeig mal den Quellcode bzw. gleich das ganze Projekt (oder vielleicht auch Bereichsprüfung usw. ggf. anschalten).
@Sharky: Oh, da sind ja wirklich noch welche dazwischen, falschherum wars auch noch :stupid: . |
Re: Zufälligen Buchstaben anzeigen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const s: String = 'abcdefghijklmnopqrstuvwxyz'; begin Randomize; Edit1.Text := s[Random(Length(s) + 1)] end; |
Re: Zufälligen Buchstaben anzeigen
Hi,
@ Äfan: Es gibt noch eine Möglichkeit zufällige Buchstaben zu erzeugen. (Diese ist zugegebener Maßen etwas sinnbefreit. :wink: ) Vereinbare eine Integer-Variable z.B.: Zahl: Integer;
Delphi-Quellcode:
Kostet viel Zeit und Mühe, aber vielleicht klappt's ja so. :zwinker:
bla bla bla...
Zahl := random(52) + 1; // jetzt kommt das Sinnbefreite case Zahl of 1: Edit1.Text := 'A'; 2: Edit1.Text := 'a'; 3: Edit1.Text := 'B'; // usw... ;-) end; MfG Marc |
Re: Zufälligen Buchstaben anzeigen
Meines klappt doch auch wozu dann dieses 'Sinnbefreite' :shock:
|
Re: Zufälligen Buchstaben anzeigen
Zitat:
@Äfan: Alle Beispiele die hier gezeigt wurden funktionieren zu 100%. Aber irgendwie bist Du nich bereit uns deinen Code zu zeigen :wall: Darum muss ich für mich sagen: Hier hört meine Hilfe auf! |
Re: Zufälligen Buchstaben anzeigen
Hallo Äfan
ich kann es Sharky nachempfinden. Einen Tip hätte ich da noch, nimm als Ablage für dein Programm mal einen normalen Ordner und nicht den Desktop! bye Claus |
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] |
Re: Zufälligen Buchstaben anzeigen
Danke, scheint auch ne gute Möglichkeit zu sein.
Ich guck mir das mal an, thx. :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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