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

Vlasnik procedure ili pozivanje procedura sa drugih formi

[es] :: Pascal / Delphi / Kylix :: Vlasnik procedure ili pozivanje procedura sa drugih formi

[ Pregleda: 2531 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
195.178.63.*

ICQ: 101830817


+314 Profil

icon Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 09:34 - pre 187 meseci
hmm, imam mali problem.
2 forme sa slicnom funkcionalnoscu.
funkcija za obradu na formi b kojoj je jedan od parametara referencirana labela.

Code:

function proveri_status(akcija:String; var stLabela:tlabel):integer;
   begin
      querry1.param....


procedura vrsi obradu i ispisuje rezultate na labeli stLabela.

e sad, kad pozovem sa forme b, to sve fercera, ali kad se pozove sa forme a, onda funkcija ne vidi objekte (kverije) sa forme b koje koristi u obradi

jel moze neka ideja?
"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 10:14 - pre 187 meseci
> function proveri_status(akcija:String; var stLabela:tlabel):integer;

Ne treba ti var kod drugog parametra.

> e sad, kad pozovem sa forme b, to sve fercera, ali kad se pozove sa forme a, onda funkcija ne vidi objekte (kverije) sa forme b koje koristi u obradi

Šta znači ne vidi i da li je ta funkcija metoda (pripada formi) ili obična funkcija?
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
195.178.63.*

ICQ: 101830817


+314 Profil

icon Re: Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 10:35 - pre 187 meseci
hmm, var sam ubacio jer referenciram labelu sa forme a.

a unutar funkcije se vrse provere preko TQuery objekata i nekih promenjivih deklarisanih unutar funkcije. pretpostavio sam da je problem sa vidljivoscu, te kad prebacim deklaraciju funkcije <proveri_status> u public segment, onda za query u debugu prijavljuje inaccessible value.
"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 12:12 - pre 187 meseci
> hmm, var sam ubacio jer referenciram labelu sa forme a.

var je neophodno ako menjaš sadržaj same promenljive npr ALabel := nil;

> a unutar funkcije se vrse provere preko TQuery objekata i nekih promenjivih deklarisanih unutar funkcije. pretpostavio sam da je problem
> sa vidljivoscu, te kad prebacim deklaraciju funkcije <proveri_status> u public segment, onda za query u debugu prijavljuje inaccessible value.

Moraš napisati više informacija, pokaži kod funkcije i kako je pozivaš, zatim gde i koja se tačno greška javlja.
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
195.178.63.*

ICQ: 101830817


+314 Profil

icon Re: Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 12:40 - pre 187 meseci
ok,

Code:
Forma B:

//deklaracija
type
  ...
    qProvera_JMBG: TQuery;
    lblStatus: TLabel;
   ...
   private
   ....
    { Private declarations }
   public
    function UserCheck(JMBG_Korisnika:String; var Statusna_Labela:tlabel):Byte;
...

    { Public declarations }
  end;

function TPristupnice.UserCheck(JMBG_Korisnika:String; var Statusna_Labela:tlabel):Byte;
   var mrez:string;
 
BEgin
   
   qProvera_JMBG.parambyname('JMBG').asstring := JMBG_Korisnika;
   qProvera_JMBG.open;
   mrez:= qProvera_JMBG.FieldByName('userid').AsString ;
   qProvera_JMBG.Close;
   if mrez <>'' then
      begin
         Statusna_Labela.Caption := 'Korisnik je ... ' + mrez;
         Statusna_Labela.Color:= clLime;
         result:=1;
      end
    else
         result:=0;

End;


Code:
 poziv iz forme a:

implementation
uses Pristupnicef;
...
 if Pristupnice.UserCheck(jmbg.text, lblstatus) = 0  then
         begin
            lblStatus.caption:='Korisnik nije ...';
            lblStatus.Color:= clRed;
         end



u biti procedura UserCheck mi i menja sadrzaj status labele na formi a, zato mi i jeste deklarisana kao var.
mislim da je ovo potrebno, jos uvek se navikavam na delfi, posle vb-a
hvala na pomoci.

U biti mogao bih da resim problem, dupliranjem koda i kontrola na obe forme, ali mi je to malo ruzno resenje, sto zbog velicine, sto zbog odrzavanja.
Ideja mi je bila da sa forme A pozivam procedure iz forme B sa referenciranjem kontrola na formi A za ispis rezultata.
"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
195.178.63.*

ICQ: 101830817


+314 Profil

icon Re: Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 13:19 - pre 187 meseci
ehm poruka greske ...
Project ....exe raised exception class EAccessViolation with message 'Access violation at adress 005D10CD in module '....exe'. Read of adress 000003E0'. Process stopped ...

a u debugu za kveri qProvera_JMBG javlja Inaccessible value
"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 13:51 - pre 187 meseci
> u biti procedura UserCheck mi i menja sadrzaj status labele na formi a, zato mi i jeste deklarisana kao var.

Menja sadržaj svojstava a ne samu promenljivu, možeš čak i deklarisati sa const i radiće (ali je bolje bez da ne bi pravilo zabunu).

> Project ....exe raised exception class EAccessViolation with message 'Access violation at adress 005D10CD in module '....exe'.
> Read of adress 000003E0'. Process stopped ...
> a u debugu za kveri qProvera_JMBG javlja Inaccessible value

Najverovatnije ti TPristupnice nije kreirana (ne postoji) u trenutku pozivanja funkcije. Ako se ta forma ne koristi stalno onda je bolje da njene funkcije koje drugi uniti programa koriste, prebaciš na drugo mesto, u unit ili posebnu klasu (koja će biti stalno aktivna), recimo se za to često koristi TDataModule instanca.
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1431
195.178.63.*

ICQ: 101830817


+314 Profil

icon Re: Vlasnik procedure ili pozivanje procedura sa drugih formi20.11.2008. u 14:24 - pre 187 meseci
sjajno,
problem je celo vreme i bio zbog toga sto u tom delu nije kreirana forma B.
malo me bunilo sto u sledecem bloku koda postoji slican poziv, ali funkcija nije imala referenciranje kontrola

u svakom slucaju,
hvala savkic na utrosenom vremenu.


"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Vlasnik procedure ili pozivanje procedura sa drugih formi

[ Pregleda: 2531 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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