unit AnalyFormAnalyseMenu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Math;
type
TFormAnalyseMenu =
class(TForm)
bgImage: TImage;
procedure FormCreate(Sender: TObject);
procedure WMNCHitTest(
var Message: TWMNCHitTest);
message WM_NCHITTEST;
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAnalyseMenu: TFormAnalyseMenu;
bg:
array of TBitmap;
farbeFormBG, imageBG, bildindex: integer;
implementation
{$R *.dfm}
procedure TFormAnalyseMenu.FormCreate(Sender: TObject);
var i: integer;
begin
SetLength(bg, 6);
// Wichtige Variablen festlegen
for i := 0
To 5
do
begin
bg[i]:=TBitmap.Create;
bg[i].LoadFromFile('
images\AnalysewerkzeugeBMPS\menu' + IntToStr(i) + '
.bmp');
end;
bgImage.Picture.Bitmap.Assign(bg[0]);
FarbeFormBG :=
RGB(181, 205, 229);
imageBG :=
RGB(191, 215, 239);
end;
procedure TFormAnalyseMenu.WMNCHitTest(
var Message: TWMNCHitTest);
begin
with Message do
begin
// Wenn der Mauszeiger in diesem Bereich das Form zu verschieben versucht funktioniert es; an anderen
if PtInRect(Rect(0, 0, FormAnalyseMenu.Width-40, 30), Point((XPos - FormAnalyseMenu.Left), (YPos - FormAnalyseMenu.Top)))
then
begin
Message.Result := htCaption;
end
else
begin
inherited;
end;
end
end;
procedure TFormAnalyseMenu.FormMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
bildindex := 0;
FormAnalyseMenu.Cursor := crDefault;
if PtInRect(Rect(0, 0, FormAnalyseMenu.Width, 30), Point((Mouse.CursorPos.X - FormAnalyseMenu.Left), (Mouse.CursorPos.Y - FormAnalyseMenu.Top)))
Then FormAnalyseMenu.Cursor := crHandPoint;
if PtInRect(Rect(26, 47, 272, 247), Point((Mouse.CursorPos.X - FormAnalyseMenu.Left), (Mouse.CursorPos.Y - FormAnalyseMenu.Top)))
Then
begin
bildindex := Floor((Y-47)/40)+1;
FormAnalyseMenu.Cursor := crHandPoint;
//bgImage.Picture.Bitmap.Assign(bg[bildindex]); // Wenn ich diese Zeile mit hineinnehme kompiliert es
// es scheint dann aber in die gesamte Prozedur "MouseMove" nicht mehr hineinzuspringen!
end;
end;
procedure TFormAnalyseMenu.FormClick(Sender: TObject);
begin
//Schließen bzw. Minimieren bei Klick auf die richtige Region
if PtInRect(Rect(FormAnalyseMenu.Width-39, 0, FormAnalyseMenu.Width, 30), Point(Mouse.CursorPos.X-FormAnalyseMenu.Left, Mouse.CursorPos.Y-FormAnalyseMenu.Top))
Then FormAnalyseMenu.Close;
end;
end.