Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Создание объектов.   Найти похожие ветки 

 
x.pro   (2005-11-06 12:03) [0]

Здравствуйте!

Ерунда какая-то у меня утворилась. Ничего понять не могу. В общем. Есть два юнита Unit1 и Unit2. Первый это у меня набор функций и процедур. а второй - форма, использующая эти процедуры и ф-ции.

так вот, в первом есть процедура создания ToolBar"а. создается он в ScrollBox"е


procedure CreateBar(cName: string; ParentSB: TScrollBox; ShowCapt, ShowPic: Boolean; ImgList: TImageList);

var Bar: TToolbar;
begin
       Bar := TToolbar.Create(ParentSB);
       Bar.Parent := ParentSB;
       Bar.Name := cName;
       Bar.List := true;
       Bar.AutoSize := true;
       Bar.EdgeBorders := [ebBottom];
       Bar.Flat := true;
       Bar.ShowCaptions := ShowCapt;
       if ShowPic then bar.Images := ImgList else bar.Images := nil;
end;


а в Unit2, где форма, я её вызываю:


procedure TForm1.Btn1Click(sender: tobject);
begin
CreateBar(BarNameEdit.Text,
             TScrollBox(FindComponent(...)),
             ShowCaptCB.Checked, // checkBox
             ShowPicCB.Checked, // checkBox
             ImageList);
end;


допустим BarNameEdit.Text := "TestToolBar". при нажатии на кнопку, начинает материться, мол, "control "TestToolBar" has no parent window" хотя ScrollBox уже есть. Только мне его отыскивать надо.

Промогите, пожайлуста, в чем причина!?
Спасибо, заранее.


 
jack128 ©   (2005-11-06 12:13) [1]

x.pro   (06.11.05 12:03)
Только мне его отыскивать надо

то есть в данном коде scrollbar не находится?? И в процедуре CreateBar параметр ParentSB равен nil???значит в FindComponent ты передаешь не правельное имя скрола.

PS параметр ShowPic в твоей процедуре нафиг не нужен..


 
Sergey Masloff   (2005-11-06 12:17) [2]

>FindComponent(...)),
Ищешь то ты ищешь а находишь ?


 
x.pro   (2005-11-06 12:21) [3]

Нет нет. история такая. на форме ScrollBar ов несколько и я куда хочу, туда и создаю этот ToolBar. у меня имена ScrollBar"ов в списке храняться.

FindComponent(listBox1.Items[ListBox1.ItemIndex].Text). вот так я его ищу.

А в качестве параметра передаю найденный.
эта процедура вызывается на форме (Unit2) из Unit1
Unit1.CreateBar(BarNameEdit.Text,
            TScrollBox(FindComponent(listBox1.Items[ListBox1.ItemIndex].Text)),
            ...
            );


 
x.pro   (2005-11-06 12:22) [4]


> Sergey Masloff   (06.11.05 12:17) [2]


нахожу однозначно.


 
x.pro   (2005-11-06 12:27) [5]

Народ, огромное вам спасибо!

решение найдено. Глупая ошибка была.

Вот зы не замечали? пока с кем-то не начнешь обчеждать проблему, решенеи не найдешь. У меня такое часто.

Спасибо, ребята, выручили!


 
x.pro   (2005-11-06 12:28) [6]

Да, и прошу прощения за ошибки :)


 
x.pro   (2005-11-06 12:31) [7]

А хотя, спот. нифига! решение не найдено! Код не срабатывает! опять такая же феня! Тут ведь имя ScrollBox"а не играет роли.


 
x.pro   (2005-11-06 12:38) [8]


> jack128 ©   (06.11.05 12:13) [1]


нет уж. нужен. дело в том, что я хочу выбирать показывать мне картинки или нет.


 
jack128 ©   (2005-11-06 12:42) [9]

x.pro   (06.11.05 12:38) [8]
нет уж. нужен. дело в том, что я хочу выбирать показывать мне картинки или нет.

и что? если хочешь показывать картинки - предовай imagelist, а не хочешь - nil


 
Сайбель Алексей ©   (2005-11-06 13:49) [10]

ага, вот так:
procedure CreateBar(cName: string; ParentSB: TScrollBox; ShowCapt: Boolean; ImgList: TImageList = nil);
Вызывать можешь хоть с параметром ImgList, хоть без него.


 
x.pro   (2005-11-06 15:19) [11]

Спасибо всем!



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

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
5-1113852834
Бывший студент
2005-04-18 23:33
2005.12.04
TCollection+TStringGrid


14-1131788530
ronyn
2005-11-12 12:42
2005.12.04
Linux


3-1129711285
July
2005-10-19 12:41
2005.12.04
дробные числа в Interbase


2-1132165082
kami
2005-11-16 21:18
2005.12.04
Как SCM определяет,что тип запуска сервиса - disabled


2-1131904644
on-lite
2005-11-13 20:57
2005.12.04
Фильтр отображения TDBGrid