ich versuche gerade ein Projekt in Lazarus zu verwirklichen, ich arbeite Ursprünglich mit Basic, weshalb mich einige Meldungen doch sehr verwirren bei Lazarus.
Aktuelle erhalte ich die Meldung External: SIGSEGV und ich kann mir keinen Reim darauf machen, wieso diese Meldung genau kommt, denn bis auf das mir am ende ASM Code angezeigt wird, sagt mir der Debugger nicht wirklich was aus.
Ich will eigentlich versuchen Buchstabe für Buchstabe durch zu gehen, um das Array neu zu sortieren, das Funktioniert nicht wirklich, daher wollte ich schauen wo es hängt und mir anschauen wo I jeweils genau was macht, aber schon die Zeile Showmessage(inttostr(i)); löst den Fehler aus, nehm ich ihn weg, läuft das Programm, sortiert nur nix, kopiert aber die daten vom einem Array ins andere.
Kann mir ggf. jemand auf die Sprünge Helfen wieso genau das Ausgelöst wird?
Code: Alles auswählen
procedure loadKD();
var
k_IdS: Array Of String;
k_NNameS: Array Of String;
k_VNameS: Array Of String;
k_StrasseS: Array Of String;
k,i,t: integer;
caS: Integer;
begin
loadKDB(); // Lade KD(Unit 2)
SetLength(k_IdS,k_Count+1);
SetLength(k_NNameS,k_Count+1);
SetLength(k_VNameS,k_Count+1);
SetLength(k_StrasseS,k_Count+1);
// Sortieren nach alphabet
caS:= 65;
For i := caS To (caS + 25) do
begin // Alphabet durchgehen.
For t := 0 to k_Count do
begin
IF AnsiUpperCase(AnsiLeftStr(k_NName[t],1)) = char(i) then
begin
showmessage(inttostr(i));
k_IdS[t] := k_Id[t];
k_NNameS[t] := k_NName[t];
k_VNameS[t] := k_VName[t];
k_StrasseS[t] := k_Strasse[t];
end;
end;
end;
Form2.elb.RowCount := k_Count + 1; // Anzahl der Zeilen setzen + 1
Form2.elb.cells[0,0] := 'ID';
Form2.elb.ColWidths[0] := 50;
Form2.elb.cells[1,0] := 'Vorname';
Form2.elb.ColWidths[1] := 140;
Form2.elb.cells[2,0] := 'Nachname';
Form2.elb.ColWidths[2] := 140;
Form2.elb.cells[3,0] := 'Straße';
Form2.elb.ColWidths[3] := 145;
for k := 1 to k_Count do
begin
Form2.elb.cells[0,k] := k_IdS[k];
Form2.elb.cells[1,k] := k_VNameS[k];
Form2.elb.cells[2,k] := k_NNameS[k];
Form2.elb.cells[3,k] := k_StrasseS[k];
end;
end;