Hallo, ich schreib jetzt zum ersten Mal hier im Forum, ich bräuchte dringend eure hilfe!
Ich will mit Delphi 6 ein rundenbasiertes Strategiespiel programmieren, naja es ist eine Gruppenarbeit und habe eher wenig Ahnung von Delphi
hab jetzt die aufgabe bekommen, bei nem click aufm stringgridfeld die felder farbig anzuzeigen, auf die meinetwegen der charakter bewegen kann
hab erst zur probe mit einem schritt probiert, aber wenn ich auf die erste zeile oder spalte clicke, kommt eine fehlermeldung "Im Projekt Projekt1.exe ist eine
Exception der Klasse EListError aufgetreten. Meldung: 'Listenindex überschreitet das Maximum (-1)'. Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen."
hab ich natürlich nicht verstanden
mit der letzten zeile oder spalte klappt das aber iwie prima
so sieht mein quelltext bis jetzt aus:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
const
SelColor = Clgreen;
begin
with TStringGrid(Sender), Canvas do
begin
if gdFocused in State then
exit;
If Integer(Objects[aCol,ARow]) = 1 then
Brush.Color := SelColor
else
Brush.Color := Color;
FillRect(Rect);
end;
end;
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var ACol,ARow,i,j : Integer;
begin
with TStringGrid(Sender), Canvas do
begin
MouseToCell(X,Y,ACol,ARow);
for i := 0 to StringGrid1.RowCount-1 do
StringGrid1.Rows[i].Clear();
for i:=-1 to 1 do
for j:=-1 to 1 do
begin
Objects[ACol+i,ARow] := Pointer(Integer(Objects[ACol+i,ARow]) xor 1);
Objects[ACol,ARow+j] := Pointer(Integer(Objects[ACol,ARow+j]) xor 1);
end;
end;
end;
den fehler im quelltext hab ich noch nicht gefunden, und ich hab nur paar dinge aus anderen foren kopiert und hab auch nicht alles verstanden, wär also eiq ganz nett wenn jemand von euch mir das kurz zusammenfassen würde, und ein wenig verständlich, ich habs nicht so damit
wäre euch sehr dankbar