Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ошибка при попытке сортировать содержимое ComboBox


Автор: srd 25.12.2003, 17:40
Программа прекрасно работает на одном компьютере, но при запуске ее на другой машине выдала "Access Violation по такому-то адресу в ntdll.dll". Это произошло при попытке отсортировать содержимое ComboBox'а. Что это за глюк?

Автор: Cashey 25.12.2003, 18:09
А на какой версии Дельфей откомпилировано? Если на второй машине XP стоит, то лучше на 7-ой версии перекомпилить - там адаптировка к XP есть, может поможет. А лучше фрагмент кода приведи, может компоненты какие глючные используешь?

Автор: Guest 25.12.2003, 18:37
Компилировалось все седьмой версией. Программа работает на WinXP SP1 ENG, но глюкнулась на WinXP RUS и Win2k Server RUS.

Компонент самый обычный - TComboBox. В следующем куске кода этот компонент имеет имя NmList.

Код

procedure TContractorsForm.FormCreate(Sender: TObject);
var
 bm : TBookmark;
 s  : String;
begin
 Codes := TStringList.Create;
 Codes.Capacity := Dm.Contractors.RecordCount;

 NmList.Items.Capacity := Dm.Contractors.RecordCount;

 Dm.Contractors.DisableControls;
 bm := Dm.Contractors.GetBookmark;

 try

   Dm.Contractors.First;
   while not Dm.Contractors.Eof do
   begin
     s := Trim(Dm.CsNm.Value);

     NmList.AddItem(s, nil);
     Codes.Values[s] := Trim(Dm.CsCd.Value);

     dm.Contractors.Next;
   end;
   dm.Contractors.GotoBookmark(bm);

 finally
   Dm.Contractors.FreeBookmark(bm);
   Dm.Contractors.EnableControls;
 end;

 // глюк именно на этой строчке
 NmList.Sorted := True;
end;


Автор: Cashey 26.12.2003, 11:55
Вероятно глюки RUS'ов, думаю в них какие-то прблемы с сортировкой текста. Либо русского либо английского, а может у тебя там смешанные данные? Попробуй заключить NmList.Sorted := True; в блок try except и запросить текст ошибки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)