Witam, otóż mam następujący problem ze StringGridem i bazą danych. Mój program to baza danych filmów. Można dodawać, usuwać, edytować wpisy. Problem się pojawia gdy nie ma nic w bazie. W przycisku usuń sam dałem radę zabezpieczyć program. O w ten sposób:
If Ile=1 Then PustaBaza Else Begin
For I:=Lista.Row To Ile-1 Do T[I]:=T[I+1];
Dec(Ile);
If Nr>Ile Then Nr:=Ile;
Odswiez(Nr);
End;
Gdzie: Ile to liczba ilość wpisów w StringGridzie a PustaBaza to procedura, w której sam wpisuję wartości. Coś takiego:
Procedure TFormaGlowna.PustaBaza;
Begin
Lista.SetFocus;
Lista.Cells[1,1]:='Baza Pusta';
Lista.Cells[2,1]:='';
Lista.Cells[3,1]:='';
Lista.Cells[4,1]:='';
Lista.Cells[5,1]:='';
Lista.Cells[6,1]:='';
Lista.Cells[7,1]:='';
End;
Całość działa mi dobrze. Usuwa poszczególne wpisy, jak zostaje jeden i chce go usunąć to zamiast niego pojawia mi się pierwszy wpis z polem "Baza Pusta". Do tego momentu jest git :D Niestety, podczas otwierania takiej pustej bazy mam już zonka. Nie wiem jak poprawnie napisać FormActivate do tej formy... Mam coś takiego:
Procedure TFormaGlowna.FormActivate(Sender: TObject);
Var
I,Nr:Integer;
Begin
Lista.Cells[0,0]:='Lp';
Lista.Cells[1,0]:='Tytuł';
Lista.Cells[2,0]:='Gatunek';
Lista.Cells[3,0]:='Rok';
Lista.Cells[4,0]:='Czas [min]';
Lista.Cells[5,0]:='Cena [zł]';
Lista.Cells[6,0]:='Język';
Lista.Cells[7,0]:='Obejrzany';
Ile:=-1;
AssignFile(Plik,'Bazy/Film.dat');
If FileExists('Bazy/Film.dat')
Then Reset(Plik)
Else Rewrite(Plik);
While Not Eof(Plik) Do Begin
Inc(Ile);
Read(Plik,T[Ile]);
End;
CloseFile(Plik);
PlikZmieniony:=False;
Odswiez(0);
End;
Oczywiście Ile to nadal ilość wpisów. Tak napisane FormActivate, doprowadza do tego, że podświetla mi pierwszą linię StringGrida, czyli nagłówki, a nie może tak być, bo nagłówki powinny być twarde. Gdy dam więcej to nie wiem jak napisać aby po odpaleniu pustej bazy wyświetliło mi tak jak podczas usuwania ostatniego elementu: Baza Pusta...
Proszę pomóżcie! Z góry dziekuję - Quindy