Pytałem o jakieś proste rozwiązania i nic (sprawdzić w StringGridzie czy kursor znajduje się na początku, czy na końcu stringu). Mam już chyba sklerozę, bo nic innego nie przychodzi mi do głowy:
procedure GdzieJestKursor(Tab:TStringGrid;var PosL,PosR:Boolean);
//PozL,PozR - przed lub za tekstem
// długosc tekstu musi byc mniejsza od szer. kolumny
var
Pos:TPoint;
s:Integer;
tekst1,tekst2:string;
begin
PosL:=False;PosR:=False;
if Tab.Cells[Tab.Col,Tab.Row]='' then
begin
PosL:=True;PosR:=True;
end
else
begin
GetCaretPos(Pos);
if Pos.X<= Tab.Canvas.TextWidth(Tab.Cells[Tab.Col,Tab.Row][1]) then
PosL:=True
else
if (Tab.Canvas.TextWidth(Tab.Cells[Tab.Col,Tab.Row])<Tab.ColWidths[Tab.Col])
and(Pos.X>=Tab.Canvas.TextWidth(Tab.Cells[Tab.Col,Tab.Row])) then
PosR:=True;
end;
end;
//jozkan, zrozum, ze stawiajac znaczniki < delphi > </ delphi> na poczatku tekstu, nie otrzymasz jednak formatowania kodu..poprawilem..-lofix