Форум: "Основная";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
ВнизОбращение к компонентам размещенным на MDI Найти похожие ветки
← →
Ярослав (2006-05-05 15:56) [0]Пытаюсь на StatusBar размещенный на MDI передать сообщение из
модуля данных выскакивает ошибка ..
Кто знает как правильно обращаться к компонентам размещенным на MDI ???
← →
Jeer © (2006-05-05 16:06) [1]Напиши, как ты делаешь неправильно и что за ошибка.
К телепатам - в другое место.
← →
Плохиш © (2006-05-05 16:17) [2]
> Кто знает как правильно обращаться к компонентам размещенным
> на MDI ???
Так же как и к компонентам не на МДИ. Но лучше исползовать механизм событий, создай обработчик события в модуле данных. Если речь идёт о MDI-Child, то создай в модуле данных механизм обработки списка форм, требующих обовления и пусть каждая форма, если ей надо, добавляет себя туда при создании и удаляет при разрушении.
> Jeer © (05.05.06 16:06) [1]
> К телепатам - в другое место.
Как? Уже сослали? 8-O
← →
Ярослав (2006-05-05 16:20) [3]function calctokurs(inif:TInifW;datset:tpFIBDataSet):boolean ;
var
s,d:string ;
skurs,ekurs,stoims,stoime,stgrn: extended ;
formss: Tform11 ;
begin
try
begin
inif.IniFileName:=".ini";
skurs:=inif.readfloat("akurs","aaS");
ekurs:=inif.readfloat("akurs","ae");
s:="Ñòîèìîñòü íà äàòó îöåíêè " ;
d:=" ãðí" ;
if stat="dol" then
begin
stoims:=datset.FieldValues["st_s"] ;
stgrn:=stoims*skurs ;
end ;
if stat="evr" then
begin
stoime:=datset.FieldValues["st_e"];
stgrn:=stoime*ekurs ;
end ;
formss.StatusBar1.Panels[1].Text:=s+formatfloat("###.###",stgrn)+d) ;
end
except
messagedlg("Îøèáêà ðàñ÷åòà ñòîèìîñòè ",mterror,[mbok],0);
datset.Cancel;
end ;
end;
← →
Ярослав (2006-05-05 16:21) [4]formss MDI форма
← →
Ярослав (2006-05-05 16:22) [5]вешаю ее на обработчик DataSourceDataChange
на не MDI это работало
← →
Плохиш © (2006-05-05 16:27) [6]
> formss.StatusBar1.Panels[1].Text:=s+formatfloat("###.###",
> stgrn)+d) ;
Ой, я даже знаю текст ошибки :-)
TForm11(Application.MainForm).StatusBar1.Panels[1].Text:=s+formatfloat("###.###",stgrn)+d) ;
← →
Плохиш © (2006-05-05 16:28) [7]
> Ярослав (05.05.06 16:22) [5]
> на не MDI это работало
Это была галюцинация или функция была написана по другому.
← →
Loginov Dmitry © (2006-05-05 18:26) [8]Зачем сиё действие, если не секрет?
> var
..........
> formss: Tform11 ;
← →
ЮЮ © (2006-05-06 03:39) [9]formss тоже перенеси в параметры. Надеюсь, когда вызываешь calctokurs знаешь на какую MDI форму её выводить. Или постарайся вызывать её из методов MDI формы, тогда formss == Self. А ещё лучше сделать эту функциональность методом Tform11
← →
Ярослав (2006-05-06 09:56) [10]Спасибо я уже разобрался косяк был прост.. нужно было обращаться к активной mdi
uses DB_BASE,zaprpol,main;
procedure TSelect_DM.calctokur;
var
s,d:string ;
skurs,ekurs,stoims,stoime,stgrn: extended ;
formss:tform11 ;
begin
try
begin
inifw1.IniFileName:=".ini";
skurs:=inifw1.readfloat("akurs","aaS");
ekurs:=inifw1.readfloat("akurs","ae");
s:="Стоимость на дату оценки " ;
d:=" грн" ;
if tform11(main_form.ActiveMDIChild).N8.Checked=true then
begin
stoims:=select_pFIBDataSet.FieldValues["st_s"] ;
stgrn:=stoims*skurs ;
end ;
if tform11(main_form.ActiveMDIChild).N10.Checked=true then
begin
stoime:=select_pFIBDataSet.FieldValues["st_e"];
stgrn:=stoime*ekurs ;
end ;
tform11(main_form.ActiveMDIChild).StatusBar1.Panels[1].Text:=s+formatfloat("###.###",stgrn)+d ;
end
except
messagedlg("Ошибка расчета стоимости ",mterror,[mbok],0);
select_pFIBDataSet.Cancel;
end ;
end;
← →
Ярослав (2006-05-06 09:58) [11]Правда
formss: tform11;
нужно убрать остатки из прошлой функции
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c