Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 10:29   #1
max38934
Пользователь
 
Регистрация: 04.02.2009
Сообщений: 43
По умолчанию Работа с компонентом TStringGrid

Подскажите, как реализовать так, чтобы ячейку TStringGrid можно было скопировать в буфер(ctrl+c), но при этом не возможно редактировать эту ячейку?
max38934 вне форума Ответить с цитированием
Старый 28.05.2009, 11:05   #2
VaBank
Пользователь
 
Аватар для VaBank
 
Регистрация: 26.05.2009
Сообщений: 26
По умолчанию

в Uses формы прописываешь модуль Clipbrd
Потом на событии KeyDown компонента TStringGrid пишешь следующее:
Код:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (ssCtrl in Shift) and (key = 67) then
  Clipboard.AsText:=StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row];
end;
ssCtrl - это клавиша Ctrl, еще есть ssShift и ssAlt
67 - код клавиши С, коды клавишь можешь посмотреть на моем портале

Теперь достаточно просто выделить ячейку и нажать комбинацию Ctrl+C и данные будут в буфере обмена Windows
VaBank вне форума Ответить с цитированием
Старый 28.05.2009, 11:11   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от max38934 Посмотреть сообщение
но при этом невозможно редактировать эту ячейку?
По умолчанию в опциях стоит goEditing:=False;
mihali4 вне форума Ответить с цитированием
Старый 28.05.2009, 11:27   #4
VaBank
Пользователь
 
Аватар для VaBank
 
Регистрация: 26.05.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
По умолчанию в опциях стоит goEditing:=False;
Ну верно. Он и задал вопрос, как скопировать данные в буфер при goEditing:=False.
VaBank вне форума Ответить с цитированием
Старый 28.05.2009, 12:22   #5
max38934
Пользователь
 
Регистрация: 04.02.2009
Сообщений: 43
По умолчанию

Спасибо !!!!
Еще вопрос :
Имеется ли ф-я, которая бы сразу очистила все ячейки?
max38934 вне форума Ответить с цитированием
Старый 28.05.2009, 13:05   #6
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
Имеется ли ф-я, которая бы сразу очистила все ячейки?
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var ,i,j:integer;
begin
for i:=0 to (StringGrid1.RowCount-1) do
for j:=0 to (StringGrid1.ColCount-1) do
StringGrid1.Cells[i,j]:='';
end;
S@fer вне форума Ответить с цитированием
Старый 28.05.2009, 13:27   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не припомню такой.
впрочем всегда можно в цикле пройти по строкам и визвать StringGrid.Rows[i].clear
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с компонентом Aндрей Помощь студентам 2 13.05.2009 15:30
Работа с компонентом Chart KuevProger Компоненты Delphi 13 05.05.2009 15:57
Работа с динамичексим компонентом Sveta22 Помощь студентам 15 14.11.2008 17:26
Поделитесь компонентом Михаил Юрьевич Компоненты Delphi 2 27.04.2008 10:52
Работа с компонентом StringGrid! Abbatik Помощь студентам 2 24.11.2007 17:20