![]() |
|
#1
|
|||
|
|||
![]() Очень нужна помощь, заранее спасибо: пишу курсовую, навтыкал туда картинок - всё равно смотрится блекло, решил оформить как-то пооригинальнее кнопки и столкнулся с проблемой, что текст в кэпшн батона не меняет цвета - всё время чёрный, я так понимаю там нужно какую-то опцию включить, подскажите пожалуйста какую.
ЗЫ если не затруднит скажите личные идеи, как можно действительно оригинально оформить кнопки. |
#2
|
|||
|
|||
![]() Вариант №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
|
|||
|
|||
![]() Огромное спасибо
![]() ![]() |
#4
|
||||
|
||||
![]() Цитата:
![]() |
#5
|
|||
|
|||
![]() да, но так, по-студенчески. Быстро и просто.
|
#6
|
|||
|
|||
![]() Вот ещё один вопрос возник - никогда раньше не сталкивался с Drag'n'Drop, интересует обычное перетаскивание Shape по форме, причём без дропа, т.е. пользователь зажал на шейпе левую кнопку мыши и пошёл его таскать по всей форме
![]() |
#7
|
|||
|
|||
![]() На дурака
... 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
|
|||
|
|||
![]() ещё раз огромное спасибо!
![]() |
#9
|
|||
|
|||
![]() И снова нужен хелп
![]() Нужно создать массив объектов Image, раньше работал в VB, там насколько помню всё было просто, нужно было только index менять, а тут пробую - не получается ![]() |
#10
|
||||
|
||||
![]() TImageList (на вкладке Win32) подойдет?
THE CRACKER IS OUT THERE |
#11
|
|||
|
|||
![]() Нет, это не то
![]() |
#12
|
|||
|
|||
![]() Ну вообще-то менять картинки в TImageList можно и в RunTime. Но картинки обязательно должны быть одинакового размера.
Я бы тебе порекомендовал использовать класс TList. Это список (читай - динамический массив) указателей. В нем реализованы самые основные действия (добавить, удалить, переместить и т. д.). |
#13
|
|||
|
|||
![]() Вот только что пытался сделать вот так вот:
procedure TForm1.Button1Click(Sender: TObject); var imagesss:array[1..10] of TButton; i:integer; begin For i:=1 to 5 do begin imagesss[i].create(Self); with imagesss[i] do begin parent:=self; caption:='Кнопка'; tag:=i; top:=i*30; self.InsertControl(Imagesss[i]); end; end; end; После нажатия на кнопку выдаёт ошибку Project **** raised exception class ****.... Пробовал Trace Into - программа стопорится вот на этой строке: imagesss[i].create(Self); в чём может быть дело и как это исправить? |
#14
|
|||
|
|||
![]() Ну конечно будет ошибка. Ты пытаешься вызвать метод еще не существующего объекта. Создавать объект нужно вызовом метода класса, например:
Код:
var MyObject : TSomeClass; begin MyObject := TSomeClass.Create end; Код:
MyObject.Free |
#15
|
|||
|
|||
![]() всё работает, спасибо! вот только память не освобождается - у меня массив назван kletki, так вот, строку kletki.free не воспринимает, пишет, что ошибка в программном коде
![]() ![]() |