|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.05.2007, 09:09 | #1 |
Регистрация: 31.05.2007
Сообщений: 4
|
Блокирование при работе с TList.
Привет всем!
Проблема такая. Использую следующую конструкцию для создания больших списков: PList_DR = ^AList_DR; AList_DR = record DATE : string[10]; count : longint; ... end; соответственно MyList_DR : TList; ARecord_DR : PList_DR; В результате при любых действиях с таким списком (добавлении, поиску по списку и т.п.) полностью блокируется оконный интерфейс, функции таймера и т.д. Help,please! |
31.05.2007, 09:19 | #2 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
Для начала спиок нужно создать
MyList:=TList.Create; А затем можно и добавлять элементы New(ARecord_DR); ARecord_DR.count:=1; MyList.Add(ARecord_DR); |
31.05.2007, 09:56 | #3 |
Регистрация: 31.05.2007
Сообщений: 4
|
Ну Вы даете!
Естественно, все это сделано! Я ведь пишу: "В результате при любых действиях с таким списком (добавлении, поиску по списку и т.п.) полностью блокируется оконный интерфейс, функции таймера и т.д." Т.е. работа со списком ведется как надо - все работает, список меняется и т.п. Проблема в одном: БЛОКИРУЮТСЯ ДРУГИЕ ФУНКЦИИ ПРИЛОЖЕНИЯ (окна). Знаете ответ? |
31.05.2007, 11:17 | #4 |
Пользователь
Регистрация: 20.12.2006
Сообщений: 43
|
Попробуй добавить Application.ProcessMessages
Если бы я был на столько умён, чтобы ответить на все вопросы самостоятельно, я бы не спрашивал...
|
31.05.2007, 11:26 | #5 |
Регистрация: 31.05.2007
Сообщений: 4
|
Не помогло...
|
31.05.2007, 11:49 | #6 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
Можно на весь код посмотреть?
Не надо ничего усложнять. Все достаточно тривиально.
|
31.05.2007, 12:00 | #7 |
Пользователь
Регистрация: 20.12.2006
Сообщений: 43
|
Может не туда поставил?
Если бы я был на столько умён, чтобы ответить на все вопросы самостоятельно, я бы не спрашивал...
|
31.05.2007, 15:28 | #8 |
Регистрация: 31.05.2007
Сообщений: 4
|
А куда ставить?
... Вот типичный пример листинга: MyList_F10.First; for nf1:=0 to (MyList_F10.Count-1) do begin ARecord_F10 := MyList_F10.Items[nf1]; x := ARecord_F10^.DAT; if CompareStr(ARecord_F10^.YY,'zsfvdfg dfg')<>0 then ... ... end; Причем от количества записей (MyList_F10.Count) - 1000 или 100000 суть не зависит. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Блокирование клавиатуры и мыши | =LeonZone= | Win Api | 15 | 04.02.2013 02:53 |
Блокирование клавиатуры | Milly | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 18.10.2007 19:15 |
Tlist - Сортировка | MAcK | Компоненты Delphi | 1 | 03.09.2007 15:24 |
блокирование функции | Fireleo | Win Api | 5 | 29.07.2007 17:04 |
Блокирование других программ | ar4i | Общие вопросы Delphi | 5 | 12.12.2006 14:59 |