1 / 1 / 0
Регистрация: 21.08.2013
Сообщений: 88
|
|
1 | |
Как закрасить определённую ячейку в StringGrid01.09.2013, 11:09. Показов 4102. Ответов 14
Метки нет Все метки)
(
Как закрасить определённую ячейку черным цветом и чтобы в нее нельзя было вводить букву. Это для создания кроссворда )))
В тексте ниже закрашивается все ячейки.. Кликните здесь для просмотра всего текста
begin StringGrid1.Canvas.Brush.Color:=clRed; StringGrid1.Canvas.FillRect(Rect); StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[Acol,Arow]); end; Подскажите пожалуйста!
0
|
|
01.09.2013, 11:09 | |
Ответы с готовыми решениями:
14
Как закрасить ячейку в StringGrid? Как закрасить ячейку в StringGrid?
|
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
01.09.2013, 11:39 | 2 |
Делать закраску в событии OnDrawCell грида. Это событие перерисовки ячейки. Где-то в массиве хранить координаты ячеек, которые нужно закрасить чёрным. В событии преверять, если перерисовывается ячейка, которую нужно закрасить чёрным - выполняй. Иначе выход - сама покрасит стандартно. Вообще на форуме много тем по закраске ячеек грида.
А чтобы нельзя ячейку было выбрать и заполнять, используй событие OnSelectCell. Тоже в нём проверяй можно ли эту ячейку выбрать, и, соответственно устанавливай значение CanSelect (почитай Help по событиям компонента).
0
|
Почетный модератор
64287 / 47586 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
01.09.2013, 12:49 | 3 |
Думаю размеры не более 256х256, поэтому мне кажется 2 множества будет лучше, легче обращаться.
1
|
Почетный модератор
64287 / 47586 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
01.09.2013, 12:53 | 5 |
Не подумал...
0
|
1 / 1 / 0
Регистрация: 21.08.2013
Сообщений: 88
|
|
01.09.2013, 13:04 [ТС] | 6 |
Я подумал лучше через Edit-ы сделаю ))))) Всем спасибо!
Добавлено через 54 секунды Лучше подскажите как текст "Memo1" убрать в свойствах нет ни Caption ни Text ????
0
|
Почетный модератор
64287 / 47586 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
01.09.2013, 13:11 | 8 |
1
|
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
||||||
01.09.2013, 13:16 | 9 | |||||
Я подумал, что нужно в Design Time убрать текст из поля Memo.
Вот так можно для StringGrid-а (по исходному вопросу). Можно для каждой строки задать множество нужных ячеек.
0
|
1 / 1 / 0
Регистрация: 21.08.2013
Сообщений: 88
|
|
01.09.2013, 13:21 [ТС] | 10 |
0
|
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
||||||
01.09.2013, 13:26 | 11 | |||||
0
|
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|||||||||||
01.09.2013, 13:48 | 13 | ||||||||||
Кстати. Предполагаю, что кроссворды будут разные и, соответственно, закраска ячеек может меняться, в зависимости от загружаемого кроссворда. Для динамического изменения данных в этом массиве используй команды работы с множествами: Include.
Например, чтобы очистить множество для какой-то строки (i например):
1
|
Заблокирован
|
|
01.09.2013, 22:24 | 14 |
А зачем вообще что-то вводить?
Тут другой подход нужен. Да и таблицу надо выбросить. Не нужна она здесь. Игры делаются другими методами. Но если уж взяли таблицу... ничего вводить в неё не нужно. У вас должен быть двумерный массив игрового поля. То есть попросту условные символы означающие статус каждой клетки. Чтобы не мучатся с вводом, а игрок - существо ленивое, нужно не бегать по клеткам. что-то вводя в них. а сделать так: Игрок должен щёлкнуть на клетке с номером, то есть там, где начинается слово. А внизу. появится форма. Ну как в Поле чудес. Полоска с клетками по числу букв. Причём отображаются буквы. которые в этом слове уже есть. Вот в эту форму и вводить... Причём буквы сразу появляются на игровом поле. А можно сделать просто ввод, как в компонент edit С отображением символов на игровом поле. Но вводить... в клетки... В принципе можно и в клетки, но нужно следить за вводом и услужливо перемещать курсор на нужное поле. Но это хуже.
0
|
1 / 1 / 0
Регистрация: 21.08.2013
Сообщений: 88
|
|
02.09.2013, 20:09 [ТС] | 15 |
мне очень нравится твоя идея ))) а как ее реализовать. Если можешь помочь, хотя бы 1-2 слова для примера, плиз )))
буду очень признателен.
0
|
02.09.2013, 20:09 | |
Помогаю со студенческими работами здесь
15
Закрасить ячейку в Stringgrid с минимальным элементом
Обработать событие нажатия на определенную ячейку StringGrid Как закрасить ячейку по мере наведения в stringgrid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |