Вниз
Скачать: CL | DM;

где находится курсор в редактируемой ячейке TStringGrid.   Найти похожие ветки 

 
pound ©   (2007-04-30 18:23) [0]

Жизненно необходимо знать, где находится курсор в редактируемой ячейке TStringGrid.
Как подсказывают «Там работает TCustomEdit» . Неправда!  TCustomEdit близко не лежал.
И задумал я вставить в эту ячейку TEdit, но там другая проблема - не показать этот TEdit.
procedure TfmMain. StringGrid1DrawCell(Sender: TObject; ACol,
 ARow: Integer; Rect: TRect; State: TGridDrawState);
var
 e: TEdit;
 R: TRect;
begin
 if (ACol=2) and (ARow=1) then
 begin //*
   with StringGrid1 do
   begin
     if Objects[2,1] = nil then
     begin
       e := TEdit.CreateParented(StringGrid1.Handle);
       Objects[ACol,ARow] := e;
     end;
   end;
   R := Rect;
   if StringGrid1.Objects[2, 1] <> nil then
   with TEdit(StringGrid1.Objects[2, 1]) do
   begin
     Height := r.Bottom - r.Top;
     Width := r.Right - r.Left;
     Left := r.Left;
     Top := r.Top;
     Show;
{
    SetFocus;
     BringToFront;
}
   end;
 end; //*
end;

Может, конечно, есть более простой способ?
Андрей.


 
{RASkov} ©   (2007-04-30 19:01) [1]

> Жизненно необходимо знать, где находится курсор в редактируемой ячейке TStringGrid.

Посмотри вот такой вариант:
procedure TForm1.Timer1Timer(Sender: TObject);
function GetSelStart: Integer;
begin
 SendMessage(Windows.GetFocus, EM_GETSEL, Longint(@Result), 0);
end;
begin
 Caption:=IntToStr(GetSelStart);
end;


 
{RASkov} ©   (2007-04-30 19:02) [2]

> [0] pound ©   (30.04.07 18:23)

Не в тот форум вопрос задал, я чет и не заметил... сорри.


 
ASoft   (2007-05-02 12:26) [3]


> pound ©   (30.04.07 18:23)

кажется, вы изобретаете велосипед.. Хотя, возможно, я не усек суть вопроса :)
Зачем TEdit?
Установите у TStringGrid.Options [goEditing] и редактируйте ячейку.. Если по условию в какой-либо ячейке редактирование запрещено, то сделайте TStringGrid.Options:= TStringGrid.Options-[goEditing]


 
Leonid Troyanovsky ©   (2007-05-02 18:32) [4]


> pound ©   (30.04.07 18:23)

> Жизненно необходимо знать, где находится курсор в редактируемой
> ячейке TStringGrid.
> Как подсказывают «Там работает TCustomEdit» . Неправда!
>  TCustomEdit близко не лежал.


Сам ты не лежал. См. в хелпе иерархию TInplaceEdit.
Кроме того, тебе была дана ссылка на вполне рабочий пример,
который показывал как можно сабклассировать оный редактор.

А сабклассировать придется, бо SetSel - невиртуальный.
Хотя, конечно, если только узнать, то можно и у InplaceEditor
спросить SelStart, SelLength.

--
Regards, LVT.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.028 c
3-1172797089
Ш-К
2007-03-02 03:58
2007.05.20
Как получить записи с единственным значением поля?


15-1177022591
rsacoder
2007-04-20 02:43
2007.05.20
Посоветуйте что-нибудь


8-1157428625
Irinka
2006-09-05 07:57
2007.05.20
Как загрузить png в Image без дополнительных компонент?


2-1178180459
lobach
2007-05-03 12:20
2007.05.20
Разделители


15-1176822673
oldman
2007-04-17 19:11
2007.05.20
Никто не знает, как там поживает соратник Билла Гейтса?




   Наверх