Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Вниз

Компонент Tpanel и его загадки ;)   Найти похожие ветки 

 
Муть   (2002-12-13 13:25) [0]

Все знают, что такое TPanel.
Я решил написать компонент на его основе. Наследован от Tpanel, он способен хранить список панелей внутри себя. Управлять количеством панелей можно через свойство row. Но возникла интересная проблема.
Ставляю я его на форму, делаю row = 3, например. Он показывает 3 панели. Я добавляю в дизайнере в эти панели пару радиобоксов, например. Запускаю - вижу три панели, но без радиобоксов. Я понимаю, что я что-то неправильно делаю (панели-то создаются динамически). Что именно я делаю неправильно?


 
zavdim   (2002-12-13 13:27) [1]

Parent и прочее как?


 
Муть   (2002-12-13 13:32) [2]

вот код
type
TPanelEx = class(TPanel)
private
panels:tlist;
frows:integer;
parent:tcomponent;
procedure setrows(x:integer);
procedure delpanel(x:integer);
function addpanel:tpanel;
protected
{ Protected declarations }
public
published
property rows:integer read frows write setrows;
constructor create(AOwner:TComponent); override;
end;
///////////////
function TPanelEx.addpanel: tpanel;
begin
result:=tpanel.Create(self);
self.InsertControl(result);
result.Align:=alTop;
end;

constructor TPanelEx.create(AOwner: TComponent);
begin
inherited create(AOwner);
panels:=tlist.create;
rows:=1;
end;

procedure TPanelEx.delpanel(x: integer);
var p:tpanel;
begin
p:=panels[x];
p.Destroy;
panels.delete(x);
end;

procedure TPanelEx.setrows(x: integer);
var z:integer;
begin
if frows<>x then
if x>0 then begin
if frows>x then begin
repeat
delpanel(panels.count-1);
until panels.count=x;
end else begin
repeat
panels.add(addpanel);
until panels.count=x;
end;
frows:=x;
end;
end;


 
Муть   (2002-12-13 15:03) [3]

.


 
Игорь Шевченко   (2002-12-13 15:35) [4]

Наверное, то, что ты вставляешь в панели, не сохраняется...Или сохраняется, но во время загрузки им не присваивается Parent, так как твои панели загружаются позже...IMHO, разумеется, я всего кода не вижу...


 
AZ   (2002-12-13 20:16) [5]

IMHO, просто все, что Вы вставляете в панели, остается на заднем плане. Попробуйте поманипулировать с планами.


 
Дремучий   (2002-12-13 20:43) [6]

Я добавляю в дизайнере в эти панели пару радиобоксов...
в каком дизайнере? своем или дизайнере форм Делфи?
если в своем, то попробуйте так...

function TPanelEx.addpanel: tpanel;
begin
result:=tpanel.Create(self);
self.InsertControl(result);
result.Align:=alTop;
result.Parent = self;
end;


если в Делфи, то ясен перец, что вы ничего не увидите....
потому что добавляете не модифицированную панельку(с радиобоксами), а обыкновенный tpanel



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
4-1940
Pars2
2002-11-15 13:14
2003.01.02
Запрет запуска приложения


3-1764
pilot
2002-12-11 15:41
2003.01.02
Сравнение баз


1-1789
Nickm
2002-12-19 12:21
2003.01.02
XmlDocument+TWebBrowser


3-1748
sers
2002-12-11 13:29
2003.01.02
Что-то вроде триггера для dbf


1-1785
nikolo
2002-12-20 11:39
2003.01.02
Как скрулить Panel?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский