![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание объектов. [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 в твоей процедуре нафиг не нужен..