Dostęp do pól klasy

HA
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
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:

Kopiuj
 
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:

Kopiuj
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 :)

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0
  1. KONSTRUKTOR SIĘ NAZYWA CREATE A NIE ŻADNE STWORZWYPOZYCZENIE!!!!!!
  2. obiektu się tak nie tworzy! To są podstawy - przerób jakiś kurs najpierw
Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Wypozyczamy.StworzWypozyczenie(klient, TBid_publ.Text);

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

Kopiuj
Wypozyczamy:=TWypozyczenie.StworzWypozyczenie(klient, TBid_publ.Text);
HA
  • Rejestracja: dni
  • Ostatnio: dni
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.