Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание объектов. [D7, WinXP]


x.pro ©   (2005-11-06 12:03:00) 

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

Ерунда какая-то у меня утворилась. Ничего понять не могу. В общем. Есть два юнита 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 уже есть. Только мне его отыскивать надо.

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


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

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


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

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


jack128   (2005-11-06 12:42:00) [3]

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

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


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


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


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


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

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


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

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


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

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

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

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

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


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


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


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


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

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

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

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


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

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


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

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

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо