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

Skivanje property-a

[es] :: Pascal / Delphi / Kylix :: Skivanje property-a

[ Pregleda: 2077 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
*.adsl.net.t-com.hr.



+1 Profil

icon Skivanje property-a12.08.2008. u 21:18 - pre 191 meseci
Kreirao sam svoju kontrolu kao nasljednika TIBQuery

U njoj sam property SelectSQL rastavio na 3 selecta....

Pitanje:

Kako sakriti property SelectSQL koji se nasljeđuje iz TIBQery?

Pokušao sam:
protected
{ Protected declarations }
property SelectSQL;

ali se SelectSql svejedno vidi u obj. isnp.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Skivanje property-a12.08.2008. u 21:48 - pre 191 meseci
> Kako sakriti property SelectSQL koji se nasljeđuje iz TIBQery?
> Pokušao sam:
> ali se SelectSql svejedno vidi u obj. isnp.

SelectSQL je deklarisan kao protected u TIBCustomDataSet, dakle published može biti samo ako ga ti tako postaviš.

 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Skivanje property-a12.08.2008. u 22:30 - pre 191 meseci
Isto sam pročitao na web-u.
Kažu: da bi sakrio property dovoljno ga je staviti u PROTECTED dio.

SelectSQL u prvoj varijanti kontrole nigdje nisam spominjao - u obj.insp. se vidi
Pokušao sam ga staviti samo kao deklaraciju u PROTECTED - isto, vidi se.

Provjereno. U čemu griješim?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Skivanje property-a13.08.2008. u 01:01 - pre 191 meseci
> SelectSQL u prvoj varijanti kontrole nigdje nisam spominjao - u obj.insp. se vidi
> Pokušao sam ga staviti samo kao deklaraciju u PROTECTED - isto, vidi se.

Da li se vidi u TIBQuery kontroli? Svakako se pobrini da imaš najsvežiji IBX (to nije onaj koji ide uz instalacioni delphi).
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Skivanje property-a13.08.2008. u 02:27 - pre 191 meseci
Ako je property vec proglasen za published, onda ga vise ne mozes sakriti. A ovaj je proglasen jer se vidi u Object Inspector-u. Mozda ne u tvojoj komponenti, ali je negde proglasen. Gledaj komponente izmedju TIBCustomDataSet (savkic je primetio da je tu protected) i tvoje komponente.
 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
*.gs1hr.org.



+1 Profil

icon Re: Skivanje property-a13.08.2008. u 11:44 - pre 191 meseci
Da li to znači da bih trebao mijenjati kod neke od tih klasa?

Property je published prije moje kontrole i ako nema jednostavnijeg načina da ga sakrijem u svojoj kontroli, niš od toga.
Kontrolu radim za internu upotrebu u našoj firmi, nije namjenjena daljnjoj prodaji pa ću ostaviti da se vide property-i koji više ne trebaju.

Klasični SelectSQL sam rastvio na dijelove:

1. select ....
2. from ...
3. join ...
4. where ...
5. order ...

pri otvaranju se slaže SelectSql iz tih dijelova tako da eventualni direktni upis u SelectSQL nema uticaja, čisto kozmetički bih ga maknuo. Ovako mi je uz dbgrid vrlo jednostavno napraviti funkcije za sort ili filter.
Kontrola isto tako iz select ... from izvlači nazive field-ova u obliku: "TABLICA"."FIELD NAME"

Znam da ima dosta kontrola koje to mogu, ali... ili nemaju source uz sebe, ili ih treba kupiti ili imaju još hrpu stvari koje mi ne trebaju, a izmjena tuđeg source-a...

Trebalo je malo bolje čitati... između ostalog i na es-u:
(post od Srki_82) ....Vrlo nam je bitno da korisnik ne moze da menja Caption, zar ne? Zbog toga nasa klasa nasledjuje klasu TCustomLabel. Sve klase u Delphi-u koje pocinj sa TCustom...(Label, List, ComboBox...) su iste kao i klase bez Custom samo sto sakrivaju vecinu property-a. Tako i TCustomLabel sakriva svasta i izmedju ostalog i property Caption. Da napomenem-kada neka klasa nasledjuje drugu ne moze da sakrije published property-e (one koje se vide u Object Inspector-u) i cato nam je bitno da klasa koju nalsedjujemo nema published Caption. Ala sam se raspricao ni oko cega :) Da krenemo dalje. Dakle nasa komponenta treba da prikaze sve property-e kao i TLabel osim Caption-a i to cemo sad da uradimo.

Oprostite na oduzetom prostoru i vremenu...
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
*.dynamic.sbb.rs.



+62 Profil

icon Re: Skivanje property-a13.08.2008. u 21:39 - pre 191 meseci
Ne mozes sakriti property u ObjectInspektoru, ali ga mozes uciniti nedodirljivim (bolje nego readonly).

Prvi korak:

U interface/uses klauzulu tvog komponenta dodati unite DesignEditors, DesignIntf.

Drugi korak:

Ovaj kod umetnuti u unit gde je i tvoja klasa (u interface/type deo)

Code:

  TSQLPropertyEditor = class(TPropertyEditor)
    function GetAttributes: TPropertyAttributes; override;
  end;


Treci korak:

Sledeci kod (implementacija metode) ubaciti u implementation deo tvog unita

Code:

function TSQLPropertyEditor.GetAttributes: TPropertyAttributes;
begin
  result := [paFullWidthName];
end;


Cetvrti korak:

U proceduru Register ubaciti/dodati sledeci kod (posle RegisterComponent)

Code:

  RegisterPropertyEditor(typeinfo(TStrings), TMyIBDataSet, 'SelectSQL',
                                TSQLPropertyEditor);


Napomena: TMyIBDataSet zameniti nazivom tvoje klase.

Sta se dobija ovime? Pise u help-u :) , pogledati pod TPropertyAttributes, konkretno paFullWidthName (bolje nego da ja objasnjavam).

Pozdrav

Rajko
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Skivanje property-a

[ Pregleda: 2077 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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