Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wenn Maus über Rechteck in Image soll Hint erscheinen (https://www.delphipraxis.net/13778-wenn-maus-ueber-rechteck-image-soll-hint-erscheinen.html)

hanse 26. Dez 2003 16:44

Re: Wenn Maus über Rechteck in Image soll Hint erscheinen
 
Zitat:

Zitat von kiar
erzeuge eine neue Komponente ,die ein rechteck zeichnet.

diese komponente kannst du so oft auf dein image plazieren wie du willst.
mache zwei neue events mit CM_MOUSEENTER und CM_MOUSELEAVE und steuere damit deinen hint.

Mouse event sollte dir weiterhelfen.

raik

danke, ich werde es mal ausprobieren.

Stanlay Hanks 26. Dez 2003 17:05

Re: Wenn Maus über Rechteck in Image soll Hint erscheinen
 
Wenn du eh eine Scrollbox nimmst, könntest du genauso gut ein Shape nehmen, oder hab ich da jetzt was falsch verstanden...:gruebel:

Man liest sich, Stanlay :hi:

hanse 26. Dez 2003 17:07

Re: Wenn Maus über Rechteck in Image soll Hint erscheinen
 
da hast du was falsch verstanden, die scrollbox benutze ich da das bild im image größer als die form ist.

Keldorn 26. Dez 2003 21:21

Re: Wenn Maus über Rechteck in Image soll Hint erscheinen
 
Hallo

könntest das mal so probieren:
Delphi-Quellcode:
...
  private
    { Private-Deklarationen }
    rect1,rect2,rect3:Trect;
...

procedure TForm1.FormCreate(Sender: TObject);
begin
  rect1:=rect(10,10,50,50);
  rect2:=rect(100,100,150,150);
  rect3:=rect(200,200,250,250);
  Image1.Canvas.Brush.Color:=clblue;
  image1.Canvas.FillRect(rect1);
  image1.Canvas.FillRect(rect2);
  image1.Canvas.FillRect(rect3);
  Image1.ShowHint:=true;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
Var newhint:string;
begin
  //neuen hint ermitteln
  newhint:='';
  if PtInRect(rect1,point(x,y)) then newhint:='Rechteck1'
   else
    if PtInRect(rect2,point(x,y)) then newhint:='Rechteck2'
     else
      if PtInRect(rect3,point(x,y)) then newhint:='Rechteck3';
  //wenn anderer hinttext -> neuen hint setzen
  if newhint<>image1.Hint then
    begin
      Image1.Hint:=newhint;
      Application.CancelHint;
    end;
end;
Mfg Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz