Delphi-PRAXiS

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/)
-   -   linienproblem! (https://www.delphipraxis.net/151397-linienproblem.html)

maikaefer5 16. Mai 2010 12:59


linienproblem!
 
hallöle,

ich bin delphianfänger und habe folgendes problem:

ich versuche auf einem TImage eine linie zu zeichnen. Sie sollte möglichst gelb sein und nur erscheinen, wenn man mit der maus drüberfährt.

hilft einem da der befehl >mousemove< oder >canvas.moveto und canvas.lineto< etwas?

danke vielmals im voraus, euer maikäfer

[edit=SirThornberry]Titel geändert - "Hilfe" braucht jeder und sagt nichts über das Problem aus. Mfg, SirThornberry[/edit]

implementation 16. Mai 2010 13:05

Re: hilfe - linienproblem!
 
Nimm OnMouseMove als das Event und rufe darin Canvas.MoveTo() und Canvas.LineTo() auf.

Edit:
Delphi-Quellcode:
procedure TForm1.Image1MouseMove(Sender: TObject; ... );
begin
  if ( ... ) then
  begin
    Image1.Canvas.MoveTo( ... );
    Image1.Canvas.LineTo( ... );
  end;
end;

Jens Schumann 16. Mai 2010 13:13

Re: hilfe - linienproblem!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hatte vor ca. 7 Jahren ein ähnliches Problem.
Die Lösung findest Du in der Anlage. Die function CursorOnLinie
stellt fest, ob sich die Maus über der Linie befindet oder nicht.
Die ersten beiden Parameter stehen für die akt. Mausposition,
die nächsten 4 Parameter für das Recteck in dem sich die Linie befindet
und der letzte Paramter steht für die Empfindlichkeit.

maikaefer5 16. Mai 2010 13:18

Re: hilfe - linienproblem!
 
also danke erstmal,
aber wo finde ich denn überhaupt das event mousemove?
und wie wird die linie gelb?

Klaus01 16. Mai 2010 13:38

Re: hilfe - linienproblem!
 
Zitat:

Zitat von maikaefer5
also danke erstmal,
aber wo finde ich denn überhaupt das event mousemove?

z.B. im ObjectInspector wenn Du das Image selektiert hast,
dann unter dem Reiter Ereignis schauen.
Zitat:

Zitat von maikaefer5
und wie wird die linie gelb?

Image1.Canvas.Brush.color := yellow;
richtig ist es, wie es implementation im Post #6 beschrieben hat.

Grüße
Klaus

implementation 16. Mai 2010 13:40

Re: hilfe - linienproblem!
 
OnMouseMove findest du im Objektinspektor unter "Ereignisse". Ins weiße Feld doppelklicken -> und du landest im Code an der richtigen stelle.

Die Farbe stellst du so ein:
Delphi-Quellcode:
Paintbox1.Canvas.Pen.Color := clYellow;
Dann musst du halt prüfen, ob sich der Mauszeiger über der Linie befindet (s. Jens' Beitrag) und dementsprechend die Linie zeichnen:
Delphi-Quellcode:
with Paintbox1.Canvas do
begin
  MoveTo(1,1);
  LineTo(100,1);
end;
Noch Fragen

PS: Mist, zu spät.

maikaefer5 16. Mai 2010 14:45

Re: hilfe - linienproblem!
 
das problem ist jetzt folgendes:

die Linie bleibt trotzdem schwarz. wo muss ich denn die paintbox hinlegen (auf das image oder auf das panel,... )?

und wo muss ich den befehl für die paintbox hinschreiben? -> bei klick auf paintbox oder beim quelltext für die linie?

implementation 16. Mai 2010 15:11

Re: linienproblem!
 
Die Paintbox liegt da, wo du es hinhaben willst.

Die Färbung setzt du vor das Zeichnen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.

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