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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.04.2011, 18:06
RAZDVATRITASHI RAZDVATRITASHI вне форума
Прохожий
 
Регистрация: 10.04.2011
Сообщения: 19
Репутация: 9
По умолчанию stringgrid

как в stringgrid определить программно цвет определенной ячейки?
Ответить с цитированием
  #2  
Старый 19.04.2011, 18:09
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

StringGrid1.Color !
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 19.04.2011, 18:33
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

При условии если размер таблицы будет 1х1
Ответить с цитированием
  #4  
Старый 19.04.2011, 18:35
RAZDVATRITASHI RAZDVATRITASHI вне форума
Прохожий
 
Регистрация: 10.04.2011
Сообщения: 19
Репутация: 9
По умолчанию

тут оно по ходу проверяет, есть ли вообще среди всех ячеек стринггрида ячейки такого цвета. а нужно проверить именно конкретную ячейку [i,j]
Ответить с цитированием
  #5  
Старый 19.04.2011, 18:47
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

RAZDVATRITASHI небольшой советик!
СтрингГрид, как и большинство визуальных компонентов предназначены для отображения данных, на основе их внешнего вида не находятся и не анализируются данные, а на оборот внешний должен строится и на основе этих данных. В твоем случае ты хочешь найти цвет какой-то ячейки по какому-нибудь волшебному свойству. Это глупо и не правильно. Создай в памяти двумерный массив. в него в зависимости от ситуации заноси значение цвета.. этот массив можно легко анализировать и на его основе уже изменять внешний вид
Ответить с цитированием
  #6  
Старый 19.04.2011, 18:50
RAZDVATRITASHI RAZDVATRITASHI вне форума
Прохожий
 
Регистрация: 10.04.2011
Сообщения: 19
Репутация: 9
По умолчанию

спасибо,просто думал что есть какое-то отдельное свойство, но видимо, массив единственный вариант
Ответить с цитированием
  #7  
Старый 19.04.2011, 18:53
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от RAZDVATRITASHI
спасибо,просто думал что есть какое-то отдельное свойство, но видимо, массив единственный вариант
да если бы даже и было, просто это очень Ху*вый тон программирования
Ответить с цитированием
  #8  
Старый 19.04.2011, 18:55
RAZDVATRITASHI RAZDVATRITASHI вне форума
Прохожий
 
Регистрация: 10.04.2011
Сообщения: 19
Репутация: 9
По умолчанию

хм, как раз по-моему описание лишнего массива - это нерациональное использование памяти компьютера и снижение быстродействия программы, если мне в программе это нужно будет только в 2-х операторах if
Ответить с цитированием
  #9  
Старый 19.04.2011, 19:00
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

ну знаешь.... работа через свойства это-не есть очень быстро.... а иногда на быстродействие сказывается в разы
Ответить с цитированием
  #10  
Старый 19.04.2011, 19:27
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

какой массив? вы куда вообще? по умолчанию (StringGrid1.DefaultDrawing == True) цвет ячейки может быть либо clWindow (StringGrid1.Color) для не фиксированых ячеек (определяются через StringGrid1.FixedCols и StringGrid1.FixedRows), либо clBtnFace (StringGrid1.FixedColor) для фиксированых ячеек!!!
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #11  
Старый 19.04.2011, 19:37
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от NumLock
какой массив? вы куда вообще? по умолчанию (StringGrid1.DefaultDrawing == True) цвет ячейки может быть либо clWindow (StringGrid1.Color) для не фиксированых ячеек (определяются через StringGrid1.FixedCols и StringGrid1.FixedRows), либо clBtnFace (StringGrid1.FixedColor) для фиксированых ячеек!!!

постой, суть вопроса в том, что нужно определить цвет какой-то ячейки. а не всей сетки...
Ответить с цитированием
  #12  
Старый 19.04.2011, 19:41
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну так я и говорю, что при StringGrid1.DefaultDrawing == True цвет всех ячеек одинаковый (Fixed == StringGrid1.FixedColor и !Fixed == StringGrid1.Color). если идет ручная отрисовка грида, то о чем тут можно вообще спрашивать?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #13  
Старый 19.04.2011, 19:54
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от NumLock
ну так я и говорю, что при StringGrid1.DefaultDrawing == True цвет всех ячеек одинаковый (Fixed == StringGrid1.FixedColor и !Fixed == StringGrid1.Color). если идет ручная отрисовка грида, то о чем тут можно вообще спрашивать?
Я про это и говорю, что ни как нельзя узнать по какому-то свойству цвет определенной ячейки, и написал в самом начале, что это можно сделать если ячейка будет одна а не сто пятьдесят миллионов штук.
И автору намекнул, что он идет не по тому пути... т.к. старается на основе внешних данных что то сделать.... и Было бы глупо, если бы например все анализировали какую-нибудь базу данных(на программном уровне) только на внешнем виде DBGrid-а.. легче проанализировать по самой таблице... неком источнике данных, вот тут речь и пошла о массивах
Ответить с цитированием
  #14  
Старый 20.04.2011, 01:15
Аватар для ryderx34
ryderx34 ryderx34 вне форума
Активный
 
Регистрация: 22.01.2010
Сообщения: 211
Версия Delphi: 7, 2010
Репутация: 1349
По умолчанию

Цитата:
Сообщение от RAZDVATRITASHI
описание лишнего массива - это нерациональное использование памяти
можно использовать Cols[].Objects (или Rows[].Objects)
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter