Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как восстановить диапазон таблицы Paradox? [D6, Paradox]


Ильдар ©   (2002-11-09 17:15:00) 

Мастера, кто ответит? Как узнать параметры диапазона установленные методом Table1.SetRange(StartValues, EndValues)? Где хранится информация о границах установленного диапазона, этих самых StartValues и EndValues?


Ильдар   (2002-11-11 10:52:00) [1]

Спасибо, мастерУченик! Ты велик и твой уровень не доспупен для меня, но твой пример работает и я каюсь, что не проверил его после первого письма.


Ученик   (2002-11-10 12:18:00) [2]

>Ильдар (10.11.02 11:26)
for i := 0 to KeyFieldCount - 1 do
ShowMessage(GetIndexField(i).AsString);
показывает элементы этих массивов, если
SetKeyBuffer(kiCurRangeStart, False);
то элементы StartValues,
SetKeyBuffer(kiCurRangeEnd, False);
то элементы EndValues,

как массивы значения не хранятся




Ильдар   (2002-11-10 11:26:00) [3]

Извините, уважаемый Ученик, но Ваш пример абсолютно не понятен. Возможно, я не точно сформулировал вопрос. Пример:
var
Table1: TTable;
begin
Table1.FileName:= "Customer.db"; // Таблица Paradox
Table1.Active:= True;
Table1.IndexFieldName:= "Field1"; // Индекс по полю Integer
Table1.SetRange([5], [7]); // Установить диапазон
end;

Теперь видны только записи со значениями в поле Field1 от 5 до 7.
Вопрос. Существует ли свойство или метод возвращающий текущие границы диапазона таблицы Table1? Видимо, это два массива. Если так, то для приведённого примера это массивы [5] и [7].


Ученик   (2002-11-10 00:18:00) [4]

Возможно так:

type
TTableWrapper = class(TTable);

procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer;
begin
with TTableWrapper(Table1) do begin
DisableControls;
try
SetKeyBuffer(kiCurRangeStart{kiCurRangeEnd}, False);
for i := 0 to KeyFieldCount - 1 do
ShowMessage(GetIndexField(i).AsString);
PostKeyBuffer(False)
finally
EnableControls
end
end
end;



Наверх

Титульная страница Поиск, карта сайта Написать письмо