Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dinamicki kreirane komponente!

[es] :: Pascal / Delphi / Kylix :: Dinamicki kreirane komponente!

[ Pregleda: 1638 | Odgovora: 11 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

PBranislava
Branislava Purac

Član broj: 27144
Poruke: 5
*.dial.InfoSky.Net



Profil

icon Dinamicki kreirane komponente!24.05.2004. u 13:25

Dinamicki sam kreirala komponente MaskEdit
me := TMaskEdit.Create(Self);
me.Name := 'MaskEdit' + IntToStr(n);
me.Text := '';
i takvih komponenata na formi imam vise; Posle kreiranja, menjam vrednost svojstva text, i hocu takve vrednost da upisem u bazu podataka. Kako to da uradim? Svaka vrednost iz MasEdit komponente je jedan slog u bazi.

Dajte mi bar ideju!
24.05.2004. u 13:25 

morlic
Milos Orlic
Beograd

Moderator
Član broj: 6081
Poruke: 732
*.58.eunet.yu



Profil

icon Re: Dinamicki kreirane komponente!24.05.2004. u 19:50
Pa generalno ideja treba da prati koncept pristupa podacima kroz npr. BDE ili DBExpress. Znaci ides kroz DataSet i citas i po potrebi menjas slogove. Ako sam shvatio dobro ti si za svaki slog tabele napravila jedan maskedit. Znaci moras da imas nacin kako da povezes maskedit komponente sa odgovarajucim poljima u tabeli, kao neki ID. Ali ovo vec lici na DBGrid tako da je pitanje zasto ne koristis vec gotovu komponentu.
24.05.2004. u 19:50 

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Dinamicki kreirane komponente!24.05.2004. u 20:45
Morlic lepo kaze. A samo mi se cini da kada se kreira komponenta mora da ima vlasnika a najbolje je da to bude forma na kojoj stoje.

Znaci TMaskedEdit.Create(FormOwner)
24.05.2004. u 20:45 

antix

Član broj: 8388
Poruke: 246
*.mobtel.com

Jabber: antix@elitesecurity.org


Profil

icon Re: Dinamicki kreirane komponente!25.05.2004. u 01:19
čini mi se da će ovdje biti da treba postaviti

MaskEdit.Parent=parentControl

takođe treba da postaviš vrijednosti top,left,height,width
osobina kontrole...
25.05.2004. u 01:19 

PBranislava
Branislava Purac

Član broj: 27144
Poruke: 5
*.InfoSky.Net



Profil

icon Re: Dinamicki kreirane komponente!25.05.2004. u 12:59
Kao sto sam i napisala ranije da sam dinamicki kreirala komponente MaskEdit
me := TMaskEdit.Create(Self);
me.Name := 'MaskEdit' + IntToStr(n);
me.Text := '';
Komponenta ima i vlasnika, postavku MaskEdit.Parent i takodepostavku vrednosti top,left,height,width osobina kontrole...
i takvih komponenata na formi imam vise; Posle kreiranja, menjam vrednost svojstva text, i hocu takve vrednost da upisem u bazu podataka. Kako to da uradim, odnosno nacin kako da pozovem odredjenu MaskEdit komponentu i ucitam vrednost koju sam upisala i upisem u bazu podataka. Svaka vrednost iz MasEdit komponente treba da je jedan slog u bazi.
25.05.2004. u 12:59 

antix

Član broj: 8388
Poruke: 246
*.mobtel.co.yu

Jabber: antix@elitesecurity.org


Profil

icon Re: Dinamicki kreirane komponente!25.05.2004. u 15:58
nisam siguran da sam te shvatio?!! Pitaš kako da
pozoveš neku komponentu. Pa preko imena. Možda ti je
najbolje da te komponente staviš u niz pa da prođeš kroz
niz i uzimaš Text value svake komponente i stavljaš u bazu.
25.05.2004. u 15:58 

PBranislava
Branislava Purac

Član broj: 27144
Poruke: 5
*.dial.InfoSky.Net



Profil

icon Re: Dinamicki kreirane komponente!26.05.2004. u 10:43
Uredu, ja cu kreirati niz koji ce imati n clanova. Kako da se sad obratim osobini tekst komponente cije je ime u nizu, jer mi ta vrednost treba za unos u bazu.
Dakle, osnovni problem mi je sto je ime komponente promenljiva, ja ne znam kako da im se kao takvim obracam.
26.05.2004. u 10:43 

vladab
Vladimir Bašanović
Beograd

Član broj: 9512
Poruke: 496
*.etf.bg.ac.yu



Profil

icon Re: Dinamicki kreirane komponente!26.05.2004. u 11:17
var a : string;

...
a:=maskedit.text
...

tako pristupas vrednosti text-a koju menjas u toku programa...
Ako ne znas koliko ih imasw stavi neki brojac...
:O)
Sto se tice upisa u bazu, zavisi od baze koju koristis. Npr za mysql lepo skines zeoslib, povezes se na bazu, stavis na formu updateSQL (ili tako nesto, sad nisam kuci, a nisam radio skoro sa bazama) i query koji ce ti to uneti u bazu...
Postoji i mnogo elegantnije resenje kao sto je DBEdit, oko koga ne moras da se mucis...

