AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Shape auf Paintbox

Ein Thema von beat2006 · begonnen am 15. Dez 2008 · letzter Beitrag vom 1. Feb 2009
Antwort Antwort
beat2006

Registriert seit: 15. Dez 2008
Ort: Schweiz
5 Beiträge
 
Delphi 2006 Professional
 
#1

Shape auf Paintbox

  Alt 15. Dez 2008, 10:46
Ich versuche verzweifelt (im Programm, nicht in der IDE) einige TShape-Elemente auf einer Paintbox als Grafikhotspot zu platzieren.
Leider gelingt dies nicht.
Habe den Verdacht, dass die Paintbox die Shapes "überdeckt", habe aber keine Idee wie ich das ändern könnte.
Hat jemand hier Shapes auf Paintboxen platziert - und hat es geklappt?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: Shape auf Paintbox

  Alt 15. Dez 2008, 10:51
Versuch es mal mit Shape.BringToFront.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
beat2006

Registriert seit: 15. Dez 2008
Ort: Schweiz
5 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Shape auf Paintbox

  Alt 15. Dez 2008, 11:10
Vielen Dank.
Hat im Einzeltest geklappt.
Die Integration ins eigentliche Programm ist aufwändiger und muss noch durchgeführt werden.
  Mit Zitat antworten Zitat
beat2006

Registriert seit: 15. Dez 2008
Ort: Schweiz
5 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Shape auf Paintbox

  Alt 30. Jan 2009, 10:21
Weitere intensive Tests gemacht. Leider mit nicht erwünschten Resultaten.

Für die Paintbox existiert eine Routine für OnRepaint.
Was dann passiert ist, dass die Shapes zwar wie gewünscht in den Vordergrund rücken, dann aber trotz Eigenschaft bsClear nicht durchsichtig sind, sondern die Schrift auf dem Canvas überdecken.

Mache ich einen grundsätzlichen Überlegungsfehler bzg. Shapes. Sollten Shapes mit bsClear nicht auf jeden Fall durchsichtig sein?
Delphi-Version BDS 2006.

Bin für jeden Hinweis dankbar.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Shape auf Paintbox

  Alt 30. Jan 2009, 11:13
Hallo,

ich nutz statt einer Paintbox ein TImage und zeichne da auf den Canvas.
Da kann ich problemlos TShapes drüber legen, was ich auch mache.

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
beat2006

Registriert seit: 15. Dez 2008
Ort: Schweiz
5 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Shape auf Paintbox

  Alt 1. Feb 2009, 00:43
Es war doch ein Verständnisfehler.
Wollte dem Shape trotz der Brush-Eigenschaft bsClear eine Farbe geben.

Delphi-Quellcode:
Shape.Brush.Style := bsClear;
Shape.Brush.Color := clMoneyGreen;
Das klappt als Code, aber die zweite Anweisung macht implizit ein
Shape.Brush.Style := bsSolid; Dieses Verhalten ist im Help nirgens direkt beschrieben, entsprach aber nicht meinen Erwartungen.
Nun da ich's weiss, konnte ich eine andere für mich befriedigende, wenn auch aufwendigere Lösung finden.

Danke für die Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

Re: Shape auf Paintbox

  Alt 1. Feb 2009, 01:07
Zitat von beat2006:
Nun da ich's weiss, konnte ich eine andere für mich befriedigende, wenn auch aufwendigere Lösung finden.
Welche Lösung wurde es denn? (vielleicht hat ja nochmal einer soein Problem )

Aber warum aufwendiger ... hätte es dann nicht gereicht einfach nur Shape.Brush.Color := clMoneyGreen; wegzulassen?
$2B or not $2B
  Mit Zitat antworten Zitat
beat2006

Registriert seit: 15. Dez 2008
Ort: Schweiz
5 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Shape auf Paintbox

  Alt 1. Feb 2009, 03:25
Die Idee der ersten Lösung war, in einer Turnier-Tabelle bestimmte Spiele mit Shapes
1.) hervorzuheben (deshalb Brush.Color := clFarbe1 für ein laufendes Spiel, Brush.Color := clFarbe2 für ein beendetes Spiel usw. )
2.) auf OnMouseEnter / OnMouseLeave / OnMouseDown / OnMouseUp zu reagieren

Nun verwende ich die unsichtbaren Shapes "nur" noch, um zu erkennen, ob ich auf einem bestimmten Spiel in der Tabelle bin.
Dann setze ich eine Variable mit dem entsprechenden Spiel und mache ein Repaint.

Inzwischen hätte ich das ganze auch völlig ohne Shapes lösen können, da mir die Shapes weniger halfen als angenommen.
Wenn ich von Beginn weg gewusst hätte, dass transparente Shapes nur ohne Farbe funktionieren, hätte ich alles direkt via Maus-Koordinaten gelöst.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 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