• 4 odgovora
  • 1.726 pregleda
TDataSource i overload 24.10.2011. u 09:58 · pre 182 meseci #1
Radim nasljednika kontrole TDataSource. Kako napraviti overrload events-a OnDataChange?
pokušao sam ovako pa ne ide... ne znam kako da mu kažem da izvrši proc. DoOnDataChage.
Isto tako ne znam kako da pozovem korisničku tj. onu koja je definirana van klase.

Code:

TMyDataSource = class(TDataSource)
  private
    { Private declarations }
    fOnDataChange: TDataChangeEvent;
    ...
 published
    { Published declarations }
    property OnDataChange: TDataChangeEvent read fOnDataChange write fOnDataChange;
  end;

procedure TMyDataSource.DoOnDataChange;
begin
  ShowMessage('mjenja 2.1');
  // da li poziv može:
  if Assigned(OnDataChange) then OnDataChange;
end;


Re: TDataSource i overload 24.10.2011. u 15:01 · pre 182 meseci #2
> Radim nasljednika kontrole TDataSource. Kako napraviti overrload events-a OnDataChange?

Koliko vidim nema DoOnDataChange metoda tako da ćeš morati da handler koji korisnik postavi zameniš sa svojim koji uradi šta želiš i posle pozove korisnikov handler.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: TDataSource i overload 24.10.2011. u 15:41 · pre 182 meseci #3
Obviously je to, ali meni se ne izvršava moja metoda koju definiram u klasi.
Koliko sa gledao po klasi TDataSource i njenim predhodnicima, nema metode doOn..... Kako da klasu natjeram da izvši moju meodu DoOnDataChage koju sam definirao unutar nje (na listingu post prije)?

Nisam kopirau u listing, njena delkaracija postoji u klasi i Delphi uredno prevede kod.

Nisam naposao: koristim D2007

Molim ako mi možete pomoći što prije, zapeo sam na tom dijelu. Ako ne uspjem ugurati kod u novu kontrolu koja će nasljediti TDataSource, morat ću kreirati posbenu klasu, a to mi nije najelegantije rješenje. Radi, ali...
Re: TDataSource i overload 25.10.2011. u 08:42 · pre 182 meseci #4
Lepo ti savkic rekao, ali evo jos mala pomoc:

Code:

  TMyDataSource = class(TDataSource)
  private
    { Private declarations }
    fUserDataChange: TDataChangeEvent;
    fMyDataChange: TDataChangeEvent;
    ...
  public
    procedure Loaded; override;
  published
    { Published declarations }
    property OnDataChange: TDataChangeEvent read fOnDataChange write fUserDataChange;
  end;


Sve sto sad treba da uradis je da u metodi Loaded podmetnes TVOJ handler, u kojem proveravas da li je dodeljen USER handler, i ako jeste izvrsavas ga. Prakticno, kod koji si napisao u Doxxx metodi...

Pozz
Re: TDataSource i overload 25.10.2011. u 13:54 · pre 182 meseci #5
Uspio riješiti, zahvaljujem na pomoći :)

Što sve ne radimo za korisnika... žele upis/izmjenu naopako: najpije se unesu podaci u obične TEdit kontrole, a onda se kaže "upiši". Sada mjenjam tDtaSource tako da to njemu kažem: koje kontrole koristi za prikaz, koje za update/append itd. (a moglo je sve jednostavnije...)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme