Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.031 c
6-1124997496
Дмитрий_
2005-08-25 23:18
2005.12.04
Подскажите, как это проще реализовать


14-1131633246
seg
2005-11-10 17:34
2005.12.04
Первопроходцы интернета Винт Серф и Боб Кан получили высочайшую н


5-1114511915
Бывший студент
2005-04-26 14:38
2005.12.04
Свойство предка


1-1131301446
Volf_555
2005-11-06 21:24
2005.12.04
Регистрация дополнительного события на тип файла


1-1131337689
Lkan
2005-11-07 07:28
2005.12.04
дбф в еxe-шник




   Наверх