Текущий архив: 2004.09.26;
Скачать: CL | DM;
ВнизDesign Time Найти похожие ветки
← →
dima_shapkin (2004-09-09 16:17) [0]Подскажите как в Design Time получить список указателей на все компоненты в проекте или хотя бы на формы?
← →
Гаврила © (2004-09-09 16:54) [1]Так же, как и в Run Time
← →
dima_shapkin (2004-09-09 17:04) [2]Гаврила
И как позвольте узнать?
← →
Erik1 (2004-09-09 17:31) [3]В DesignTime может работать например твой компонент. У него есть конструктор в нем бывает стоит такая проверка:
if (csDesigning in ComponentState) then
Как ты думаеш, что это значить?
← →
dima_shapkin (2004-09-09 17:39) [4]Причем здесь мой или не мой компонент?
Как "пробежаться" по всем компонентам, которые присутствуют в проекте в design time????
← →
Erik1 (2004-09-09 17:54) [5]А может стоит задуматся над ответом? Проверочный вопрос задать, где ты собираешся пробегатся и в какой момент?
Варианты:
1) На дереве во время гнездования.
2) В программе во время выполнения
3) В форме во время помещения компонента на форму.
4) В Wizard (спец случай).
← →
dima_shapkin (2004-09-09 18:22) [6]1. При запуске метода из контекстного меню комопнента в design time
2. Либо при вызове визарда, эксперта, да хоть exe!!!!!!!!!!!!!! какая разница..........................
← →
dima_shapkin (2004-09-09 18:32) [7]Запущено приложение delphi32.exe, там загружен некий проект, абсолютно любым способом получить указатели на объекты(компоненты), которые присутствуют в проекте....
Блин, только не спрашивайте зачем это нужно....
← →
Anton_K © (2004-09-09 18:56) [8]Указатели на объекты можно получить только в Run Time!
← →
dima_shapkin (2004-09-09 19:08) [9]А когда кидаешь компонент на форму, это что красивая картинка????
← →
Mim1 © (2004-09-09 19:10) [10]
> [8] Anton_K © (09.09.04 18:56)
Ню ню, это вам дед мороз сказал?
← →
Anton_K © (2004-09-09 19:14) [11]Ню ню, это вам дед мороз сказал?
Такой умный? Тогда ответь на вопрос ("Подскажите как в Design Time получить список указателей на все компоненты в проекте или хотя бы на формы?").
← →
Mim1 © (2004-09-09 19:24) [12]На понт взять пытаешся? Ну чтож, ябычно отвечаю когда меня на понт берут, только в конце ЛМД дописываю, не обессудь.
Вот процедура иницияализации одного из редакторовprocedure TWndRelEdit.Init;
Procedure AddItems(const n: TTreeNode; const rl:TCkgRel);
var i:Integer;
s : string;
nn:TTreeNode;
begin
for i:= 0 to rl.Count -1 do
begin
if rl[i].DataSet <> nil then
s := rl[i].DataSet.name + " (" + rl[i].DataSet.TableName + ")"
else
s := "{[------]}";
nn := TreeView1.Items.AddChildObject(n,s,rl[i]);
AddItems(nn,rl[i].SubRelations);
end;
end;
Procedure AddChilds(const c:TComponent);
var i:integer;
begin
for i:= 0 to c.ComponentCount-1 do
begin
if c.Components[i] is TCkgDocCtrlBar then
ComboBox2.Items.AddObject(c.Components[i].Name, c.Components[i]);
AddChilds(c.Components[i]);
end;
end;
var i:Integer;
begin
if Relation = nil then exit;
if cmp = nil then exit;
TreeView1.Items.BeginUpdate;
try
AddItems(nil,Relation);
TreeView1.FullExpand;
finally
TreeView1.Items.EndUpdate;
end;
for i:= 0 to cmp.Owner.ComponentCount -1 do
if cmp.Owner.Components[i] is TCkgDataSet then
ComboBox1.Items.AddObject(cmp.Owner.Components[i].Name +
" (" + TCkgDataSet(cmp.Owner.Components[i]).TableName + ")",
cmp.Owner.Components[i]);
AddChilds(cmp.Owner);
end;
LMD
← →
Zeqfreed © (2004-09-09 19:27) [13]2Дима Шапкин:
Можно получить дескрипторы хоть у чего и хоть в какое время. Достаточно либо перебирать все окна EnumWindows / EnumChildWindows либо юзать что-нибудь типа WindowFromPoint / ChildWindowFromPoint... но необходимо учесть, что при запуске проги дескрипторы изменятся. Если требуется что-то сделать с окнами на форме просто для забавы, видимо такой способ подойдет.
Если я неправильно что-то понял, прошу меня извинить.
← →
dima_shapkin (2004-09-10 10:18) [14]Люди, люди...
Не я это придумал, просто нужно средство позволяющее ускорить процесс разработки. Либо просто вызывается пункт меню в Дельфе или просто кидается компонент, где запускается некий код из ObjIns или из конт. меню этого компонента. "Код" просматривает все компоненты в проекте, находит нужные и собирает необходимый код, копируя все это безобразие в буфер, откуда это просто вставляется в нужное место модуля. ВСЕ!!!!
Если компонент лежит на форме, то есенно без проблем
Owner.Components, а вот с другими формами?
Хм, в Run Time то все Easy, но хочется сделать то нормально, что бы все это можно было в Design Time.
Application.Components в Design Time дает все объекты самой среды Delphi, поэтому не могу ничего придумать....
← →
Erik1 (2004-09-10 10:35) [15]Тебе совсем другое надо, в delphi есть спецальный интерфейсы для работы с модулями и формами проекта. Название из головы вылетело вобщем посмотри IFormDesigner и пр..
← →
dima_shapkin (2004-09-10 10:50) [16]Вот... Вот...
Так я же и про то :)))) ну вот ищу и не могу ничего путного найти...
← →
FOX © (2004-09-10 12:29) [17]Посмотри описание интерфейса TIToolServices в модуле ToolIntf.pas
← →
dima_shapkin (2004-09-10 13:14) [18]Да я уже все понял, спасибо ToolIntf.pas forever....
Страницы: 1 вся ветка
Текущий архив: 2004.09.26;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.033 c