ah danke, aber habe das problem schon ander gelöst und funktioniert perfekt...
wenn jemand eine funktion haben will um eine TQueue Aufzumischen und ein Zufälliges element auszspucken haben will:
Delphi-Quellcode:
function RandomListItem(Q:TQueue):Pointer;
var i:integer;
BackupQ:TQueue;
begin
LogForm.APPEND('########Tmaze.PrimGenerator.RandomListItem########');
BackupQ:=TQueue.Create;
randomize;
for i:=0 to random(Q.Count) do
BackupQ.Push(Q.Pop);
LogForm.APPEND('.RandomListItem ## 1st loop');
for i:=0 to BackupQ.Count-1 do
Q.Push(BackupQ.pop);
Backupq.Free;
RandomListItem:=Q.Pop;
end;
hehe ohne Backupq.Free;geht memory nutzung ganz ganz schnell hoch!