problem s runtime sazdavane na obekt
14 отговора
377 прегледа
problem s runtime sazdavane na obekt
nai-prosto problema e slednia:
iskam pri natiskane na edin buton da sazdam obekt Obj1 i da go pokaja v formata.pri povtornoto natiskane na sashtia buton da skria i uni6toja tozi obekt Obj1.vmesto tova kakwo stava - Obj1 taka i ne se izobrazqva a pri povtornoto natiskane na butona toi samia izchezva.
izv ako vsi4ko zvu4i maglivo no takova e ve4e v glavata mi,nadqvam se da e razbiraemo
mersi na vseki koito udari edno ramo
iskam pri natiskane na edin buton da sazdam obekt Obj1 i da go pokaja v formata.pri povtornoto natiskane na sashtia buton da skria i uni6toja tozi obekt Obj1.vmesto tova kakwo stava - Obj1 taka i ne se izobrazqva a pri povtornoto natiskane na butona toi samia izchezva.
izv ako vsi4ko zvu4i maglivo no takova e ve4e v glavata mi,nadqvam se da e razbiraemo
mersi na vseki koito udari edno ramo
Re: problem s runtime sazdavane na obekt
uto4nenie
StringGrid1:=TStringGrid.Create(Self);
StringGrid1.Parent:=Self; // tuk dava error incompatible types TForm and TWidgetControl
StringGrid1:=TStringGrid.Create(Self);
StringGrid1.Parent:=Self; // tuk dava error incompatible types TForm and TWidgetControl
Re: problem s runtime sazdavane na obekt
Пусни малко повече код - за да се разбере какво реално се опитваш да направиш.
Освен това - ако грида или контрола ти трябва постоянно - защо просто не го скриваш и показваш - а не да го създаваш с натискането на бутона?
---
Е т'ва е живот!
Освен това - ако грида или контрола ти трябва постоянно - защо просто не го скриваш и показваш - а не да го създаваш с натискането на бутона?
---
Е т'ва е живот!
Re: problem s runtime sazdavane na obekt
ami koda e slednia:
procedure TForm1.Button1Click(Sender: TObject);
var Grid1:TStringGrid;
begin
Grid1:=TStringGrid.Create(Form1);
Grid1.Parent:=Form1; {tuk e greshkata "Incompatible types: 'TWidgetControl' and 'TForm1'"}
end;
Opitah s typecasting no ne se polu4i nishto.
celta e da se izpolzva edna 4ast ot formata za ozobrazqvane na razli4ni ne6ta - v zavisimost ot tova kakwo varvi v momenta.tozi grid e edin ot obektite koito iskam da sazdam v runtime.
procedure TForm1.Button1Click(Sender: TObject);
var Grid1:TStringGrid;
begin
Grid1:=TStringGrid.Create(Form1);
Grid1.Parent:=Form1; {tuk e greshkata "Incompatible types: 'TWidgetControl' and 'TForm1'"}
end;
Opitah s typecasting no ne se polu4i nishto.
celta e da se izpolzva edna 4ast ot formata za ozobrazqvane na razli4ni ne6ta - v zavisimost ot tova kakwo varvi v momenta.tozi grid e edin ot obektite koito iskam da sazdam v runtime.
Re: problem s runtime sazdavane na obekt
procedure TForm1.Button1Click(Sender: TObject);
var
sGrid: TStringGrid;
begin
sGrid := TStringGrid.Create(Self);
sGrid.Parent := Self;
end;
-
При мен това работи (тук и аз ползвам CLX). Лош стил е да пишеш Parent := Form1 защото ако смениш името от form1 на frmMain например ще трябва после да променяш и в кода. Вместо това можеш да използваш Self - това е указател към обекта, чиито метод се изпълнява.
-------------
Искам да знам какво мисли Бог - останалото са подробности. (Einstein)
Редактирано от z_free на
Re: problem s runtime sazdavane na obekt
ami to qvno ima drugo neshto.dori i v takav variant pak ne stava.a strannoto e 4e ako iskam da sazdam drug obekt (primerno Memo) nqma problem.
Re: problem s runtime sazdavane na obekt
Чудна работа :{
Разгледай да не би някъде да си преопределил TStringGrid.
Разгледай да не би някъде да си преопределил TStringGrid.
Re: problem s runtime sazdavane na obekt
ne mislq 4e e takav prblema zashtoto se proqvqva i pri nova instalacia.opitvam se da pravq typecasting mejdu TForm i TWidgetControl no nqma uspeh.i dori mi minava prez glavata idiotskoto skrivane i pokazvane vmesto runtime creation na Grid-a.
i vse pak trqbva nqkak da stava tova neshto.no kak li:)
i vse pak trqbva nqkak da stava tova neshto.no kak li:)
Re: problem s runtime sazdavane na obekt
Да ве, вярно, това е добър въпрос. Все пак TForm наследява TWidgetControl. Можеш ли да го направиш това нещо в нов проект, и после просто да го "преместиш" в твоя? Или ако можеш някъде да го upload-неш, та да го видим. Защото наистина ми звучи като "странна работа".
-------------
Искам да знам какво мисли Бог - останалото са подробности. (Einstein)
-------------
Искам да знам какво мисли Бог - останалото са подробности. (Einstein)
Polu4i se:)
da,polu4i se no po tolkova neqsen (za men pone) nachin
problema e bil v tova che v Uses vkluchvah QGrids vmesto Grids,kakto stana pri postavqneto na SGrid v designtime.tova puk ot svoq strana (za QGrids) go vidqh v Help - TSringGrid bil opisan v QGrids i po tazi pri4ina go vklu4ih v Uses.
iskam da kaja MERSI na vseki koito qvno ili neqvno me naso4i kam reshenieto.blagodarq
i vse pak mai ima neshto koeto ne razbiram - za6to v Help-a kazvat 4e unita,koito e definiral StringGrid e QGrids,a vsashtnost mqstoto e Grids.ako bqh malko po-advanced mojeshe da kaja 4e e greshka na Borland no uvi - ne sam:((vse pak bih ocenil nqkoi ako mi svetne tazi lampi4ka pred o4ite
problema e bil v tova che v Uses vkluchvah QGrids vmesto Grids,kakto stana pri postavqneto na SGrid v designtime.tova puk ot svoq strana (za QGrids) go vidqh v Help - TSringGrid bil opisan v QGrids i po tazi pri4ina go vklu4ih v Uses.
iskam da kaja MERSI na vseki koito qvno ili neqvno me naso4i kam reshenieto.blagodarq
i vse pak mai ima neshto koeto ne razbiram - za6to v Help-a kazvat 4e unita,koito e definiral StringGrid e QGrids,a vsashtnost mqstoto e Grids.ako bqh malko po-advanced mojeshe da kaja 4e e greshka na Borland no uvi - ne sam:((vse pak bih ocenil nqkoi ako mi svetne tazi lampi4ka pred o4ite
Две думи по въпроса - проблема не е в Borland :)
... а в случая може да се каже, че е в начина, по който са организирали help-а си.
Начи, Наско, от 6-та версия нататък Delphi освен VCL библиотеката включва и CLX (чете си Кликс) и означава Cross Platform Library. Ако изградиш приложението си с нея (и спазиш определени ограничения) можеш да го компилираш с Kylix 3 и то да стане Linux приложение. Unit-ите на VisualCLX имат същите имена като тези от VCL, но започват с Q (на пример QGrids). В едно и също приложение не можеш да имаш VCL и CLX конторли (което ти си се опитал да направиш). Просто си погледнал help-a с CLX reference, видял си cross-платформения TStringGrid, който е описан в QGrids и си се опитал да създадеш него във VCL-ски TForm.
-------------
Искам да знам какво мисли Бог - останалото са подробности. (Einstein)
Начи, Наско, от 6-та версия нататък Delphi освен VCL библиотеката включва и CLX (чете си Кликс) и означава Cross Platform Library. Ако изградиш приложението си с нея (и спазиш определени ограничения) можеш да го компилираш с Kylix 3 и то да стане Linux приложение. Unit-ите на VisualCLX имат същите имена като тези от VCL, но започват с Q (на пример QGrids). В едно и също приложение не можеш да имаш VCL и CLX конторли (което ти си се опитал да направиш). Просто си погледнал help-a с CLX reference, видял си cross-платформения TStringGrid, който е описан в QGrids и си се опитал да създадеш него във VCL-ски TForm.
-------------
Искам да знам какво мисли Бог - останалото са подробности. (Einstein)
Редактирано от z_free на
Re: Две думи по въпроса - проблема не е в Borland :)
:))))predpolagah 4e problema e v zadkormilnoto ustroistvo.loshoto e 4e sam bil prav.10x otnovo
Re: Две думи по въпроса - проблема не е в Borland :)
проблема си е на Borland!
можеха да измислят и добавка към имената на класовете, не само на библиотеките... или поне да вадят warning/hint че са смесени VCL i CLX библиотеки...
--------------------------------------
Започва Път от моят праг...
можеха да измислят и добавка към имената на класовете, не само на библиотеките... или поне да вадят warning/hint че са смесени VCL i CLX библиотеки...
--------------------------------------
Започва Път от моят праг...
Re: Две думи по въпроса - проблема не е в Borland :)
Да ама тогава щеше да си компилираш на "куково лято" приложение под двете платформи едновременно ;-))) Нещо което мисля до края на годината да пробвам в действителност дали става ;-))) - за средно голям проект де.
Това с unit- ите е добро - ама трябва да се внимава ;-))) - не е много сложно
Иначе не ти трябват warning -и ако ползваш VCL / CLX компоненти - няма начин да се объркаш - просто палитрата с компонентите подозрително се изпразва ако ползваш проект за CLX ;-)))
Признавам, че има недоизгладени неща, но не може да се постигне напълна универсално - като говорим за Lin/Win едновременно.
---
Е т'ва е живот!
Това с unit- ите е добро - ама трябва да се внимава ;-))) - не е много сложно
Иначе не ти трябват warning -и ако ползваш VCL / CLX компоненти - няма начин да се объркаш - просто палитрата с компонентите подозрително се изпразва ако ползваш проект за CLX ;-)))
Признавам, че има недоизгладени неща, но не може да се постигне напълна универсално - като говорим за Lin/Win едновременно.
---
Е т'ва е живот!