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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2013, 19:34   #1
kalugin19
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 26
По умолчанию Кинозал

Здравствуйте, подскажите, реально ли создать такую модель зала кинотеатра и сделать так, чтобы забронированные места (считываемые из файла) полностью закрашивались каким либо цветомзал.jpg
kalugin19 вне форума Ответить с цитированием
Старый 24.11.2013, 19:50   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Думаю, можно использовать StringGrid, и закрашивать его ячейки.
type_Oleg вне форума Ответить с цитированием
Старый 24.11.2013, 19:57   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно. Примерно так:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    DrawGrid1: TDrawGrid;
    procedure DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
      aRect: TRect; aState: TGridDrawState);
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  with DrawGrid1 do begin
    Align:=alClient;
    RowCount:=15;
    ColCount:=28;
    DefaultColWidth:=Width div ColCount;
    DefaultRowHeight:=Height div RowCount;
    FixedCols:=0;
    FixedRows:=0;
  end;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  with DrawGrid1 do begin
    DefaultColWidth:=Width div ColCount;
    DefaultRowHeight:=Height div RowCount;
  end;
end;

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
  aRect: TRect; aState: TGridDrawState);
begin
  with TStringGrid(sender).Canvas do begin
   if aRow=0 then Brush.Color:=clYellow else
     if (aRow>0) and (aRow<14) then Brush.Color:=clGreen else
       if aRow>13 then Brush.Color:=clBlue;
   if (aRow>0)and(aRow<8)and(aCol>7)and(aCol<23) then Brush.Color:=clGray;
   FillRect(aRect);
  end;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2013, 22:21   #4
kalugin19
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 26
По умолчанию

почему то у меня пустое окно запускается

я делаю в lazarus

Последний раз редактировалось Stilet; 25.11.2013 в 13:36.
kalugin19 вне форума Ответить с цитированием
Старый 25.11.2013, 09:30   #5
igh0st
Форумчанин
 
Аватар для igh0st
 
Регистрация: 05.07.2010
Сообщений: 136
По умолчанию

Можно выложить все места Panel и их красить в зависимости от условий. 1 место - 1 Panel.
igh0st вне форума Ответить с цитированием
Старый 25.11.2013, 13:36   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я делаю в lazarus
Аналогично. Научись сначала привязывать код к событиям потом окно будет рисоваться. Не зная этого дальше нет смысла практиковать. Я тебе просто дал предполагаемый код стратегии, а как ты им распорядишься дело твое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двухмерный массив (кинозал) fudzy79 Помощь студентам 3 10.04.2008 00:07