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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оформление интерфейса, не красиво получается... 
:(
    Опции темы
Мебель
Дата 5.2.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем!!!
Есть такая проблема:
Устанавливаю регионы для компонентов с помощью такой процедуры:

Код

procedure TForm1.CreateBWindow(AHWND: HWND; bitmap: TBitmap);
Var Back_Color: ColorRef;
   Wnd_Dc, Hdc_Bmp: HDC;
   Tmp_Rgn, Wnd_Rgn: HRGN;
   Width,Height, X, X0, Y: Integer;
begin
 Width := Bitmap.Width;
 Height := Bitmap.Height;
 Wnd_Dc := GetDC(AHWND);
 Hdc_Bmp := CreateCompatibleDC(Wnd_DC);
 SelectObject(Hdc_Bmp, Bitmap.Handle);
 Back_Color := GetPixel(Hdc_Bmp, 0, 0);
 Tmp_Rgn := CreateRectRgn(0, 0, 0, 0);
 Wnd_Rgn := CreateRectRgn(0, 0, 0, 0);
 x:=0;
 For y := 0 to Height - 1 Do
 begin
   While (x< Width - 1) Do
   begin
     While((GetPixel(Hdc_bmp, x, y) = Back_Color) and
     (x < Width)) do inc(x);
     If (x <> Width) Then
     begin
       X0 := X;
       While ((GetPixel(Hdc_Bmp, x, y) <> Back_Color) and (X < Width)) Do inc(x);
       Tmp_Rgn := createRectRgn(X0, Y, X, Y+1);
       CombineRgn(Wnd_Rgn, Wnd_Rgn, Tmp_Rgn, Rgn_XOR);
     end;
   end;
   X := 0;
 end;
 DeleteObject(Tmp_Rgn);
 DeleteDC(Hdc_Bmp);
 SetWindowRgn(AHWND, Wnd_Rgn, True);
 DeleteObject(Wnd_Rgn);
end;


Взываю ее так:

Код

procedure TForm1.FormCreate(Sender: TObject);
begin
 CreateBWindow(Form1.BitBtn1.Handle, Image1.Picture.Bitmap);
 CreateBWindow(Form1.BitBtn2.Handle, Image2.Picture.Bitmap);
 CreateBWindow(Form1.BitBtn3.Handle, Image3.Picture.Bitmap);
 CreateBWindow(Form1.BitBtn4.Handle, Image4.Picture.Bitmap);
 CreateBWindow(Form1.BitBtn5.Handle, Image5.Picture.Bitmap);
end;

Все получается, кнопки получают заданный регион, становятся в форме изображения
из компонента TImage.
НО!!!
кнопки при этом становятся плоскими (не трех-мерными), из-за этого они не эффектно смотряться. Как сделать так, что б они отображались на форме не так как обычные Image-изображения, а как кнопки? smile
smile smile smile
PM MAIL ICQ   Вверх
Snowy
Дата 7.2.2005, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



А вот и не получится. 3D ты обрезал.
Так что либо не обрезай, либо без 3D.
Как вариант - можешь создать свои кнопки на основе TImage.
PM MAIL   Вверх
Мебель
Дата 8.2.2005, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну а как не обрезать? Тут же назначаются регионы, вдоль которых и идет эффект 3D... smile
PM MAIL ICQ   Вверх
Snowy
Дата 9.2.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Ну так нарисуй такие кнопки, чтобы смотрелись как 3D smile
Даже специальные программы и плагины есть для рисования 3-х мерных кнопок.
Рисуешь трехмерную кнопку в двух положениях и меняешь картинку по онкликам.
Зайди на любой сайт по фотошопу, наверняка найдешь статью, как нарисовать 3-хмерную кнопку.
PM MAIL   Вверх
Мебель
Дата 9.2.2005, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Просто не догадался... smile
PM MAIL ICQ   Вверх
Vit
Дата 9.2.2005, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

Репутация: 1
Всего: 207



Перенесено из раздела Дельфи


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

FAQ раздела лежит здесь!


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

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


 




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


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

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