![]() |
Probleme bei selbsterstellten Grafikfenster
hallo,
wollte für ein Programm auf meinem form ein grafikfenster haben, in der eine bmp geszeichnet wird und auf dem bild sollen hotspots sein sodas beim draufklicken ein bestimmter wert ausgelesen wird. Nun zu meiner Frage welches Grafikfenster ist dafür am geeignetsten also image oder Paintbox oder so. Ich bin mir noch nicht sicher ob ich die Hotspots selber als Flächen zeichne die beim Anklicken dann Farbig dargestellt werden sollen oder sonst unsichtbar sind. Oder kann man Hotspots auch eine farbe zuordnen die dann bei markiert angezeigt wird so das der nutzer weiß diese Fläche hat er angeklickt? |
Re: Welches Grafikfenster geeignet
Mit den Farben würde das gehen.zB so (im MouseDown des Images zB)
Delphi-Quellcode:
if ImageX.Picture.Canvas.Pixels[x,y]=clGreen then
Blar(42); |
Re: Welches Grafikfenster geeignet
hallo,
habe mir jetzt eine Klasse Dartboard erstellt die von TPainbox abgeleitet ist und ein paintbox mit einem bild Dartbrett zeichnen soll.
Delphi-Quellcode:
Wenn ich diese paintbox jewtzt in meinem Formular erstellen will, bekomme ich einen fehler. Als ich versucht habe diesen mit dem debugger auf dem grund zu gehen. habe ich gesehen das er erst den kontruktor und dann gleich wieder den destruktor aufruft was mache ich falsch.
unit DartBoard;
interface uses Messages, SysUtils, Variants, Classes, Graphics, Controls, Dialogs, ExtCtrls, StdCtrls; type TImageBox = class(TPaintBox) private Tboard: TGraphic; public constructor Create(AOwner: TComponent); destructor Destroy; override; procedure OnPaint(Sender : TObject); end; implementation { TImageBox } constructor TImageBox.Create; begin inherited Create(AOwner); TBoard := TGraphic.Create; TBoard.LoadFromFile('Dartbrett.bmp'); end; destructor TImageBox.Destroy; begin FreeAndNil(TBoard); inherited; end; procedure TImageBox.OnPaint(Sender : TObject); begin Canvas.Draw(0,0,TBoard); end; end.
Delphi-Quellcode:
private Gameboard : TImageBox;
... Gameboard := TImageBox.Create(self); Gameboard.Left := 410; Gameboard.Top := 125; Gameboard.Width := 350; Gameboard.height := 350; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz