Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2007-04-22 16:51:45 ЛС | профиль | цитата
nesco, угу, но только если Sort включить - йухня получается... Но это лечится достаточно просто:

-> WinList.pas


function Add(const Text:string):integer; virtual;
//...
function THIWinList.Add(const Text: string):Integer;
begin
Result := Control.Add(Text);
end;

-> THiListBox.pas

// _work_doAdd
idx:integer;
// ...
if _prop_AddType = 0 then begin
idx := Add(s);
if _prop_SelectAdd then Control.CurIndex := idx;
dtInteger(di, idx);
end
else begin
idx := Control.Insert(0,s);
if idx = -1 then Control.Text := s + #13#10 + Control.Text;
if _prop_SelectAdd then Control.CurIndex := idx;
dtInteger(di, idx);
end;

[size=-2]------ Добавлено в 16:51
Суть: если включен Sort, то нет никакой гарантии, что после добавления строки она встанет на
указанное нами место (0 или Control.Count - 1). Это учёл г-н Кладов - у него Control.Add возвращает индекс добавленной строки (который, в свою очередь, возвращает Perform).

В кодах от Dilma этот индекс вообще игнорировался
карма: 1

0