StringGrid - CursorPos
jozkan
Jak w temacie:
//SG:TStringGrid;
//SG.Options:=SG.Options+[goEditing,goAlwaysShowEditor]
procedure SetStringGridCursorPos(SG:TWinControl;cur_pos:Integer);
var
Wnd:Integer;
begin
Wnd:=GetWindow(SG.Handle,GW_CHILD);
SendMessage(Wnd,EM_SETSEL,cur_pos,cur_pos);
SG.SetFocus;
end;
function GetStringGridCursorPos(SG:TWinControl):Integer;
var
Wnd:Integer;
begin
Wnd:=GetWindow(SG.Handle,GW_CHILD);
SendMessage(Wnd,EM_GETSEL,Integer(@Result),0);
end;
Przykład wykorzystania
procedure StringGridInsertText(SG:TWinControl;tekst:string);
var
cur_pos,Col,Row:Integer;
cell_text:string;
begin
cur_pos:=GetStringGridCursorPos(SG);
Col:=(SG as TStringGrid).Col;
Row:=(SG as TStringGrid).Row;
cell_text:=(SG as TStringGrid).Cells[Col,Row];
Insert(tekst,cell_text,cur_pos+1);
(SG as TStringGrid).Cells[Col,Row]:=cell_text;
end;
Rzeczywiście, z informacji zawartych na tych stronach korzystają również początkujący programiści i dobrze byłoby dowiedzieć się czegoś więcej o tym, co tutaj znajdujemy
A może parę słów wyjaśnienia? Nie wszyscy wiedzą o co chodzi.
Ja też NIC z tego nie rozumiem :C A chiałbym...