Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringGrid событие DrawCell [D2005, XP]


Страницы:   1 2 3 4 5 6 7 8

alex810 ©   (2006-11-17 09:10:00) 

Помогите пожалуйста как мне можно вызвать процедуру DrawCell щелчком по кнопке. Я думаю так но не знаю что такое Rect: TRect

procedure TForm1.Button1Click(Sender: TObject);
begin
TForm3.StringGrid2DrawCell(StringGrid2, X, Y, ?????, gdFixed);
end
;


Сергей М.   (2006-11-17 13:41:00) [1]


> Elen ©   (17.11.06 13:27) [156]



> А що? Може комусь i треба


Да вот и прелюбопытно мне - таки кому?

Преподу оно, как выясняется, даром не надо.. Реальных юзеров сего "шедевра" тоже вроде бы не предвидится ..


Elen   (2006-11-17 13:27:00) [2]


>  Просто "щоб було"

Таки ДА. А що? Може комусь i треба.

P.S. Тупиц тут нет - есть шутники


Сергей М.   (2006-11-17 13:23:00) [3]


> Автор писал


Все это расчудесно)

Но, повторюсь, тупица я эдакий,  мне не понятно, для чеготот кто по идее должен лупиться на экран, изображающий эту программу, обязан лупиться на эти идентификаторы)

Их, эти идентификаторы, с чем употреблять-то ? Нахрена они показанытому самому "кому-то" ?) Просто "щоб було" ?)


> Жалко тут Кетмар не появился.


"Да ...уж .." (с) Киса В.


Elen   (2006-11-17 13:17:00) [4]


> афига автору "первый StringGrid",

Автор писал :
У меня есть два StringGrid в одной из который хранится идентификатор цвета  который берется из файла. В другом StringGrid необходимо по этому   идентификатору разрисовать ячейку в которой находится этот идентификатор в первом StringGrid


> Где там Суслик (С) ?)

Ха Жалко тут Кетмар не появился.


Сергей М.   (2006-11-17 13:09:00) [5]

Где там Суслик (С) ?)
Намедни он живо интересовался сей патологией ..


Сергей М.   (2006-11-17 13:06:00) [6]

А я, братцы-кролики, так и не въехал, нафига автору "первый StringGrid", показывающий пользователю какие-то там "идентификаторы" ...

Мне теперь что, на свалку истории ?)


Anatoly Podgoretsky   (2006-11-17 12:56:00) [7]

> alex810  (17.11.2006 12:26:27)  [147]

> они все равно прогу не смотрят

Наивный, смотрят, просто могут ничего не сказать, если они уже на тебя плюнули.


Anatoly Podgoretsky   (2006-11-17 12:55:00) [8]

> Плохиш  (17.11.2006 12:11:18)  [138]

Да брось, откуда
Какое же это форматирование

     begin
end
  else

и ниже

 begin
  end
   end;

Похоже отступы делались методом случайных чисел


Elen   (2006-11-17 12:37:00) [9]


> А втолковывать ничего не надо они все равно прогу не смотрят

Так нафик тебе эта лабуда на 140 постов. Нарисовал бы в Кореле форму и вставил в отчет.... Лады, надеюс на бущее понял как это делать.


> "А поршень у двигателя ваще сделан из дерева, патамуша диплом
> все равно никто не читает"

К сожелению в моем институте такая же каша.


Сергей М.   (2006-11-17 12:28:00) [10]


> втолковывать ничего не надо они все равно прогу не смотрят


Вот откуда начинается "разврат" будущих инженеров)

"А поршень у двигателя ваще сделан из дерева, патамуша диплом все равно никто не читает" (с) студенческо-дипломное


alex810   (2006-11-17 12:26:00) [11]


> Вооо. Теперь самое трудное - втолковать сие твоему преподу.
>  Держись студент... ;)

А втолковывать ничего не надо они все равно прогу не смотрят


Elen   (2006-11-17 12:24:00) [12]


> alex810

Вооо. Теперь самое трудное - втолковать сие твоему преподу. Держись студент... ;)


