Dostęp do pól klasy

2011-10-17 12:38
0

Witam, piszę program w którym jest zdefiniowana klasa Wypozyczenie:

type
  TWypozyczenie = class

  private

  public
    ID_wypo, ID_klie, max : integer;
    ID_publ : string;
    datap: TDate;
    datak: TDate;
    oddane : bool;
    constructor StworzWypozyczenie(ID_kl : integer; ID_pu : string);
    overload;
    constructor StworzWypozyczenie(ID_pu : string); overload;
    procedure Wydaj();
    procedure Oddaj();

  end; 

Ma ona dwa konstruktory, jeden z nich wygląda tak:


onstructor TWypozyczenie.StworzWypozyczenie(ID_kl: integer; ID_pu: string);
begin
  id_klie := ID_kl; id_publ := ID_pu;
end;

Kiedy próbuję go wywołać z funkcji:

procedure TFormNoweWypozyczenie.BNoweWypozyczenieClick(Sender: TObject);
begin
  //(..)
  //2. Stworzenie obiektu
  Wypozyczamy.StworzWypozyczenie(klient, TBid_publ.Text);
  //(..)
end;

Podczas testowania działania funkcji wyskakuje mi błąd EAccessViolation i zaznacza się jedyna linia konstruktora.
Myślałem, że zmienne i z public i z private są dostępne dla procedur wewnętrznych obiektu, ale nawet jak przeniosłem deklaracje wszystkich pól do public, błąd nadal występuje.

Jest to moje pierwsze podejście do obiektowości od jakiegoś czasu, poza tym w Delphi programuję od niecałych 2 tygodni, więc wybaczcie jeśli popełniłem jakiś strasznie podstawowy błąd :)

Pozostało 580 znaków

2011-10-17 13:09
0
  1. KONSTRUKTOR SIĘ NAZYWA CREATE A NIE ŻADNE STWORZWYPOZYCZENIE!!!!!!
  2. obiektu się tak nie tworzy! To są podstawy - przerób jakiś kurs najpierw

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij
gdy zobaczysz w samym VCL konstruktor o nazwie np. CreateParented() to też tak wrzeszczysz? ;-) - Azarien 2011-10-17 16:13
nie ale jak zobaczę w VCLu konstruktor StworzWyporzyczenie to będzie to ostatnia moja minuta z Delphi. BTW ja wiem, że uwielbiasz poprawiać cudze programy, gdzie konstruktor to StworzWyporzyczenie itp. ale ja wolę jak kod źródłowy trzyma jakiekolwiek standardy - Misiekd 2011-10-17 16:36

Pozostało 580 znaków

2011-10-17 16:14
0

Wypozyczamy.StworzWypozyczenie(klient, TBid_publ.Text);

prawidłowa składnia wywołania konstruktora to:

Wypozyczamy:=TWypozyczenie.StworzWypozyczenie(klient, TBid_publ.Text);

Pozostało 580 znaków

2011-10-17 20:46
0

Azarien, dzięki za odpowiedź, a Misiekd nie podłamuj się moim poziomem umiejętności, jak już wspomniałem, Delphi dopiero zaczynam, więc co jakiś czas popełniam kategoryczne błędy, niestety nie wszystkie jestem w stanie rozwiązać sam i czasem muszę zrobić z siebie idiotę przed ludźmi :)
A nazwę konstruktora inną niż Create zobaczyłem właśnie w jednym z kursów Delphi, choć najwyraźniej źle zinterpretowałem to co zobaczyłem.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0