danke für eure hilfe. ich habs jetzt aber doch ganz anders gemacht^^
nach langem nachdenke kam mir diese idee.
ich verwende einen zähler, der zählt wie oft ein buchstabe vorkommt. dann gebe ich die buchstaben einfach (edit: in der richtigen reihenfolge) in ein edit aus.
mfg general
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
abc:string=('
abcdefghijklmnopqrstuvwxyz');
var
i,j: Integer;
feld:
array [1..26]
of byte;
//dient als Zähler
begin
for i := 1
to 26
do //in das array werden nullen geschrieben
feld[i]:=0;
for i := 1
to length(edit1.text)
do
for j := 1
to 26
do
if edit1.text[i] = abc[j]
then
inc(feld[j]);
//es wird edit1 mit dem abc string verglichen und bei übereinstimmungen das zähler-feld um 1 erhöht
edit2.text:='
';
//edit2 wird gelöscht
for i := 1
to 26
do
if feld[i] > 0
then
repeat
begin
edit2.text:=edit2.text+abc[i];
dec(feld[i]);
end;
until feld[i] = 0;
//wenn ein zähler > 0 ist,
//dann wird der richtige buchstabe dazu so oft in edit2 geschrieben bis der zähler 0 ist
end;