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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2010, 00:09   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Заставка в программе

Есть в программе форма заставки, на ней размещён Image, в нём некий рисунок в виде элипса с выступающими краями, как сделать что бы был виден только этот рисунок, без белого фона и без самой формы?
bulldog5293 вне форума Ответить с цитированием
Старый 18.07.2010, 00:11   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)форма без бордюров
2)установить прозрачный цвет форме(+сделать основной цвет формы тем самым прозрачным)
3)в Image кладем изображение и включаем Transparent(изображение Битмап)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.07.2010, 00:12   #3
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Взято из ДелфиВорд:
Код:
>> Создание непрямоугольных окон.

Данный пример наглядно показывает как можно создавать прямоугольные окна, по
картинке.

Зависимости: Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms.
Автор:       Nikolay, hapnik@mail.ru, Moscow
Copyright:   http://delphi.mastak.ru
Дата:        27 апреля 2002 г.
***************************************************** }

// Свойства окна небходимо поставить
//Borders=None
var
  regn, tmpRegn: integer; // регион окна и временный регион
  x, y: integer; // координаты пикселя
  nullClr: TColor; // «прозрачный цвет»
begin
  nullClr := image1.picture.Bitmap.Canvas.Pixels[0, 0];
  // Image1 это картинка по которой создается форма окна
  regn := CreateRectRgn(0, 0, image1.picture.Graphic.Width,
    image1.picture.Graphic.Height);
  for x := 1 to image1.picture.Graphic.Width do
    for y := 1 to image1.picture.Graphic.Height do
      if image1.picture.Bitmap.Canvas.Pixels[x - 1, y - 1] = nullClr then
      begin
        tmpRegn := CreateRectRgn(x - 1, y - 1, x, y);
        CombineRgn(regn, regn, tmpRegn, RGN_DIFF);
        DeleteObject(tmpRegn);
      end;
  SetWindowRgn(form1.handle, regn, true);
end;
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 18.07.2010, 09:07   #4
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

неудачаб вылазиит ошибка и картинку видна вместе с формой
unit Unit8;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, jpeg, pngimage;

type
TForm8 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form8: TForm8;

implementation

{$R *.dfm}

procedure TForm8.FormCreate(Sender: TObject);
var
regn, tmpRegn: integer; // регион окна и временный регион
x, y: integer; // координаты пикселя
nullClr: TColor; // «прозрачный цвет»
Gray, RGB: TBitmap;
RS: TResourceStream;
Region: HRGN;
begin
SetWindowRgn(form8.handle, regn, true);
RGB := TBitmap.Create;
Gray := TBitmap.Create;
begin
nullClr := image1.picture.Bitmap.Canvas.Pixels[0, 0];
// Image1 это картинка по которой создается форма окна
regn := CreateRectRgn(0, 0, image1.picture.Graphic.Width,
image1.picture.Graphic.Height);
for x := 1 to image1.picture.Graphic.Width do
for y := 1 to image1.picture.Graphic.Height do
if image1.picture.Bitmap.Canvas.Pixels[x - 1, y - 1] = nullClr then
begin
tmpRegn := CreateRectRgn(x - 1, y - 1, x, y);
CombineRgn(regn, regn, tmpRegn, RGN_DIFF);
DeleteObject(tmpRegn);
end;

end;

end;
bulldog5293 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заставка... maxlake1 Помощь студентам 0 20.04.2010 20:51
Графическая заставка на с++??? chuprinandr Фриланс 9 23.03.2010 23:11
Своеобразная заставка Arkady_Killer Фриланс 5 16.03.2010 19:20
Заставка Ark Общие вопросы Delphi 23 23.08.2009 01:10
Заставка к программе (C++) NoiseEP Помощь студентам 0 08.04.2009 17:24