Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
8-1184936230
DmitriyZ
2007-07-20 16:57
2008.08.31
Как в Delphi сгенерировать звук произвольной частоты и вывести ег


15-1215755158
shlst
2008-07-11 09:45
2008.08.31
А чего это дедушки волнуются -


15-1215874647
@!!ex
2008-07-12 18:57
2008.08.31
редактирование свойств как в Object Inspector e


15-1215717772
Пробегал2....
2008-07-10 23:22
2008.08.31
Куда двигаться после delphi?


15-1215742935
Slider007
2008-07-11 06:22
2008.08.31
С днем рождения ! 11 июля 2008 пятница





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский