Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2006, 17:22   #1
s3ek
 
Регистрация: 13.12.2006
Сообщений: 3
По умолчанию Может кто знает компонент-сетку для графики ?

Приветствую уважаемых =)

Может кто встречал компонент-сетку, на которой можно размещать графическую информицию ?

вот типа такой (см прикрепленный файл)

Заранее благодарен.
Протсо пишу редактор уровней для игры...
Изображения
Тип файла: jpg file.JPG (12.7 Кб, 143 просмотров)
s3ek вне форума Ответить с цитированием
Старый 13.12.2006, 18:17   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

StringGrid, но лучше DrawGrid - она для этих целей и создавалась
zetrix вне форума Ответить с цитированием
Старый 13.12.2006, 19:54   #3
s3ek
 
Регистрация: 13.12.2006
Сообщений: 3
По умолчанию

Спасибо...то что надо !)

и еще такой вопрос...как получить координаты выделенных ячеек ?

Последний раз редактировалось s3ek; 13.12.2006 в 20:13.
s3ek вне форума Ответить с цитированием
Старый 13.12.2006, 21:38   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Чтоб рисовать самому, надо прорисовывать всю сетку вручную:

DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
ACol, ARow - координаты (номера) строки, столбца
Rect - прямоугольная область ячейки - сюда и рисовать надо
State - статус ячейки (gdSelected - выделенная, gdFocused - в фокусе ввода, gdFixed - фиксированная) - проверять так If (gdSelected in State) then ...
Если в state нет ничего, то ячейка является простой.

Прорисовка вызывается для 1! ячейки, если кликать по ней мышкой, и для ВСЕЙ сетки (по ячейкам) - если форма, например, разворачивается.
zetrix вне форума Ответить с цитированием
Старый 13.12.2006, 23:35   #5
s3ek
 
Регистрация: 13.12.2006
Сообщений: 3
По умолчанию

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

вот код:

Код:
procedure TForm1.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
Col, Row: integer;
Rect: TRect;
bit: TBitmap;
fn:string;
begin

Form1.DrawGrid1.MouseToCell(X, Y, Col, Row);

// У меня несколько радиобоксов, приходится вот таким способом проверять

if radiobutton4.Checked = true then
begin
   
   form1.Caption := '4'; // это номер элемента который рисуется
   bit:= TBitmap.Create; 
   bit.LoadFromFile('wall_02.bmp');
end;

Rect:= Form1.DrawGrid1.CellRect(col, row); 
Form1.DrawGrid1.Canvas.Brush.Bitmap := bit; 
Form1.DrawGrid1.Canvas.FillRect(Rect);        
bit.Free; 
end;
когда добавляю картинку в ячейку (допустим пооска у картинки посередине) то полоска сьезжает на 5 пикселей в низ. Добавляю в другую ячейку, опять сьезжает, но уже в другом направлении.

Картинки как и ячейки 16 на 16
пробовал делать больше на 1 ячейки, всеравно такая же фигня =(

В чем может быть дело ?
s3ek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
взломать сетку....?... Аlex Свободное общение 19 27.06.2009 18:23
Может кто знает как вставить текст в чужое поле ввода Dark_Elf Win Api 4 20.08.2008 13:47
Привет. Может кто знает как поместить картинку в <TEXTAREA>? nikleb HTML и CSS 4 03.07.2008 18:48
Может кто знает? Cardagant Помощь студентам 4 04.05.2008 00:35