Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.01.2007, 16:17
LobaS LobaS вне форума
Прохожий
 
Регистрация: 15.01.2007
Сообщения: 11
Репутация: 10
По умолчанию Объект button

Очень нужна помощь, заранее спасибо: пишу курсовую, навтыкал туда картинок - всё равно смотрится блекло, решил оформить как-то пооригинальнее кнопки и столкнулся с проблемой, что текст в кэпшн батона не меняет цвета - всё время чёрный, я так понимаю там нужно какую-то опцию включить, подскажите пожалуйста какую.
ЗЫ если не затруднит скажите личные идеи, как можно действительно оригинально оформить кнопки.
Ответить с цитированием
  #2  
Старый 16.01.2007, 13:47
rain917 rain917 вне форума
Прохожий
 
Регистрация: 16.01.2007
Сообщения: 8
Репутация: 10
По умолчанию

Вариант №1
Вставляешь в любое место формы компоненту TXPManifest (в 7 версии она на странице Win32). И все приложение в run-time (при запуске) под XP резко меняется.

Вариант №2
Вместо кнопок кидаешь TLabel.

пишешь:
procedure TForm1.MyMouseEnter(Sender: TObject);
begin
if Sender.ClassType = TLabel then
with Sender as Tlabel do begin
Font.Style := Font.Style + [fsBold];
Font.Color := clHotLight;
end;
end;

procedure TForm1.MyMouseLeave(Sender: TObject);
begin
if Sender.ClassType = TLabel then
with Sender as Tlabel do begin
Font.Style := Font.Style - [fsBold];
Font.Color := clWindowText;
end;
end;

незабудь добавить
TForm1 = class(
...
public
procedure MyMouseEnter(Sender: TObject);
procedure MyMouseLeave(Sender: TObject);
....
end;

А дальше для всех псевдокнопок в инспекторе объектов выставляешь
события
OnMouseEnter как MyMouseEnter
OnMouseLeave как MyMouseLeave

запускаешь, наслаждаешься.
Ответить с цитированием
  #3  
Старый 16.01.2007, 20:06
LobaS LobaS вне форума
Прохожий
 
Регистрация: 15.01.2007
Сообщения: 11
Репутация: 10
По умолчанию

Огромное спасибо Оч. класно получилось
Ответить с цитированием
  #4  
Старый 17.01.2007, 14:03
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Цитата:
Сообщение от LobaS
Очень нужна помощь, заранее спасибо: пишу курсовую, навтыкал туда картинок - всё равно смотрится блекло, решил оформить как-то пооригинальнее кнопки и столкнулся с проблемой, что текст в кэпшн батона не меняет цвета - всё время чёрный, я так понимаю там нужно какую-то опцию включить, подскажите пожалуйста какую.
ЗЫ если не затруднит скажите личные идеи, как можно действительно оригинально оформить кнопки.
А я прочитал предыдущий пост а не легче просто создать SpeedButton и там меняется и цвет текста и картинку вставить мона и ....
Ответить с цитированием
  #5  
Старый 18.01.2007, 12:12
rain917 rain917 вне форума
Прохожий
 
Регистрация: 16.01.2007
Сообщения: 8
Репутация: 10
По умолчанию

да, но так, по-студенчески. Быстро и просто.
Ответить с цитированием
  #6  
Старый 18.01.2007, 20:58
LobaS LobaS вне форума
Прохожий
 
Регистрация: 15.01.2007
Сообщения: 11
Репутация: 10
По умолчанию

Вот ещё один вопрос возник - никогда раньше не сталкивался с Drag'n'Drop, интересует обычное перетаскивание Shape по форме, причём без дропа, т.е. пользователь зажал на шейпе левую кнопку мыши и пошёл его таскать по всей форме как это оформить, причём так, чтобы топ и лефт шейпа изменялись в зависимости от того, куда юзер перетащит объект?
Ответить с цитированием
  #7  
Старый 19.01.2007, 11:12
rain917 rain917 вне форума
Прохожий
 
Регистрация: 16.01.2007
Сообщения: 8
Репутация: 10
По умолчанию

На дурака

...
Draging : boolean;
DrOffs : TPoint;
...
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Draging := True;
DrOffs.X := X;
DrOffs.Y := Y;
end;

procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Draging := False;
end;

procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Draging then begin
Shape1.Left := Shape1.Left + (X-DrOffs.X);
Shape1.Top := Shape1.Top + (Y-DrOffs.Y);
end;
end;

проверку на левую/правую клавшу добавишь сам.
Ответить с цитированием
  #8  
Старый 19.01.2007, 18:21
LobaS LobaS вне форума
Прохожий
 
Регистрация: 15.01.2007
Сообщения: 11
Репутация: 10
По умолчанию

ещё раз огромное спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025