Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Внизкомпонент внутри компонента... Найти похожие ветки
← →
self.name (2008-07-24 23:20) [0]здравствуйте.
Решил создать свой компонент - наследую TScrollBox.
Нужно в нём создавать TPanel"и с TRichEdit"ами. Для этого добавил процедуру AddP.
код:
unit oOtvets;
interface
uses...
var
Panel: TPanel;
...
private
procedure AddPanel;
...
procedure ToOtvets.AddPanel;
begin
with panel do begin
Parent:=Self;
hide;
Left := HSpace;
Top := VSpace+(FVariantCount-1)*PanelHeight - Self.VertScrollBar.ScrollPos;
Width := Self.Width-2*HSpace;
Height := PanelHeight;
TabStop := False;
name:="otv_pnl_"+inttostr(FVariantCount);
end;
end;
вылезает ошибка:project comp_testing.exe raised exception class EAccessViolation with message "Access violation at adress 004C9F2A in module "comp_testing.exe". Read of address 00000000".
в точке:Parent:=Self;
подскажите, что исправить..
← →
self.name (2008-07-24 23:21) [1]забыл...
AddP вызывает AddPanel и AddRichEdit
← →
Virgo_Style © (2008-07-24 23:28) [2]self.name (24.07.08 23:20)
подскажите, что исправить..
Панель надо создать
← →
self.name © (2008-07-24 23:31) [3]
> Virgo_Style ©
вот это я прокололся :)
спасибо
← →
self.name © (2008-07-24 23:36) [4]не..
сделал
Panel:=TPanel.Create(Self)
with panel do begin
Parent:=Self;
...
ошибка та же но на первой строчке. а в чём разница между Owner и Parent?
← →
self.name © (2008-07-24 23:44) [5]читал справку:)
Owner - отвечает за освобождением компонента,
Parent - содержит компонент..
правильно ли я понял?
← →
self.name © (2008-07-25 00:18) [6]не подумал, что Delphi будет обижаться на Panel.
назвал mPanel и всё заработало.
Virgo_Style, спасибо за ответ.
← →
Германн © (2008-07-25 00:38) [7]
> self.name © (25.07.08 00:18) [6]
>
> не подумал, что Delphi будет обижаться на Panel.
> назвал mPanel и всё заработало.
>
Подозрительно. Delphi действительно не должна обижаться на Panel.
← →
self.name © (2008-07-25 01:38) [8]но всё же она так делает..
или я что-то напутал, хотя, сомневаюсь.
← →
self.name © (2008-07-25 01:45) [9]я щас создаю уже кнопку на панели..но не могу удалить caption. делаю:
procedure ToOtvets.AddButton;
begin
mButton:=TButton.Create(FindComponent("otv_pnl_"+IntToStr(FVariantCount)));
with mButton do begin
Parent:=mpanel;
Left := HSpace;
top:=VSpace;
Width := ButtonWidth;
Height := parent.ClientHeight-2*VSpace;
TabStop := True;
TabOrder := FVariantCount-1;
name:="otv_btn_"+inttostr(FVariantCount);
end;
(FindComponent("otv_btn_"+IntToStr(FVariantCount)) as TsButton).caption:="";
end;
а caption так и остается равным name.
пользуясь случаем хотел бы спросить - как правильно писать, через FindComponent или mPanel? и когда я создаю еще одну mPanel, что происходит?
может где-то это описано?
← →
Германн © (2008-07-25 01:51) [10]
> self.name © (25.07.08 01:38) [8]
>
> но всё же она так делает..
> или я что-то напутал, хотя, сомневаюсь.
>
В твоём проекте есть ещё где-нибудь такое имя?
← →
self.name © (2008-07-25 01:55) [11]неа, не было. только в обьявлении.
Panel: TPanel;
← →
self.name © (2008-07-25 02:16) [12]с caption"ом разобрался, благодаря сообщ Семеныча.
надо было написатьControlStyle := ControlStyle - [csSetCaption]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c