Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Eingabe mischen (https://www.delphipraxis.net/122439-eingabe-mischen.html)

STS301 16. Okt 2008 11:00

Re: Eingabe mischen
 
Danke! es funktioniert!!!!

STS301 16. Okt 2008 13:03

Re: Eingabe mischen
 
hi nochmal, wenn die Eingabe leer ist, soll irgendein Text(Buchstaben(groß und klein), Zahlen, Sonderzeichen) erstellt werden. Wie mache ich das?

Medium 16. Okt 2008 14:35

Re: Eingabe mischen
 
Delphi-Referenz durchsuchenRandom() + Delphi-Referenz durchsuchenChr() + Bei Google suchenASCII Tabelle

STS301 16. Okt 2008 20:13

Re: Eingabe mischen
 
danke, werde ich mir morgen ansehen, ich habe ein Problem, wenn ich in das Eingabefeld ein Sonderzeichen (zb. $) eingebe, dann löscht er den eintrag und macht nichts.

AlexII 17. Feb 2014 12:29

AW: Re: Eingabe mischen
 
Zitat:

Zitat von Klaus01 (Beitrag 836437)
Hallo,

ich musste die shuffle Routine noch etwas anpassen:


Delphi-Quellcode:
procedure Shuffle(var s: String);
var
  i, j: integer;
  temp : Char;
begin
  for i := length(s) downto 1 do
  begin
    j := Random(i)+1;
    temp := s[i];
    s[i] := s[j];
    s[j] := temp;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  shuffle(s);
  Edit1.Text:=s;
end;
Grüße
Klaus

Ich verstehe nicht, wieso das funktioniert wenn die Shuffle-Procedure kein Rückgabewert hat?

Sir Rufo 17. Feb 2014 12:33

AW: Eingabe mischen
 
Wegen dem
Delphi-Quellcode:
var
Delphi-Quellcode:
procedure Shuffle(var s: String);
begin
  ...
end;

AlexII 17. Feb 2014 12:36

AW: Eingabe mischen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1248181)
Wegen dem
Delphi-Quellcode:
var
Delphi-Quellcode:
procedure Shuffle(var s: String);
begin
  ...
end;

Ok, und sonst könnte es auch so gehen, oder?

Delphi-Quellcode:
function Shuffle(s: String): String;
var
  i, j: integer;
  temp : Char;
begin
  for i := length(s) downto 1 do
  begin
    j := Random(i)+1;
    temp := s[i];
    s[i] := s[j];
    s[j] := temp;
  end;

  Result := s;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  shuffle(s);
  Edit1.Text:=s;
end;

Headbucket 17. Feb 2014 13:00

AW: Eingabe mischen
 
Zitat:

Zitat von AlexII (Beitrag 1248182)
Ok, und sonst könnte es auch so gehen, oder?

Nicht ganz.
Delphi-Quellcode:
//Falsch:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  shuffle(s); // der Rückgabewert wird hier nirgends übergeben
  Edit1.Text:=s;
end;

//Richtig:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s:= Edit1.Text;
  s:= shuffle(s);
  Edit1.Text:= s;
end;

//Optimiert:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text:= shuffle(Edit1.Text);
end;
Grüße

AlexII 17. Feb 2014 13:08

AW: Eingabe mischen
 
Thx :thumb:

Sir Rufo 17. Feb 2014 16:32

AW: Eingabe mischen
 
Wenn kein
Delphi-Quellcode:
var
dann sollten die Parameter nicht beschrieben werden. Und bei einem
Delphi-Quellcode:
string
-Parameter dann ein
Delphi-Quellcode:
const
verwenden (Performance).
Delphi-Quellcode:
function Shuffle(const AStr : String ): String;
var
  i, j: integer;
  temp : Char;
begin
  Result := AStr;
  for i := length(Result) downto 1 do
  begin
    j := Random(i)+1;
    temp := Result[i];
    Result[i] := Result[j];
    Result[j] := temp;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr.
Seite 3 von 4     123 4      

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 by Thomas Breitkreuz