Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Внизгде находится курсор в редактируемой ячейке 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c