Ustawianie wartości komórek w TStringGrid - błąd "EAccessViolation"

0

Siemano.Tworzę tstringgrida w delphi. Mam w klasie:

 StringGrid1 : TstringGrid;

i potem na poaczatku programu mam

begin
       form3.stringgrid1.Cells[0,0]:= 'as';
       form3.stringgrid1.cells[1,0]:= 'sad';
       form3.stringgrid1.cells[2,0]:= 'ad';
       form3.stringgrid1.Cells[3,0]:= 'asd';
       form3.stringgrid1.Cells[4,0]:= 'ada';

end. 

I wywala mi błąd po odpaleniu EAccessViolation. Czemu tak się dzieje? Musze to jeszcze jakos tworzyc? Mam okreslone Colcount 5 FixedRows 1 w Object Inspector

0

Gdzie na początku, w OnCreate?
Czy StringGrid masz na innej formie?

0

Nic nie trzeba tworzyć jak masz określone ColCount ro powinno być ok a skoro nie jest to istnieje debugger będziesz wiedział gdzie(w której linii się wywala). "Na początku programu mam" - no właśnie co to znaczy na początku w OnCreate Form1 (głównej) a może jeszcze w pliku DPR w każdym razie odnosisz się do Form3 a być może Form3 jeszcze nie istnieje.

0

tzn nie mam żadnej procedury, mam Unit3. i po var mam begin te instrukcje i end.

0

Może tak po polsku bo nie wiem już co ty tworzysz wklej kod.

0
 
type
  TForm3 = class(TForm)
    StringGrid1: TStringGrid;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    BDodaj: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    procedure BDodajClick(Sender: TObject);
var
Form3: TForm3;
  temp, Curr: Wsk;
  Root: Wsk = Nil;

implementation

{$R *.dfm}

begin
  
        form3.stringgrid1.Cells[0,0]:= 'as';
       form3.stringgrid1.cells[1,0]:= 'as';
       form3.stringgrid1.cells[2,0]:= 'sa';
       form3.stringgrid1.Cells[3,0]:= 'asd';
       form3.stringgrid1.Cells[4,0]:= 'as';

end.
0

Eeee tak się nie pisze bo tak napisany kod wykona się na samym początku jeszcze przed utworzeniem Form1 a co dopiero Form3. Wstaw kod odwołujący się do StringGrid do zdarzenia OnCreate Form3 i w ogóle poczytaj jakiś kurs albo coś bo to naprawdę podstawy podstaw.

2

@andrzejbodziuzbychujarek - zacznij Ty się lepiej uczyć, bo Twój kod jest bardziej abstrakcyjny niż ktokolwiek mógłby sobie wyobrazić... Nie masz zielonego pojęcia o programowaniu w Object Pascalu, a od razu zabierasz się za aplikacje okienkowe i programowanie obiektowe; Ten wątek w ogóle nie powinien się pojawić; Weź do łapki kurs programowania i wróć tutaj jak opanujesz chiciażby podstawy języka;

I na przyszłość pamiętaj o sensownym tytule wątku, który cokolwiek powinien mówić o Twoim problemie; Następne wątki o tak beznadziejnych tytułach niestety będą lądować w koszu, ale z racji tej, że jesteś tutaj świeży - pozostawię go (i zmnienię temat wątku na sensowniejszy).

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