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: 3165 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vortex77

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



+1 Profil

icon onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 09:42 - pre 208 meseci
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.



 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 10:19 - pre 208 meseci
> 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š.
 
Odgovor na temu

vortex77

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



+1 Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 10:42 - pre 208 meseci
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.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

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

Pogledaj FindComponent ili FindControl.
 
Odgovor na temu

vortex77

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



+1 Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 12:31 - pre 208 meseci
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) .
 
Odgovor na temu

marcha
Nikola Marcic
Beograd/Leskovac

Član broj: 6454
Poruke: 108
80.93.238.*

ICQ: 156892888


+1 Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 12:45 - pre 208 meseci
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.
 
Odgovor na temu

vortex77

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



+1 Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova07.03.2007. u 13:38 - pre 208 meseci
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. :)
 
Odgovor na temu

aleksandarpopov
IT consultant
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 - pre 208 meseci
@vortex77
Na koje komponente mislis?
RTFM
 
Odgovor na temu

vortex77

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



+1 Profil

icon Re: onDataChange za dinamicko kreiranje Frame-ova08.03.2007. u 11:00 - pre 208 meseci
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 :))
 
Odgovor na temu

aleksandarpopov
IT consultant
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 - pre 208 meseci
Aha, ok... ja sam na nesto drugo mislio.
Pozdrav!
RTFM
 
Odgovor na temu

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

[ Pregleda: 3165 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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