Korrekt kode?

Tags:    delphi

hey umiddelbart fungerer denne kode fint:

Vandret:=StringGrid1.Col;
Lodret:=StringGrid1.Row;

Pip:= True;
if length(stringgrid1.cells[vandret,lodret])=2 then exit;
if stringgrid1.cells[vandret,lodret]='' then
begin
for i:=0 to 9 do
if (StringGrid1.Cells[Vandret,i]=TalEdit.Text) or
(StringGrid1.Cells[i,Lodret]=TalEdit.Text) then Pip:=False;
if not Pip then showmessage('Tallet eksisterer allerede i denne række/kolonne!') else
stringgrid1.Cells[vandret,lodret]:=taledit.Text;

men jeg vil gerne have den til kun at tjekke det første tegn i cellen.

burde man så ikke bare kunne skrive

StringGrid1.Cells[Vandret,i] [1]=TalEdit.Text ved både vandret og lodret? jeg kan godt køre programmet, men jeg får en advarsel når begynder at klikke i stringgridden.



1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
hey umiddelbart fungerer denne kode fint:

Vandret:=StringGrid1.Col;
Lodret:=StringGrid1.Row;

Pip:= True;
if length(stringgrid1.cells[vandret,lodret])=2 then exit;
if stringgrid1.cells[vandret,lodret]='' then
begin
for i:=0 to 9 do
if (StringGrid1.Cells[Vandret,i]=TalEdit.Text) or
(StringGrid1.Cells[i,Lodret]=TalEdit.Text) then Pip:=False;
if not Pip then showmessage('Tallet eksisterer allerede i denne række/kolonne!') else
stringgrid1.Cells[vandret,lodret]:=taledit.Text;

men jeg vil gerne have den til kun at tjekke det første tegn i cellen.

burde man så ikke bare kunne skrive

StringGrid1.Cells[Vandret,i] [1]=TalEdit.Text ved både vandret og lodret? jeg kan godt køre programmet, men jeg får en advarsel når begynder at klikke i stringgridden.


Du kunne evt. prøve at loade cellen ind i en string først:
String := Grid1.Cells[Vandret,i];

og så dernæst tjekke stringens første tegn:
if String[1] = TalEdit.Txt;

Hvis ikke dette virker må du lige skrive hvad den advarsel eller fejl du får den siger.

Mvh.
Rune Jensen



t