Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» DrawGrid - заливка ячеек (Builder) ?

Автор: Storm
Дата сообщения: 23.10.2003 22:30
Люди, подскажите пожалуйста как, например по клику кнопки заливать конкретнкю ячейку определённым цветом.
Заранее благодарен.
Автор: ShIvADeSt
Дата сообщения: 23.10.2003 23:50
Была уже такая тема (в смысле по содержанию) надо обрабатывать событие OnDraw... что то там и в нем по Canvas рисовать. Подробнее используй фильтр и найди уже готовый ответ (или в хелпе он там тоже есть)
Автор: Storm
Дата сообщения: 24.10.2003 17:43
Тема то-была ... вот эта http://forum.ru-board.com/topic.cgi?forum=33&topic=1468#1
Только мой вопрос в том как зальть ячейку DrawGrid цветом по клику кнопки, т.е. по событию TForm1::AddButtonClick(TObject *Sender) ...
Вопрос остаётся открытым.
Коллеги программисты отзавитесь!
Автор: ShIvADeSt
Дата сообщения: 25.10.2003 02:24
А что не судьба по клику установить например DrawGridVar=1 а потом послать ему сообщение Repaint. И он как миленький посмотрит значение если 1 то закрашиваем кауюто ячейку иначе нет. Если опять не понятно пиши дам готовый пример.
Автор: Storm
Дата сообщения: 25.10.2003 22:20
ShIvADeSt

Если покажешь пример - скажу огромное спасибо. Я может неточно описал вопрос, но каждое нажатие кнопки ячейки должны заливаться разные.
Автор: ShIvADeSt
Дата сообщения: 26.10.2003 23:51
Вот пример работы.

Цитата:


procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
Cx:=Random(DrawGrid1.ColCount);
Cy:=Random(DrawGrid1.RowCount);
DrawGrid1.Repaint;
end;

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with Sender as TDrawGrid do begin
if (ACol=Cx) and (ARow=Cy) then begin
Canvas.Brush.Color := clBackGround;
Canvas.FillRect(Rect);
end;
end;
end;


Если тебе надо чтобы уже залитые ячейки не стирались а оставались залитыми то добавляй координаты в массив и потом в цикле перебирай ( B OnDrawCell). Надеюсь, что теперь все понятно .
Автор: Storm
Дата сообщения: 28.10.2003 22:57
Да мне всё понятно, но Delphi ругается во - первых:

type
procedure Frame21DGridBDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

[Error] Unit1.pas(24): Undeclared identifier: 'TGridDrawState'

во-вторых:

with Sender as TDrawGrid do begin

[Error] Unit1.pas(121): Undeclared identifier: 'TDrawGrid'



Автор: ShIvADeSt
Дата сообщения: 29.10.2003 02:06

Цитата:
type

Это че за ботва (с) Гоблин (у кого то подсмотрел ). Какой к черту тип. Ты что сам свою процедуру описываешь? Короче кидай исходник на мыло shiva_destroyer@mail.ru я посмотрю.

Страницы: 1

Предыдущая тема: Отправка письма из программы на Delphi 7


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.