Текущий архив: 2005.11.06;
Скачать: CL | DM;
ВнизУпорядочение создания компонент Найти похожие ветки
← →
saNat © (2005-10-19 12:44) [0]Доброго времени суток (о:
Для своих целей создаю динамически 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;
Дело в том, что панели выводятся не друг за другом. Как исправить?
С уважением, ЕВА
← →
clickmaker © (2005-10-19 12:51) [1]
> Дело в том, что панели выводятся не друг за другом. Как
> исправить?
про Left, Top в курсе?
← →
saNat © (2005-10-19 12:56) [2]
> clickmaker © (19.10.05 12:51) [1]
Вообще да :о)
Она (панель) создается как "alTop"
Constructor TRecordPanel.Create(AOwner:TComponent);
Begin
Inherited;
***
Align:=alTop;
BevelInner:=bvLowered;
BevelOuter:=bvRaised;
Color:=FActiveColor;
***
End;
← →
saNat © (2005-10-19 12:57) [3]Я считал что они будут создаваться друг за другом сверху вниз. Ан нет.
С уважением, ЕВА
← →
saNat © (2005-10-19 13:04) [4]Выложить весь текст модуля?
← →
saNat © (2005-10-19 13:34) [5]Гм... Посмотрел в режиме разработки... Кроме различий в свойстве Top не нашел. Неужели кроме как проверять это свойство нет способов? Не очень красиво...
С уважением, ЕВА
← →
Seg (2005-10-19 13:52) [6]Та панель, которая в центре, должна создаваться последней.
← →
saNat © (2005-10-19 13:55) [7]Не понял... Честно.
С уважением, ЕВА
← →
evvcom © (2005-10-19 13:56) [8]
> Выложить весь текст модуля?
Боже упаси!
← →
saNat © (2005-10-19 14:09) [9]Сделал. Ручками прокручиваю ScrollBar в позицию 0. Видимо единственное решение.
Всем спасибо за внимание.
С уважением, ЕВА
Страницы: 1 вся ветка
Текущий архив: 2005.11.06;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.04 c