Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.02.2016, 16:13
Taddy23 Taddy23 вне форума
Новичок
 
Регистрация: 28.04.2009
Сообщения: 54
Репутация: 10
По умолчанию Tstringgrid и фокусы

Товарищи, помогите, пожалуйста, советом и объясните что происходит.
На всякий случай приложил скрин запущенного приложения.

Задача. Есть Tstringgrid и окошечко Tmaskedit, где вводится число. по нажатии кнопки клавиатуры в Tmaskedit, число строк в Tstringgrid меняется. это готово.
При этом, если строки, где были ячейки,заполненные значениями, убрались в результате умеьшения числа строк, то такие ячейки должны быть очищены от значений. это тоже сделано. НО! не подчищается 1 ячейка, на которой был последний ввод значения.

Я думал, что дело в фокусе последней ячейки. попробовал менять фокус принудительно на другую ячейку свойством
sg.Selection := TGridRect( Rect(x1,y1, x1,y1) ) , а потом уже зачищать значение.

Оказалось что у сетки есть что то типо 2 фокусов. выделяются они по разному (можно видеть на скрине). Белый - где был последний ввод значения, и где не получается зачистить значение,и синий -получившийся от selection.

Помогите решить проблемку и понять что к чему.Спасибо тем, кто дочитал!
Изображения
Тип файла: jpg tstringgrid1.jpg (96.7 Кбайт, 7 просмотров)
Ответить с цитированием
  #2  
Старый 28.02.2016, 23:01
Taddy23 Taddy23 вне форума
Новичок
 
Регистрация: 28.04.2009
Сообщения: 54
Репутация: 10
По умолчанию

На всякий случай, что я имею ввиду

1. делаем в сетке 5 строк
2. вводим с формы, в какой либо столбец значение '666' во все строки, начиная с первой строки заканчивая последней(например) последняя выделенная ячейка в 5ой строке
3.затем, обработчиком какого либо события подчищаем циклом все ячейки прямым указанием пустыми значениями
stringgrid.cells[x,y]:='';
4. результат: все ячейки пустые, а в 5ой строке, значение осталось. его видно и на форме и оно находится в свойстве cells сетки.

Вопрос: как его от туда убрать, не уничтожая сетку?
Ответить с цитированием
  #3  
Старый 29.02.2016, 11:41
Taddy23 Taddy23 вне форума
Новичок
 
Регистрация: 28.04.2009
Сообщения: 54
Репутация: 10
Смех

Если кому интересно, дело было в свойстве Tstringgrid.Options , значение
[goAlwaysShowEditor]

Если его убрать то, ячейка зачищается нормально. Всем спасибо
Ответить с цитированием
  #4  
Старый 01.03.2016, 17:05
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Taddy23
...Если его убрать то, ячейка зачищается нормально...
Очень хороший пример, того что не следует без особой необходимости изменять дефолтные параметры компонента
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter