![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Упорядочение создания компонент [D6, WinXP]
saNat © (2005-10-19 12:44:00)Доброго времени суток (о:
Для своих целей создаю динамически TPanel с размещенными на ней TLabel:
TRecordPanel=Class(TPanel)
Constructor Create(AOwner:TComponent); Override;
Destructor Destroy; Override;
Private
BeginDate :TLabel;
BeginTime :TLabel;
EndDate :TLabel;
EndTime :TLabel;
Intro :TLabel;
Place :TLabel;
Auto :TLabel;
Driver :TLabel;
Boss :TLabel;
FActiveColor :TColor;
FBeginDate :String;
FBeginTime :String;
FEndDate :String;
FEndTime :String;
FIntro :String;
FPlace :String;
FAuto :String;
FDriver :String;
FBoss :String;
Procedure SetActiveColor(Param:TColor);
Function GetActiveColor:TColor;
Procedure SetBeginDate(Param:String);
Function GetBeginDate:String;
Procedure SetBeginTime(Param:String);
Function GetBeginTime:String;
Procedure SetEndDate(Param:String);
Function GetEndDate:String;
Procedure SetEndTime(Param:String);
Function GetEndTime:String;
Procedure SetIntro(Param:String);
Function GetIntro:String;
Procedure SetPlace(Param:String);
Function GetPlace:String;
Procedure SetAuto(Param:String);
Function GetAuto:String;
Procedure SetDriver(Param:String);
Function GetDriver:String;
Procedure SetBoss(Param:String);
Function GetBoss:String;
Public
Procedure ReFreshData;
Procedure ReSizeData;
Published
Property PActiveColor:TColor
Read GetActiveColor
Write SetActiveColor;
Property PBeginDate :String
Read GetBeginDate
Write SetBeginDate;
Property PBeginTime :String
Read GetBeginTime
Write SetBeginTime;
Property PEndDate :String
Read GetEndDate
Write SetEndDate;
Property PEndTime :String
Read GetEndTime
Write SetEndTime;
Property PIntro :String
Read GetIntro
Write SetIntro;
Property PPlace :String
Read GetPlace
Write SetPlace;
Property PAuto :String
Read GetAuto
Write SetAuto;
Property PDriver :String
Read GetDriver
Write SetDriver;
Property PBoss :String
Read GetBoss
Write SetBoss;
End;
На форме расположен TScrollBox. В нем я создаю мои панели. Получается список. Сделано так:
TPRecordPanelList=^TRecordPanelList;
TRecordPanelList=Record
Panel:TRecordPanel;
Last:TPRecordPanelList;
Next:TPRecordPanelList;
End;
По нажатию кнопки создаю экземпляр:
Item,ThisItem:TPRecordPanelList;
***
New(ThisItem);
ThisItem.Panel:=TRecordPanel.Create(Panel3);
ThisItem.Panel.Parent:=Panel3;
ThisItem.Panel.PBeginTime:=TimeToStr(Time);
ThisItem.Panel.ReFreshData;
If Item=Nil
Then
Begin
ThisItem.Last:=Nil;
ThisItem.Panel.PActiveColor:=clSkyBlue;
End
Else
Begin
ThisItem.Last:=Item;
ThisItem.Panel.PActiveColor:=clSkyBlue;
Item.Panel.PActiveColor:=clSilver;
End;
Item:=ThisItem;
Item.Next:=Nil;
ThisItem:=Nil;
end;
Дело в том, что панели выводятся не друг за другом. Как исправить?
С уважением, ЕВА
saNat (2005-10-19 14:09:00) [1]Сделал. Ручками прокручиваю ScrollBar в позицию 0. Видимо единственное решение.
Всем спасибо за внимание.
С уважением, ЕВА
evvcom (2005-10-19 13:56:00) [2]
> Выложить весь текст модуля?
Боже упаси!
saNat (2005-10-19 13:55:00) [3]Не понял... Честно.
С уважением, ЕВА
Seg (2005-10-19 13:52:00) [4]Та панель, которая в центре, должна создаваться последней.
saNat (2005-10-19 13:34:00) [5]Гм... Посмотрел в режиме разработки... Кроме различий в свойстве Top не нашел. Неужели кроме как проверять это свойство нет способов? Не очень красиво...
С уважением, ЕВА
saNat (2005-10-19 13:04:00) [6]Выложить весь текст модуля?
saNat (2005-10-19 12:57:00) [7]Я считал что они будут создаваться друг за другом сверху вниз. Ан нет.
С уважением, ЕВА
saNat (2005-10-19 12:56:00) [8]
> clickmaker © (19.10.05 12:51) [1]
Вообще да :о)
Она (панель) создается как "alTop"
Constructor TRecordPanel.Create(AOwner:TComponent);
Begin
Inherited;
***
Align:=alTop;
BevelInner:=bvLowered;
BevelOuter:=bvRaised;
Color:=FActiveColor;
***
End;
clickmaker (2005-10-19 12:51:00) [9]
> Дело в том, что панели выводятся не друг за другом. Как
> исправить?
про Left, Top в курсе?