|
Вопрос # 304/ вопрос открыт / |
|
Я хочу задать такой вопрос?
AlphaBlend:=tpue
AlphaBlendValue:=100
Form1 делаеться полупрозрачной, и
компоненты на ней тоже. Вопрос?
Можно сделать так что бы форма была полупрозрачной,
а компаненты на форме отображались в полном цвете.
И ещё, я сделал не стандартную кнопку(например круглую),
как мне поместить её на форму,ну и естественно дать ей
команду. Заранее благодарен.
 |
Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)
Вопрос отправлен: 10 февраля 2007, 00:51
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Роман
Здравствуйте, Толков Геннадий Викторович!По поводу прозрачности:как вариант можно сделать так-помастить на форму компонент Shape,установить Align:=alClient,Color-любой неиспользуеиый в программе,например clMaroon.У формы установить TransparentColor:=true,TransparentColorValue такой-же как и у Shape,BorderStyle:=bsNone.Компилируем - все компоненты на форме будут непрозрачными,а форма будет невидна.Также привожу код (автор Григорьев Антон)адресс сайта не помню:( ,там все откоментировано,форма будет полупрозрачной с заданым Alpha и цветом.
По поводу кнопок: если яправильно понимаю, то имеем что-то типа:
type
TMyButton=class(TCustomControl)
.....
end;
В таком случае:
var
butt:TMyButton;
...,а в createform пишем butt:=TMyButton.Create(self); и так далее, а все вещи вроде buttonclick должны быть описаны в TMyButton...
Или можно посмотреть на http://www.gigabyte.iatp.org.ua/index.html, в разделе компоненты есть EllipseButton.
Приложение: Переключить в обычный режим- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, Spin;
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Label1: TLabel;
- ColorDialog1: TColorDialog;
- SpinEdit1: TSpinEdit;
- Label2: TLabel;
- procedure FormCreate(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- procedure SpinEdit1Change(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- private
-
-
-
-
- procedure WMEraseBkgnd(var Msg:TWMEraseBkgnd);message WM_EraseBkgnd;
- procedure WMPaint(var Msg:TWMPaint);message WM_Paint;
-
-
-
- procedure WMEnterSizeMove(var Msg:TMessage);message WM_EnterSizeMove;
- procedure WMExitSizeMove(var Msg:TMessage);message WM_ExitSizeMove;
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
-
-
-
-
- implementation
-
- {$R *.DFM}
-
- type PRGBArray=^TRGBArray;
- TRGBArray=array[0..1000000] of TRGBTriple;
-
-
-
-
- procedure Delay(DelayTime:Integer);
- var TicksNow:Integer;
- begin
- TicksNow:=GetTickCount;
- repeat
- Application.ProcessMessages
- until GetTickCount-TicksNow>=DelayTime
- end;
-
-
-
-
- procedure TForm1.WMEraseBkgnd;
- begin
- Msg.Result:=1
-
-
-
-
- end;
-
- procedure TForm1.WMPaint;
-
-
-
-
-
- begin
- CW:=ClientWidth;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BitBlt(BM.Canvas.Handle,0,0,BM.Width,BM.Height,DC,0,0,SrcCopy);
-
-
- end;
-
-
-
-
-
- BM2.PixelFormat:=pf24bit;
- BM2.Canvas.Draw(-CX,-CY,BM);
-
-
- SL:=BM2.ScanLine[Y];
- for X:=0 to CW do
- begin
- SL[X].rgbtRed:=(Transparency*SL[X].rgbtRed+(100-Transparency)*GetRValue(TranspColor)) div
100;
- SL[X].rgbtGreen:=(Transparency*SL[X].rgbtGreen+(100-Transparency)*GetGValue(TranspColor)) div
100;
- SL[X].rgbtBlue:=(Transparency*SL[X].rgbtBlue+(100-Transparency)*GetBValue(TranspColor)) div
100
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- SL[X].rgbtRed:=((CH-Y)*SL[X].rgbtRed+Y*GetRValue(TranspColor)) div CH;
- SL[X].rgbtGreen:=((CH-Y)*SL[X].rgbtGreen+Y*GetGValue(TranspColor)) div CH;
- SL[X].rgbtBlue:=((CH-Y)*SL[X].rgbtBlue+Y*GetBValue(TranspColor)) div CH;
-
-
-
- }
- end
- end;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- end;
-
- procedure TForm1.WMMove;
- begin
-
- inherited
- end;
-
- procedure TForm1.WMEnterSizeMove;
- begin
- Moving:=True;
- inherited
- end;
-
- procedure TForm1.WMExitSizeMove;
- begin
- inherited;
- Moving:=False
- end;
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- BM:=TBitmap.Create;
-
-
-
-
-
-
-
-
-
- BM.PixelFormat:=pf24bit;
- BM2:=TBitmap.Create;
- Moving:=False
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if ColorDialog1.Execute then
- begin
- TranspColor:=ColorDialog1.Color;
- Invalidate
- end
- end;
-
- procedure TForm1.SpinEdit1Change(Sender: TObject);
- begin
- Transparency:=SpinEdit1.Value;
- Invalidate
- end;
-
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- BM.Free;
- BM2.Free
- end;
-
- end.
-
 |
Ответ отправил: Роман (статус: 5-ый класс)
Время отправки: 10 февраля 2007, 01:51
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 12 февраля 2007, 00:46; участников в обсуждении: 1.
|
Толков Геннадий Викторович (статус: Посетитель), 12 февраля 2007, 00:46 [#1]:
Здравствуйте.Вы мне ответили на вопрс 304, только там мне не сильно понятно со своей кнопкой,нельзя ли более подробнее.Заранее благодарен.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|