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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2011, 16:08   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
То есть, как я понял, в ACel и ARow хранится положение не ячейки, для которой срабатывает событие OnSelectCell, а той ячейки, которая была выбрана до этого?
не-не... с точностью до наоборот!
ACol, ARow хранятся НОВЫЕ значения (т.е. той ячейки, по которой "жмакнули" - т.е. куда будет осуществлён переход.
Но при этом текущая ячейка *(её координаты .Col и .Row ) ещё не поменялась.
Вот её мы и проверяем/форматируем.
Кстати, если написать так:
Код:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if StringGrid1.Cells[ StringGrid1.Col, StringGrid1.Row ] = '' then begin
     StringGrid1.Cells[ StringGrid1.Col, StringGrid1.Row ] := '0';
     CanSelect  := false; 
  end;
end;
то текущая ячейка,
если она пустая, заполнится нулём и ОСТАНЕТСЯ ВЫДЕЛЕННОЙ (текущей)


Цитата:
И ещё такой вопрос, связанный с ячейками StringGrid: можно ли сделать программно, чтобы для какой-то из ячеек сработал эффект, который возникает при двойном клике на ней. То есть чтоб текст подсвечивался и был готов для редактирования?
не совсем понял, что Вы хотите... опция goAlwaysShowEditor - это, случайно, не то, что Вам надо?!

или, может быть, Вам нужен просто такое ?:
Код:
  StringGrid1.SetFocus;
  StringGrid1.EditorMode:= true;
ну и посмотрите ещё, какие ещё бывают фокусы:
http://pda.delphimaster.net/?id=1214769961&n=18
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.02.2011, 17:07   #12
Diablero
Пользователь
 
Регистрация: 31.01.2011
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не-не... с точностью до наоборот!
ACol, ARow хранятся НОВЫЕ значения (т.е. той ячейки, по которой "жмакнули" - т.е. куда будет осуществлён переход.
Но при этом текущая ячейка *(её координаты .Col и .Row ) ещё не поменялась.
Вот её мы и проверяем/форматируем.
Кстати, если написать так:
Код:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if StringGrid1.Cells[ StringGrid1.Col, StringGrid1.Row ] = '' then begin
     StringGrid1.Cells[ StringGrid1.Col, StringGrid1.Row ] := '0';
     CanSelect  := false; 
  end;
end;
то текущая ячейка,
если она пустая, заполнится нулём и ОСТАНЕТСЯ ВЫДЕЛЕННОЙ (текущей)



не совсем понял, что Вы хотите... опция goAlwaysShowEditor - это, случайно, не то, что Вам надо?!

или, может быть, Вам нужен просто такое ?:
Код:
  StringGrid1.SetFocus;
  StringGrid1.EditorMode:= true;
ну и посмотрите ещё, какие ещё бывают фокусы:
http://pda.delphimaster.net/?id=1214769961&n=18
Спасибо за ценную информацию! Теперь всё встало на свои места
Diablero вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ячейка с накоплением Ольга Ларина Microsoft Office Excel 10 27.10.2018 03:04
StringGrid ячейка как активная ссылка Aleksandr69 Общие вопросы Delphi 4 31.05.2011 14:39
Двойной сигнал при окончании работы .bat программы Эллире Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 01.11.2010 12:47
Ячейка с текстом, ячейка без текста. segail Microsoft Office Excel 5 16.09.2009 21:55
Как вывести сообщение когда в столбце уже заполнена последняя ячейка StringGrid ARXangel Общие вопросы Delphi 5 18.03.2009 08:24