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

onDataChange za dinamicko kreiranje Frame-ova

[es] :: Pascal / Delphi / Kylix :: onDataChange za dinamicko kreiranje Frame-ova

[ Pregleda: 1045 | Odgovora: 9 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vortex77

Član broj: 91694
Poruke: 101
*.dynamic.sbb.co.yu.



Profil

icon onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 09:42

Problem je sledeci :

Projekat se sastoji od :
1) Glavnog fajla u kome sam kreirao form sa par dugmica
2) dataModul-a na kojem se postavljeni DataSet i DataSource
3) Frame-a na kome se nalaze DB komponente (DBEdit i DBGrid)

Princip rada je da se pritiskom na dugme, dinamicki kreira Frame ( i sve komponente na njemu) i ispisuju podaci iz baze.

Za kreiranje frame-a koristim :

procedure TForm1.NapraviF;
begin
temp := TFrame.Create(Self);
temp.Parent := From1;
.
.
.
end;

Sve ovo radi bas kako bi trebalo. Problem nastaje kada hocu da napravim onDataChange za DataSource u DataModule-u.
Svaka interakcija sa komponentama u frame-u (iz DataModule-a) pravi gresku prilikom kompajliranja.
Jasno mi je zasto se ovo desava, ali ne znam kako da razresim ovaj problem.



07.03.2007. u 09:42 

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 1662
*.adsl-1.sezampro.yu.



Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 10:19
> Svaka interakcija sa komponentama u frame-u (iz DataModule-a) pravi gresku prilikom kompajliranja.
> Jasno mi je zasto se ovo desava, ali ne znam kako da razresim ovaj problem.

Daj primer koda i grešku koju dobiješ.
07.03.2007. u 10:19 

vortex77

Član broj: 91694
Poruke: 101
*.dynamic.sbb.co.yu.



Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 10:42
Code:

Code:


procedure TdataBS.QIBS_dsDataChange(Sender: TObject; Field: TField);
begin
  if QIBS.FindField('birac').AsString = 'yes' then
     MainF.Frame.IBSbirac_da.Checked := true
  else
     MainF.Frame.IBSbirac_ne.Checked := true;



ovde je QIBS query koji koristim za citanje podataka iz baze, MainF - glavni form, Frame - public promenjiva koja mi sluzi za kreiranje framova ( MainF.Frame := TFrame.Create(Self); MainF.Frame.Parent := MainF;) a IBSbirac_da - RadioBtn

Error:
[Error] data_BS.pas(63): Undeclared identifier: 'IBSbirac_da'

-> data_BS.pas (data modul)

Ali kao sto sam rekao, poznato mi je zbog cega nastaje greska (pokusavam da pristupim komponenti koja jos uvek "ne postoji").

Problem je kako pristupiti komponenti koja nastaje dinamicki u toku run-time-a.
07.03.2007. u 10:42 

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 1662
*.adsl-1.sezampro.yu.



Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 11:50
> Problem je kako pristupiti komponenti koja nastaje dinamicki u toku run-time-a.

Pogledaj FindComponent ili FindControl.
07.03.2007. u 11:50 

vortex77

Član broj: 91694
Poruke: 101
*.dynamic.sbb.co.yu.



Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 12:31
Probao sam, ali je u tom slucaju nemoguce prici Checked svojstvu koje meni i treba (koliko sam video, metode vracaju TComponent i TWinControl koje nemaju ovo svojstvo) .
07.03.2007. u 12:31 

marcha
Nikola Marcic
Beograd/Leskovac

Član broj: 6454
Poruke: 107
80.93.238.*

ICQ: 156892888


Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 12:45
Citat:
vortex77: Probao sam, ali je u tom slucaju nemoguce prici Checked svojstvu koje meni i treba (koliko sam video, metode vracaju TComponent i TWinControl koje nemaju ovo svojstvo) .


Probaj ovako:

Code:

....
var 
  C:TComponent; 
begin
  c := FindComponent('MojRB');
  if  Assigned(c) and (c is TRadioButton) then 
     TRadioButton(c).Checked:=true;
end;

Marcha
-----------------------------------
Pretpostavka je majka zajeba.
07.03.2007. u 12:45 

vortex77

Član broj: 91694
Poruke: 101
*.dynamic.sbb.co.yu.



Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 13:38
Mislim da je to TO!

Veliko hvala.

p.s. U medjuvremenu sam pronasao i neke komponente koje ove stvari odradjuju same ( na osnovu podataka iz baze), tako da bih licno preporucio svima da probaju da iskoriste ove komponente. :)
07.03.2007. u 13:38 

aleksandarpopov
Software developer
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 15:56
@vortex77
Na koje komponente mislis?
RTFM
07.03.2007. u 15:56 

vortex77

Član broj: 91694
Poruke: 101
*.dynamic.sbb.co.yu.



Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova08.03.2007. u 11:00
Mislio sam na komponente koje razresavaju moj problem :))

Problem mi je bio kako da prikazem ne Boolean vrednosti (recimo tipa SET) iz baze. Da bih to uradio do sada sam koristio onDataChange za Query i na njemu rucno setovao radioBtn za odredjene vrednosti (np. imam u bazi vrednosti 'Musko', 'Zensko' i hocu da korisniku pruzim izbor preko RadioBtn-a). Sve je bilo ok dok sam radio sa Design Time komponentama. Kada sam presao na Run Time creation (u ovom slucaju sam na pritisak dugmeta kreirao odgovarajuci Frame) doslo je do problema prilikom kompajliranja, jer u design time-u RadioBtn jos nisu bili kreirani, tako da direktna dodela vrednosti (Checked := true/false) nije funcionisala.
Malo sam googlao i pronasao sam komponente koje omogucuju custom dodelu vrednosti za RBtn iz baze (znaci u properties za Rbtn postavim checked := true kada je vrednost := 'Musko') i time razresio ovaj problem. Ime komponenti koje sam ja nasao su : SweetControls , ali pretpostavljam da postoji jos slicnih.

Sajt koji ja uglavnom koristim za pretragu novih komponenti je www.vclcomponents.com

Nadam se da ce ti ovo pomoci :))
08.03.2007. u 11:00 

aleksandarpopov
Software developer
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova08.03.2007. u 11:57
Aha, ok... ja sam na nesto drugo mislio.
Pozdrav!
RTFM
08.03.2007. u 11:57 

[es] :: Pascal / Delphi / Kylix :: onDataChange za dinamicko kreiranje Frame-ova

[ Pregleda: 1045 | Odgovora: 9 ]

Postavi temu Odgovori

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