Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.22;
Скачать: CL | DM;

Вниз

StringGrid при нажатии на ячейку был выделенный текст   Найти похожие ветки 

 
Dmitry_177   (2007-05-17 14:46) [0]

Есть StringGrid, как сделать так что при выборе ячейки выделялась не сама полностью ячейка а только текст который там находится, т.е. так что коббудто весь этот текст выделили?

А еще как сделать так чтобы каретка не моргала? т.е. что текст нельзя редактировать?


 
{RASkov} ©   (2007-05-17 15:05) [1]

> [0] Dmitry_177   (17.05.07 14:46)

Смотри EditorMode или ShowEditor->(TCustomGrid)
Ну а по второй части вопроса HideCaret(<InplaceEdit>.Handle), а вот еще и только для чтения, тут фик знает, как проще сделать, наверное свой грид наследовать от TCustomGrid


 
Dmitry_177   (2007-05-17 19:35) [2]

EditorMode он только лишь разрешает/запрещает редактирование.. А вот как бы мне выделить весь текст?


 
{RASkov} ©   (2007-05-18 00:19) [3]

> А вот как бы мне выделить весь текст?

Попробуй плясать вот отсюда, но это не отвечает на все твои вопросы:

procedure TForm1.FormCreate(Sender: TObject);
var C, R: Integer;
begin
 StringGrid1.Options:=StringGrid1.Options+[goEditing];
 for C := 0 to StringGrid1.ColCount-1 do
  for R := 0 to StringGrid1.RowCount-1 do
   StringGrid1.Cells[C, R]:=Format("[%d,%d]", [C, R]);
end;

type TGr = class(TCustomGrid);
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
 TGr(Sender).ShowEditor;
 //TGr(Sender).InplaceEditor.SelectAll; //Выделить весь текст. В данном месте не обязательно.
 HideCaret(TGr(Sender).InplaceEditor.Handle); //И это не навсегда :) Стоит кликнуть по Fixed
end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
 Key:=#0; // >т.е. что текст нельзя редактировать?
end;

Или смени контрол(StringGrid) или пиши наследника.... А это извращение...


 
Германн ©   (2007-05-18 00:52) [4]


> А это извращение...

И в прямь извращение, согласен. И сколько сейчас на форуме подобного извращения, просто жуть берёт. То Мемо без каретки и копирования, то StringGrid.
Летнее обострение? :)


 
{RASkov} ©   (2007-05-18 03:45) [5]

> [4] Германн ©   (18.05.07 00:52)
> Летнее обострение?

ЛюдЯм поднадоело привычное(стандартное), хотят изврата.... :о) Сам удивляюсь ихим желаниям....;)
В принципе ничего удивительного не было, елиб не пытались рисовать на Мемо или вводить текст в Image с клавиатуры....(утрировано)..)


 
ЮЮ ©   (2007-05-18 10:49) [6]

>EditorMode он только лишь разрешает/запрещает редактирование.. А вот как бы мне выделить весь текст?

Это что за новое толкование поведения Грида? Изменеие EditorMode - это создание/уничтожение InplaceEdit-а, к которому, собственно, уже и следует обращвться для выделения текста:

type TStringGridAccess = class(TStringGrid);

procedure TForm1.Label1Click(Sender: TObject);
begin
 if not StringGrid1.EditorMode then
   StringGrid1.EditorMode := true;
 TStringGridAccess(StringGrid1).InplaceEditor.SelectAll
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 StringGrid1.SetFocus;
 Label1Click(nil);
end;



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

Текущий архив: 2007.07.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-1179421582
WebSQLNeederr
2007-05-17 21:06
2007.07.22
Как удалить из строки двойные ковычки (или любой другой символ)


15-1181831248
DrAndrey
2007-06-14 18:27
2007.07.22
Программисты и ХО


2-1183203762
Qzzma
2007-06-30 15:42
2007.07.22
TTreeView


6-1161301119
Святослав
2006-10-20 03:38
2007.07.22
Помогите сделать простое клиент-сервер приложение


1-1179298884
Влад
2007-05-16 11:01
2007.07.22
Проблема печати