Wątek przeniesiony 2015-04-26 17:36 z Delphi i Pascal przez furious programming.

Access violation error przy tworzeniu listy

0

Witam! Nie wiem dlaczego, ale przy użyciu tej klasy w innej klasie, gdy wywołuje

errorProvider.Create;

wywala mi błąd

Access Violation at...

i po breaku wskazuje na:

Self.controlsList := TObjectList<TControl>.Create;

Poniżej cały kod.

unit ErrorProvider;

interface

uses
  Winapi.Windows, Winapi.Messages, System.Generics.Collections , System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls;

type
  PErrorsProvider = class

  private
    controlsList: TObjectList<TControl>;
    messagesList: TStringList;
  published
    constructor Create();

 end;
implementation

  constructor PErrorsProvider.Create();
  begin
    Self.controlsList := TObjectList<TControl>.Create;
    Self.messagesList := TStringList.Create;
  end;
end.

dodanie znacznika <code class="delphi"> - @furious programming

0

jak i gdzie odwołujesz się do PErrorsProvider?

0
type
  TForm1 = class(TForm)
  ErrorProvider: PErrorsProvider;
end;
implementation

procedure TForm1.FormShow(Sender: TObject);
begin
    Self.ErrorProvider.Create;

end;

dodanie znacznika <code class="delphi"> - @furious programming

1

Nie jestem na bieżąco z nowymi rozwiązaniami, po staremu zrobiłbym tak (może tu jest problem):

Self.ErrorProvider := PErrorsProvider.Create;

Dlaczego nazwa klasy jest na P a nie na T?

dodanie znacznika <code class="delphi"> - @furious programming

0

Ok dzieki dziala :)

0

@MowMiMajkel - kłaniają się podstawy programowania obiektowego; W żadnym przypadku nie tworzy się obiektów w sposób jaki pokazałeś; Dlatego też zaglądnij do jakiegoś kursu, żeby w przyszłości nie mieć problemów podobnej wagi;

I pamiętaj, że wątki dotyczące podstaw zadajemy w dziale http://4programmers.net/Forum/Newbie, gdzie i ten wątek przenoszę.

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