Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> background на форме 
:(
    Опции темы
Grig
Дата 18.5.2005, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: нет
Всего: 16



А вот интересно есть ли в Дельфи подобие html-команды background??
То есть возможно ли легко и просто замостить форму каким-нибудь рисунком?
Или для этого тоже надо процедуру писать..




--------------------
        
PM MAIL ICQ   Вверх
<Spawn>
Дата 18.5.2005, 04:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Самый простой вариант для тебя будет таким: кидаешь на форму TImage, свойство Align ставишь в alClient, Stretch в True и используешь затем любую картинку(но лучше не очень тяжелую smile ) Если же тебе нужно размножить какой то рисунок по всей поверхности формы, то кидай на форму TPaintBox, ставь Align в alClient и затем пиши этот код:

Код

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure PaintBox1Paint(Sender: TObject);
  private
    FBitmap: TBitmap;
  public
  end;

implemetation

procedure TForm1.FormCreate(Sender: TObject);
begin
  FBitmap := TBitmap.Create;
  FBitmap.LoadFromFile('image.bmp');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeAndNil(FBitmap);
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  xCount, yCount, x, y,
  ClipWidth, ClipHeight: integer;
begin
  with PaintBox1 do
  begin
    xCount := Width div FBitmap.Width;
    yCount := Height div FBitmap.Height;
  
    for x := 0 to xCount - 1 do
      for y := 0 to yCount - 1 do
        BitBlt(Canvas.Handle, x * FBitmap.Width, y * FBitmap.Height,
          FBitmap.Width, FBitmap.Height, FBitmap.Canvas.Handle, 0, 0, SRCCOPY);

    ClipWidth := Width - xCount * FBitmap.Width;
    ClipHeight := Height - yCount * FBitmap.Height;

    if ClipHeight > 0 then
      for x := 0 to xCount - 1 do
        BitBlt(Canvas.Handle, x * FBitmap.Width, yCount * FBitmap.Height,
          FBitmap.Width, ClipHeight, FBitmap.Canvas.Handle, 0, 0, SRCCOPY);

    if ClipWidth > 0 then
      for y := 0 to yCount - 1 do
        BitBlt(Canvas.Handle, xCount * FBitmap.Width, y * FBitmap.Height,
          ClipWidth, FBitmap.Height, FBitmap.Canvas.Handle, 0, 0, SRCCOPY);

    if (ClipHeight > 0) and (ClipWidth > 0) then
      BitBlt(Canvas.Handle, xCount * FBitmap.Width, yCount * FBitmap.Height,
        ClipWidth, ClipHeight, FBitmap.Canvas.Handle, 0, 0, SRCCOPY);
  end;
end;



При желании можно провести небольшую оптимизацию, например, вычислять xCount, yCount при изменении размеров формы и т.д. Если будет мерцать то в OnCreate формы поставть DoubleBuffered := True

Это сообщение отредактировал(а) <Spawn> - 18.5.2005, 16:42


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Grig
Дата 18.5.2005, 05:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: нет
Всего: 16



Я так и думал.
Просто в проекте до кучи таких вот мелочей, и если на каждую писать по процедуре, там потом черт ногу сломит smile


--------------------
        
PM MAIL ICQ   Вверх
s-mike
Дата 18.5.2005, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 9
Всего: 16



Grig, для помещение на форму фонового рисунка есть множество специальных компонентов, где все это делается или одной-двумя строками кода или в дизайн-тайм несколькими кликами.
PM MAIL WWW   Вверх
Grig
Дата 18.5.2005, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: нет
Всего: 16



s-mike Это стандартные компоненты?
Может присоветуешь чего-нибудь?


--------------------
        
PM MAIL ICQ   Вверх
s-mike
Дата 18.5.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 9
Всего: 16



Цитата(Grig @ 18.5.2005, 11:16)
Это стандартные компоненты?
Может присоветуешь чего-нибудь?

Нет, стандартных таких нет. Ну, например, мои: http://forum.vingrad.ru/index.php?showtopi...ndpost&p=376437

А также JvBackground из состава JEDI VCL.
PM MAIL WWW   Вверх
Medved
Дата 18.5.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



в LDM-Tools хорошие (и самое главное быстрые!) компоненты такого рода. А JEDI тормозит сильно.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
s-mike
Дата 18.5.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 9
Всего: 16



Цитата(Pegas @ 18.5.2005, 12:09)
LDM-Tools

Кажется LMD-Tools.
Цитата(Pegas @ 18.5.2005, 12:09)
А JEDI тормозит сильно.

Не замечал. Во всяком случае в последней версии. Но зато с открытым и бесплатным исходным кодом.
PM MAIL WWW   Вверх
Medved
Дата 18.5.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(s @ 18.5.2005, 15:11)
Кажется LMD-Tools.

Да, сорри, перепутал.... (А ведь смотрел как пишутся, все равно ошибся! smile)
Добавлено @ 12:18
Цитата(s @ 18.5.2005, 15:11)
Не замечал. Во всяком случае в последней версии. Но зато с открытым и бесплатным исходным кодом.

Ну это уже видимо кому-как. Я просто предпочитаю в таких случаях использовать LMD.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
~FoX~
Дата 18.5.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



А я в таких случаях по onPaint формы рисую что надо.........и без VCL и точно знаю. что, где и когда. smile smile


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.