Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизТребуется помощь в поиске ошибки Найти похожие ветки
← →
saNat © (2005-12-29 01:11) [0]Доброго времени суток :о)
Для проекта написан класс. В ScrollBox динамически создаются TPanel, связанные двусторонним списком.
//Объявление списка
TPListPanel=^TListPanel;
TListPanel=Record
SinglePanel :TPanel;
LastPanel :TPListPanel;
NextPanel :TPListPanel;
End;
//Объявление класса
TInfoPanel=Class(TObject)
//Конструктор
Constructor Create(Parent:TWinControl);
//Добавить элемент
Procedure Add;
//Перейти вверх списка
Procedure UpList;
//Перейти к верхнему элементу
Procedure LastItem;
//Перйти к нижнему элементу
Procedure NextItem;
//Перейти вниз списка
Procedure DownList;
//Удалить текущий элемент
Procedure Delete;
//Удалить все элементы
Procedure DeleteAll;
//Деструктор
Destructor Destroy; Override;
Private
ScrollBox :TScrollBox;
//Текущий элемент и вспомогательная переменная
HeadList,ThisItem :TPListPanel;
//Количество элементов
CountPanel :Integer;
//Номер активного элемента
ThisPanelNumber :Integer;
//Цвет элемента
FItemColor :TColor;
//Цвет активного элемента
FActiveItemColor :TColor;
Function GetThisPanel:TPanel;
Procedure SetItemColor(Param:TColor);
Procedure SetActiveItemColor(Param:TColor);
//Изменение цвета элементов
Procedure RePaint(Param:Boolean);
Public
Published
//Указатель на элемент
Property ThisPanel:TPanel
Read GetThisPanel;
//Цвет текущего элемента
Property ItemColor:TColor
Write SetItemColor;
//Цвет активного элемента
Property ActiveItemColor:TColor
Write SetActiveItemColor;
End;
Возникла следующая проблема. Выполняем последовательность:
1. Создаем такое количество элементов (TPanel), чтобы они "не помещались" по высоте (появляется ертикальный ScrollBar)
2. Переходим к последнему (нижнему элементу списка)
3. Добавляем новый элемент.
При этом он создаеттся не вверху списка. Помогите найти причину.
Алгоритм добавления нового элемента:
1. Создать новый элемент
2. Если он первый, установить активный цвет
3. Если имеются созданные элементы (HeadList<>Nil), перейти вверх списка (UpList), Установить связь со следующим нижним элементом. Вновь созданному присвоить активный цвет.
4. Увеличить счетчик количества элементов
5. Пересчитать свойство Increment и Range для нового количества элементов.
По наблюдениям, новый созданный элемент "не попадает" наверх. Ссылки между элементами сохранены.
Исходные файлы находятся в архиве (62 КБайт) и размещены по адресу "http://webfile.ru/720111".
Класс находится в модуле "InfoPanelUnit.pas". В архиве также находится проект в котором выполняется отладка.
С уважением, ЕВА
← →
saNat © (2005-12-29 18:15) [1]К начинающим перекинуто... Ну да ладно. Вопрос в силе.
← →
saNat © (2006-01-05 00:31) [2]Вот новогодние каникулы и завершились. Мастера, ни кто не может мне подсказать?
С уважением, ЕВА
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c