Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.03.2013, 14:23
Pcrepair
 
Сообщения: n/a
По умолчанию Как получить из Списка(TStringList) значение объекта?

Добрый день. Есть код который из Строка и ЧИСЛО делает Объект и передает его в Список(TStringList)

Код:
(*  24.03.13 Ввод пары число=текст в СПИСОК*)
procedure TForm1.Button1Click(Sender: TObject);
(*----------------------------------------------------*)
(*  24.03.13. функция объединения двух переменных в одну*)
function MakePare(const DataStr:string; const DataInt:integer):TStringList;
begin
   Result:=TStringList.Create; (*инизиализация выхода функции*)
   MakePare.AddObject(DataStr,Pointer(DataInt)); (*сборка пары СТРОКА-ЧИСЛО*)
end;
(*------------------------------------------------------*)

var DataInt:integer; DataStr:string; Buff:TStringList;
begin
   DataStr:=Edit2.Text;
   if Edit1.Text <> '' then   (*защита от отсуствия значения*)
   DataInt:=StrToInt(Edit1.Text)
   else
   DataInt:=1; (*сли ничего не введено, то значение = 1*)

     Buff:=MakePare(DataStr,DataInt); (*передача пары в буферную ПЕРЕМ*)
     gStore.AddStrings(Buff); (*накопление строк-пар в буфере при каждом нажатии батона*)

   Memo1.Text:=gStore.Text; (*контроль*)
   FreeAndNil(Buff); (*ликвидация ПЕРЕМ в том числе MakePare*)
end;
Теперь нужно (после накопления некоторого количества строк в списке) провести сортировку по значению число и вывести пару СТРОКА-ЧИСЛО с максимальным значением ЧИСЛО из СПИСКА

Код:
(*24.03.13 Cортировки строк по значению ЧИСЛО*)
procedure TForm1.Button2Click(Sender: TObject);
(*------------------------------------------------------------------*)
(*сортировка от максимума до 1*)
function Compare(List: TStringList; Index1, Index2: Integer): Integer;
  begin
    if Integer(List.Objects[Index1])>Integer(List.Objects[Index2]) then Result:=-1
    (* сейчас сортировка - максимум наверху, если 1 а далее -1 тогда наверху минимум*)
    else if Integer(List.Objects[Index1])<Integer(List.Objects[Index2]) then Result:=1
    else Result:=0;
  end;
(*------------------------------------------------------------------*)

var T: TStringList;
begin
   T:=TStringList.Create;
   T.AddStrings(gStore);   (*ввод накопленных пар*)
   T.CustomSort(@Compare); (*@ - обязательно вызов функции через указатель адреса в ОЗУ*)
   Edit3.Text:=IntToStr(); (*вот тут непонятно как вывести ЧИСЛО*)
   Edit4.Text:=T[0];       (*первая строка списка, тут все просто*)
   FreeAndNil(T);
end;
Вопрос: как вывести в Edit3.Text:=IntToStr(); ЧИСЛО из СПИСКа???
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:02.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025