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/)
-   -   TImage auf TBevel (https://www.delphipraxis.net/204062-timage-auf-tbevel.html)

Willie1 20. Apr 2020 17:12

TImage auf TBevel
 
Hallo, schon wieder eine Frage von mir.
Auf einem TBevel liegt ein TImage. Dann lässt sich für das Image kein OnClick oder MouseEnter Ereignis auslösen. Ich habe es gerade nochmal ausprobiert. Warum nicht? Was soll ich statt TBevel nehmen? TPanel geht auch nicht.

Willie.

Redeemer 20. Apr 2020 17:55

AW: TImage auf TBevel
 
1. Man kann nichts auf TBevel legen, da das kein Erbe von TWinControl ist. Ob man nicht Komponenten einfach übereinander schieben sollte, ist eine andere Frage. Hier muss man die Z-Reihenfolge beachten, was es unintuitiv und fehleranfällig macht.
2. Minimalbeispiel?

Willie1 21. Apr 2020 16:22

AW: TImage auf TBevel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
kleiner Blick in die Geschichte. Ich habe vor 32 Jahren mal das Kniffel-Spiel für den Commodore C64 - Interpreter-Basic geschrieben. lief gut. Den wichtigen Befehl CLS (Clear Screen) kannte der C64 nicht, da musste man einen System-Steuerbefehl benutzen. Ok, Schluss damit.

Jetzt auf meine alten Tage will ich Kniffel nochmal für Windows schreiben und bewusst keine Vorbilder im Web ansehen.
Hier geht es um das Würfeln und Auswählen der Würfel. Siehe Bild. Die 5 Würfel sind auf TImage gemalt - später in 3-D. Das Auswählen eines Würfeln geschieht mit Mausklick. Ich will das mit einem schönen Hintergrund versehen und dazu TBevel ider TPanel verwenden geht aber nicht. Deshalb meine Frage.
Gruß Willie.

Uwe Raabe 21. Apr 2020 16:24

AW: TImage auf TBevel
 
Zitat:

Zitat von Willie1 (Beitrag 1462601)
Ich will das mit einem schönen Hintergrund versehen und dazu TBevel ider TPanel verwenden geht aber nicht.

Was genau geht denn nicht?

stahli 21. Apr 2020 16:28

AW: TImage auf TBevel
 
Du kannst auch einfach auf den Canvas des Formulars zeichnen und die Positionen der Würfel in TRects speichern.

So könntest Du theoretisch sogar Schatten o.ä. unter die Würfel zeichnen, die außerhalb des klickbaren Bereiches liegen.

Als Klickereignis benutzt Du das des Formulars und über die Mausposition ermittelst Du, welcher Würfel gerade geklickt wurde.

Andere Lösungen sind natürlich auch möglich.

Willie1 21. Apr 2020 16:31

AW: TImage auf TBevel
 
OnClick geht mit TBevel und TPanel nicht, wenn die Würfel darauf liegen.

Willie1 21. Apr 2020 16:37

AW: TImage auf TBevel
 
Zitat:

Du kannst auch einfach auf den Canvas des Formulars zeichnen und die Positionen der Würfel in TRects speichern.
Bei meinem Konstrukt müssen die Würfel immer wieder neu gezeichnet werden. Ich müsste also 6 Bilder in 2 Farben abspeichern. Richtig?

Uwe Raabe 21. Apr 2020 16:40

AW: TImage auf TBevel
 
Zitat:

Zitat von Willie1 (Beitrag 1462607)
OnClick geht mit TBevel und TPanel nicht, wenn die Würfel darauf liegen.

Natürlich bekommst du den OnClick-Event des TImage, wenn es auf einem TPanel liegt. Wenn nicht, stimmt etwas mit deinem Form-Aufbau nicht.

stahli 21. Apr 2020 17:02

AW: TImage auf TBevel
 
Deine Bilder zeichnen musst Du ja in jedem Fall. Das ist unabhängig, ob in ein TImage oder auf den Canvas.
Dafür kannst Du fertige Bilder vorhalten oder die Zeichenfunktion irgendwie berechnen.

Da müsstest Du Dir die für Dich praktikabelste Art auswählen.


Wenn Du ein TImage auf ein Panel legst, musst Du wohl das OnClick des TImage benutzen und nicht das des Panels.
Vielleicht reicht Dir das ja schon als Problemlösung.

In ein TBevel kannst Du nichts hineinsetzen. Das kann also kein anderes Control aufnehmen.
Wenn Du auf ein TForm ein TBevel setzt und darauf ein TImage, dann liegt das TImage tatsächlich auf dem TForm und überlagert/verdeckt lediglich das TBevel. Wenn Du das TBevel verschiebst, verschiebt sich das Image nicht mit.

In einem TPanel wäre das TImage dagegen eingefügt und würde sich beim Verschieben des Panels mit verschieben.

Ein Bevel ist also sozusagen nur eine Zeichenfläche und ein Panel darüber hinaus auch ein Container.

Willie1 24. Apr 2020 17:55

AW: TImage auf TBevel
 
Danke Leute
für eure Tipps, das bringt mich weiter. Alles Gute...
Willie.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 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