alex810   (2006-11-17 12:22:00) [13]

Удалено модератором


ЮЮ   (2006-11-17 12:20:00) [14]

Удалено модератором


alex810   (2006-11-17 12:19:00) [15]

УРА!!!!!!!!!!!! Получилось всем огромное спасибо. Особенно тебе Elen ты была со мной самая терпеливая.


ЮЮ   (2006-11-17 12:16:00) [16]

может код поймет лучше слов?

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Grids, StdCtrls;

type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   Button1: TButton;
   procedure FormCreate(Sender: TObject);
   procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
     Rect: TRect; State: TGridDrawState);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   FDefaulGridColors: array of array of TColor;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
 i, j: integer;
begin
 SetLength(FDefaulGridColors, StringGrid1.RowCount, StringGrid1.ColCount);
 for i := 0 to StringGrid1.RowCount - 1 do
   for j := 0 to StringGrid1.ColCount - 1 do begin
     FDefaulGridColors[i, j] := RGB(
       Round(i / (StringGrid1.RowCount - 1) * 255),
       Round(j / (StringGrid1.ColCount - 1) * 255),
       0
     );
     StringGrid1.Cells[j, i] := IntToStr((i + 1));
   end;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
 StringGrid1.Canvas.Brush.Color := FDefaulGridColors[ARow, ACol];
 StringGrid1.Canvas.FillRect(Rect);
 StringGrid1.Canvas.Font.Color := StringGrid1.Font.Color;
 StringGrid1.Canvas.TextRect(
   Rect, Rect.Left + 2, Rect.Top + 2, StringGrid1.Cells[aCol, aRow]
 );
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 // перекрасим текущую ячейку в белый
 FDefaulGridColors[StringGrid1.Row, StringGrid1.Col] := clWhite;
 StringGrid1.Invalidate;
end;

end.


ASoft   (2006-11-17 12:13:00) [17]


> Плохиш ©   (17.11.06 12:09) [137]

это у него от отчаянья
> Плохиш ©   (17.11.06 12:11) [138]

копипаст, однако


Elen   (2006-11-17 12:13:00) [18]


> ДАаааааа

Воооо. Нука запусти это :
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Grids;

type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   StringGrid2: TStringGrid;
   procedure FormCreate(Sender: TObject);
   procedure StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
     Rect: TRect; State: TGridDrawState);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 const colors : array[0..23] of TColor =
(clWhite,clBlack,clMaroon,clGreen,clOlive,clNavy,clPurple,clTeal
,clGray,clSilver,clRed,clLime,clYellow,clBlue,clFuchsia,clAqua,clMoneyGreen
,clSkyBlue,clCream,clMedGray,clActiveBorder,clActiveCaption,0,0);
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i:dword;
begin
//********* FOR ******************
Randomize;
for i :=0  to StringGrid1.RowCount-1  do
begin
StringGrid1.Cells[0,i]:=inttostr(random(23));

end;
//******* END FOR ****************
end;

procedure TForm1.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
var r:Tcolor;
begin
//*******IF********//
if (acol=1)and(StringGrid1.Cells[0,arow]<>'') then begin

 r:=integer(colors[strtoint(StringGrid1.Cells[0,arow])]);
 StringGrid2.Canvas.Brush.Color:=r;
 //StringGrid2.Canvas.Pen.Color:=r;
 StringGrid2.Canvas.FillRect(rect);
end;
//*****End If*****//

end;

end.


Мысли появляются?


alex810   (2006-11-17 12:12:00) [19]


> Так. Давай спочатку - тебе нужно проверить цифру в ячейке,
>  найти соответствующий ей цвет и отрисовать в такой же ячейке
> по позиции в другом гриде. Так?

ДАаааааа


Плохиш   (2006-11-17 12:11:00) [20]


> Плохиш ©   (17.11.06 12:07) [135]

Хотя, умеют же чукчи код форматировать :-)


Страницы:   1 2 3 4 5 6 7 8

Наверх

Титульная страница Поиск, карта сайта Написать письмо