// Hiermit kann man Strings durcheinander bringen,
// beispielsweise, um Namen von Spielkarten zu mischen.


// Getestet mit CE unter Win10

 
procedure MixStrings(TS: TStrings); 
var 
  I, X, Y: Cardinal; 
  S: String; 
begin 
  Screen.Cursor := crHourGlass; 
  TS.BeginUpdate; 
  Randomize; 
  for I := 0 to Pred(TS.Count) do 
  begin 
    X := Random(TS.Count); 
    repeat 
      Y := Random(TS.Count); 
    until Y <> X; 
    S := TS.Strings[Y]; 
    TS.Strings[Y] := TS.Strings[X]; 
    TS.Strings[X] := S; 
  end; 
  TS.EndUpdate; 
  Screen.Cursor := crDefault; 
end; 


// Strings durcheinander bringen

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  MixStrings(Memo1.Lines); 
end; 


// Memo alphabetisch sortieren

procedure TForm1.Button2Click(Sender: TObject); 
var 
  SL: TStringList; 
begin 
  SL := TStringList.Create; 
  SL.BeginUpdate; 
  SL.Sorted := True; 
  Memo1.Lines.BeginUpdate; 
  SL.Assign(Memo1.Lines); 
  Memo1.Lines.Assign(SL); 
  Memo1.Lines.EndUpdate; 
  FreeAndNil(SL); 
end; 

 

Zugriffe seit 6.9.2001 auf Delphi-Ecke