ListBox i liczby

0

Mam pytanie ( ba, jakże by inaczej :)
Kochani, w ListBox mamy możliwość dokonania sortowania przez sorted ale rzecz w tym, że po wybraniu tej opcji, liczby są umieszczane od najniższej do najwyższej Jak dokonać rewersu Czyli przerzucenia liczb z najniżej (w dół) do najwyższej jako strings[0] ?:(

0

Ja bym to rozwiązał tak jak pokazałem poniżej - pod warunkiem, że w treści elementów jest tylko liczba całkowita. Jednak też nie za bardzo rozumiem o co Tobie chodzi z tym Strings[0]? Bo najpierw piszesz, że chcesz posrtować elementy ListBoxa malejąco, a na końcu wspominasz o tym właśnie elemencie o indeksie 0. Także już sam nie wiem czy to co pokazałem poniżej to jest dokładnie to, co chcesz osiągnąć czy coś innego chcesz zrobić. Poza tym nawet przez Sorted ustawione na True dla elementów na przykład w liczbie 100 posortują się one alfabetycznie, czyli 1, 10, 100, 11, 12 i tak dalej.

function SortujMalejaco(List : TStringList; Index1, Index2 : integer) : integer;
var
  I1, I2 : integer;
begin
  I1 := StrToInt(List[Index1]);
  I2 := StrToInt(List[Index2]);
  if I1 < I2 then
    Result := 1
  else
    if I1 > I2 then
      Result := -1
    else
      Result := 0;
end;

procedure TForm1.Button1Click(Sender : TObject);
var
  I : integer;
  SL : TStringList;
begin
  ListBox1.Sorted := False;
  SL := TStringList.Create;
  for I := 1 to 100 do
  begin
    ListBox1.Items.Add(IntToStr(I))
  end;
  SL.Assign(ListBox1.Items);
  SL.CustomSort(SortujMalejaco);
  ListBox1.Items.Assign(SL);
  SL.Free;
end;
0

Na przyszłość odpowiadaj w postcie, bo komentarz - jak nazwa wskazuje - służy do skomentowania, a nie do udzielenia odpowiadzi. A co do sumowania wartości ze StringGrida, to przecież posiada on własność jak Cells[Kolumna, Wiersz] indeksowane od zera. Także z użyciem pętli oraz StrToFloat robisz sumę do wyzerowanej przed pętlą zmiennej typu liczbowego dla liczb zmienno przecinkowych na przykład typu Real (skoro masz też wartości ułamkowe), a później ewentualnie przy użyciu FormatFloat odpowiednio wyświetlasz w jakiej komórce chcesz. I nadal nie rozumiem, z czym masz aż taki "problem". Dlatego temat przenoszę do Newbie, bo on z tego co widzę bardzo banalnych podstaw.

1 użytkowników online, w tym zalogowanych: 0, gości: 1