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

Dinamicki kreirane komponente!

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

[ Pregleda: 3387 | Odgovora: 11 ] > FB > Twit

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 - pre 215 meseci
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!
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.58.eunet.yu



+1 Profil

icon Re: Dinamicki kreirane komponente!24.05.2004. u 19:50 - pre 215 meseci
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.
 
Odgovor na temu

byTer

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

ICQ: 47761626


Profil

icon Re: Dinamicki kreirane komponente!24.05.2004. u 20:45 - pre 215 meseci
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)
 
Odgovor na temu

antix

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

Jabber: antix@elitesecurity.org


Profil

icon Re: Dinamicki kreirane komponente!25.05.2004. u 01:19 - pre 215 meseci
č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...
 
Odgovor na temu

PBranislava
Branislava Purac

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



Profil

icon Re: Dinamicki kreirane komponente!25.05.2004. u 12:59 - pre 215 meseci
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.
 
Odgovor na temu

antix

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

Jabber: antix@elitesecurity.org


Profil

icon Re: Dinamicki kreirane komponente!25.05.2004. u 15:58 - pre 215 meseci
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.
 
Odgovor na temu

PBranislava
Branislava Purac

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



Profil

icon Re: Dinamicki kreirane komponente!26.05.2004. u 10:43 - pre 215 meseci
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.
 
Odgovor na temu

vladab
Vladimir Bašanović
Beograd

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



Profil

icon Re: Dinamicki kreirane komponente!26.05.2004. u 11:17 - pre 215 meseci
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... :)
 
Odgovor na temu

burner
Dragiša Rakić
BG

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



+1 Profil

icon Re: Dinamicki kreirane komponente!27.05.2004. u 21:34 - pre 215 meseci
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

 
Odgovor na temu

byTer

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

ICQ: 47761626


Profil

icon Re: Dinamicki kreirane komponente!27.05.2004. u 22:18 - pre 215 meseci
A sto jednostavno ne kreiras DBEdit polja?! Onda im samo dodelis datasource property?
 
Odgovor na temu

antix

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

Jabber: antix@elitesecurity.org


Profil

icon Re: Dinamicki kreirane komponente!28.05.2004. u 00:56 - pre 215 meseci
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...
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 802
217.119.242.*



+62 Profil

icon Re: Dinamicki kreirane komponente!04.06.2004. u 12:39 - pre 214 meseci
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
 
Odgovor na temu

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

[ Pregleda: 3387 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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