Einzelnen Beitrag anzeigen

thechus

Registriert seit: 18. Dez 2011
30 Beiträge
 
#5

AW: Ich weiß nicht, was da falsch ist

  Alt 21. Aug 2012, 22:12
Hey,

das ist mir gerade aufgefallen, als ich von Herrn Raabe hingewiesen wurde.
Ich hab den Wert geändert:

Code:
procedure TForm1.SelectionSort;
var i,k,maxi,j:integer;
    wert: word;
begin
 maxi := high(Anzahl);
 for i := 0 to maxi - 1 do
  begin
   wert := werte[i];
   k := i;
   for j := i + 1 to maxi do if werte[j] < wert then
    begin
     wert := werte[j];
     k := j;
   end;
  werte[k] := werte[i];
  werte[i] := wert;
  end;
end;
Anzahl und die Prozedur kommen hier ins Spiel:

Code:
procedure TForm1.Button2Click(Sender: TObject);
var
anfang, ende: real;
begin
 ListBox2.clear;
 Anzahl := StrToInt(Edit1.Text);
 pause(100);
 PnlZeit.Caption := 'Die Zeit läuft...';
 Anfang := Time;
 if combobox2.ItemIndex = 0 then bubblesort;
 if combobox2.ItemIndex = 1 then selectionsort;
[...]
Momentane Fehlermeldung:
Es taucht beim Klick auf Button2 ein Fenster mit:
"Im Projekt Project1.exe ist ein Exeption der Klasse EAccessViolation aufgetreten[...]"
Debugger sagt:
[Warnung] Unit1.pas(110): Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert

Was ist denn da zu tun?

Danke für eure Hilfe!

Edit: Ich sollte noch hinzufügen, dass er die folgende Zeile Markiert:
Code:
   for j := i + 1 to maxi do if werte[j] < wert then

Gruß,
thechus

Geändert von thechus (21. Aug 2012 um 22:23 Uhr) Grund: Quelltext erweitert
  Mit Zitat antworten Zitat