Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Вниз

Подскажите Grid?   Найти похожие ветки 

 
jjiura   (2003-07-09 23:22) [0]

Нужна сетка,аналогичная stringGrid,но чтобы в ней можно было выделять другим цветом ячейки и цвет шрифта.
Можно ,конечно использовать и StringGrid но данный компонент неккоректно срабатывает с закраской,если начать пользоваться в нем встроенными scroolbar-ами (когда вся сетка сразу не помещается).Подскажите пожалуйста новый grid или что я делаю не верно.Если можно вышлите мне на ящик jiura@rambler.ru -а то программа валится!


 
Makhanev A.S.   (2003-07-10 00:04) [1]

На torry.net куча всего есть.
А можно про "некорректность" поподробнее?
Исходники поглядеть бы...


 
jjiura   (2003-07-10 00:28) [2]

StringGrid-это стандартный компонент Delphi ( во всяком случае 6 и 7 точно)-находится на вкладке Additional.Я пробовал закрашивать в ней ячейку через OnDrawCell.Пусть таблица имеет 100 строк и 100 колонок и через этот метод я закрашиваю 1 ячейку,тогда появяться ползунки таблицы.Если нажать на любой из них,то таблица переместиться и закрашенной станет уже неккоторая область.Вот в этом проблема.
Я делал по алгоритму с сайта исходники.ру:

1. StringGrid
=============
Для раскрашивания будем использовать событие "OnDrawCell". Следующий код показывает, как сделать в Grid красный бэкраунд. Бэкграунд второй колонки будет зелёным.


procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

Const //сдесь определяем Ваш цвет. Так же можно использовать
//цвета по умолчанию.
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);

begin

//Если ячейка получает фокус, то нам надо закрасить её другими цветами
if (gdFocused in State) then begin
StringGrid1.Canvas.Brush.Color := clBlack;
StringGrid1.Canvas.Font.Color := clWhite;
end
else //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным

if ACol = 2 //Вторая колонка будет зелёной , другие - ячейки красными
then StringGrid1.Canvas.Brush.color := clPaleGreen
else StringGrid1.canvas.brush.Color := clPaleRed;

//Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column
//Естевственно это завит от того, есть у Вас title-Row/Columns или нет.

If (ACol > 0) and (ARow>0) then
begin
//Закрашиваем бэкграунд
StringGrid1.canvas.fillRect(Rect);

//Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д..
StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
end;
end;



Если Вы захотите чтобы цвет ячеек менялся в зависимости от значения в них, то можно заменить 3 линии (if Acol = 2 ......) на что-нибуть вроде этого

if StringGrid1.Cells[ACol,ARow] = "highlight it"
then StringGrid1.Canvas.Brush.color := clPalered
else StringGrid1.canvas.brush.Color := clwhite;


 
Calm   (2003-07-10 09:10) [3]


> тогда появяться ползунки таблицы.Если нажать на любой из
> них,то таблица переместиться и закрашенной станет уже неккоторая
> область.Вот в этом проблема.

Неправильно написан обработчик OnDrawCell. Уверяю тебя, причина в этом.


 
Starkom   (2003-07-10 09:14) [4]

2 Юра: ты свой код OnDrawCell приведи. Не может там ничего глючить.


 
Makhanev A.S.   (2003-07-10 13:06) [5]


> Пусть таблица имеет 100 строк и 100 колонок и через этот
> метод я закрашиваю 1 ячейку,тогда появяться ползунки таблицы.Если
> нажать на любой из них,то таблица переместиться и закрашенной
> станет уже неккоторая область.Вот в этом проблема.

А можно другими словами, я что-то Вас совсем не понял.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-77945
3APA3A
2003-07-08 19:20
2003.07.24
Опять Excel...


6-78030
LOX
2003-05-04 15:20
2003.07.24
SMTP сервер


14-78064
Knight
2003-07-06 12:52
2003.07.24
Модем и молния...


1-77938
lex7
2003-07-10 17:13
2003.07.24
Как сделать градиент?


3-77745
AlexanderSK
2003-07-01 13:45
2003.07.24
TCP порт для InterBase-а





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский