Hallo,
Ich habe ein Problem mit einer Liste. Sie funktioniert zwar, aber er überschreibt gleiche Namen. Gibt es eine möglichkeit dies zu ändern? Also das er die Namen nicht überschreibt sondern einfach neu anlegt:
Delphi-Quellcode:
function CompareValues(List: TStringList; Index1, Index2: Integer): Integer;
var
value1, value2: integer;
begin
value1 := StrToInt(List.ValueFromIndex[Index1]);
value2 := StrToInt(List.ValueFromIndex[Index2]);
if value1 > value2 then Result := 1
else if value1 < value2 then Result := -1
else Result := 0;
end;
procedure TDemoForm.ClearActionExecute(Sender: TObject);
begin
VLE.Strings.Clear;
end;
procedure TDemoForm.RemoveActionExecute(Sender: TObject);
begin
with VLE do
DeleteRow(Row);
end;
procedure TDemoForm.AddActionExecute(Sender: TObject);
begin
with VLE do
begin
Strings.BeginUpdate;
Values[NameEdit.Text] := ScoreEdit.Text;
TValueListStrings(Strings).CustomSort(CompareValues);
Strings.EndUpdate;
end;
end;
procedure TDemoForm.FormCreate(Sender: TObject);
begin
fileName := ChangeFileExt(ParamStr(0), '.hs');
if FileExists('test.txt')
then VLE.Strings.LoadFromFile('test.txt')
else VLE.Strings.Clear;
end;
procedure TDemoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
VLE.Strings.SaveToFile('test.txt');
end;
procedure TDemoForm.RemoveActionUpdate(Sender: TObject);
begin
with Sender as TAction do
Enabled := VLE.Strings.Count > 0;
end;
procedure TDemoForm.ClearActionUpdate(Sender: TObject);
begin
with Sender as TAction do
Enabled := VLE.Strings.Count > 0;
end;
procedure TDemoForm.AddActionUpdate(Sender: TObject);
var
i: integer;
begin
with Sender as TAction do
Enabled := (NameEdit.Text <> '') and TryStrToInt(ScoreEdit.Text, i);
end;
end.
Oder muss da einfach ne komplett andre Liste her?
mfg