![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с ячейкой StringGrid
M1sT © (2006-10-28 18:28:00)Как мне осуществить переход на нужную ячейку StringGrid'а, а затем сделать текст этой ячейки выделенным/невыделенным???
ЮЮ (2006-10-30 03:50:00) [1]Кликни в третий раз в нужном месте.
Такое поведение зашиго в генофонде
procedure TCustomGrid.UpdateEdit;
procedure UpdateEditor;
begin
FInplaceCol := Col;
FInplaceRow := Row;
FInplaceEdit.UpdateContents;
if FInplaceEdit.MaxLength = -1 then FCanEditModify := False
else FCanEditModify := True;
FInplaceEdit.SelectAll;
end;
begin
Для получения нужного поведения лучше написать своего наследника :)
Или добиться нужного эффекта в обработчиках.
Например так:
type
TStringGridAccess = class(TStringGrid);
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if not StringGrid1.EditorMode then exit;
if StringGrid1.Tag = 0 then
TStringGridAccess(StringGrid1).InplaceEditor.SelLength := 0; //курсор в начале поля
// если курсор в конце поля, то так:
// TStringGridAccess(StringGrid1).InplaceEditor.SelStart :=
// Length(TStringGridAccess(StringGrid1).InplaceEditor.Text)
StringGrid1.Tag := StringGrid1.Tag + 1;
end;
procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
StringGrid1.Tag := 0;
// открывается редактор в ячейке
end;
M1sT (2006-10-28 19:30:00) [2]Перейти на нужную ячейку- значит передать ей фокус. Но не в этом проблема! При переходе на ячейку(двойным щелчком или по TAB'у) текст в ячейке становится выделенным, а мне не нужно чтобы он выделялся!!!
rar (2006-10-28 18:45:00) [3]Что значить нужную, это задать номер столбца и номер строки как в Excel и перейти?