PS Mozda sam gresio u imenima komponenti, ali trazila si ideju... :)
Seven deadly sins
Seven ways to win
Seven holy paths to hell
And your trip begins

Seven downward slopes
Seven bloodied hopes
Seven are your burning fires,
Seven your desires...
26.05.2004. u 11:17 

burner
Dragiša Rakić
BG-NS

Član broj: 898
Poruke: 146
*.dialup.neobee.net.

Jabber: burner@elitesecurity.org
ICQ: 241444458


Profil

icon Re: Dinamicki kreirane komponente!27.05.2004. u 21:34
Probaj na sledeći naćin. Postavi neki TButton (npr. Button 1) i onda napiši sledeći kod
za njegov OnClick event(pogledaj help ako nije baš sve OK sa sintaksom, pišem napamet):

Procedure Button1.Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to ComponentCount-1 do
begin
If Component is TEdit // pretpostavka da si unosila tekst u TEdit polja
then
begin
With Dataset1 to // priprema dataseta i unos texta
begin
insert;
Fields[0].AsString:=(Component as TEdit).Text;
post;
end; // with
end; // if
end; // for
end; // onclick procedure

27.05.2004. u 21:34 

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Dinamicki kreirane komponente!27.05.2004. u 22:18
A sto jednostavno ne kreiras DBEdit polja?! Onda im samo dodelis datasource property?
27.05.2004. u 22:18 

antix

Član broj: 8388
Poruke: 246
*.mobtel.co.yu

Jabber: antix@elitesecurity.org


Profil

icon Re: Dinamicki kreirane komponente!28.05.2004. u 00:56
i:integer;
for i:=1 to niz.size() do
begin
MaskEdit m=(niz as maskedit);
m.text....
// i ovdje sada ostale radnje...

end;


otprilike bi ovako izgledalo ali moras da prilagodis.
Milslim da je i ovo jasno...
28.05.2004. u 00:56 

Rapaic Rajko
programer, Grappolo
Bgd

Član broj: 4105
Poruke: 410
217.119.242.*



Profil

icon Re: Dinamicki kreirane komponente!04.06.2004. u 12:39
Auh, bas svasta...
Dakle, ako imas ime komponente, treba da pozoves ovako nesto:
Code:

var 
  MyMaskEdit: TMaskEdit;
  anyname: string;
begin
  anyname := 'nekitamoname';
  MyMaskEdit := Form1.FindComponent(anyname) as TMaskEdit;
  MyMaskEdit.Text := ....;
end;


Pogledaj u help-u detalje metode FindComponent(). Da bi ovo radilo, svi tvoji komponenti moraju biti kreirani sa owner-om postavljenim na Form1 (upravo kao u tvom primeru).
Pozdrav

Rajko
04.06.2004. u 12:39 

[es] :: Pascal / Delphi / Kylix :: Dinamicki kreirane komponente!

[ Pregleda: 1638 | Odgovora: 11 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.