TPanel mit Hintergrundbild möglich?

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
photor
Beiträge: 409
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

TPanel mit Hintergrundbild möglich?

Beitrag von photor »

Hallo Forum,

ich programmiere an Tools aus dem Ingenieurbereich und da müssen manchmal viele Parameter eingegeben/spezifiziert werden u.a. geometrische. Um diese eindeutig zuzuordnen, sind Skizzen und Zeichnungen wichtig - die bislang immer in einem Hilfe-Fenster auftauchen.

Mir schwebt nun vor, dass man die Skizze quasi unter die Eingabe-Maske der Parameter legt und die Eingabe (TLabel + TEdit) quasi an der richtigen Stelle platziert - idealerweise würde noch der entsprechende Parameter (z.B. "Radius 1", "Material Innenring") ge-highlight-et - aber das ist für später.

Ich würden nun gerne Ein TPanel nehmen, die Skizze (als JPG, PNG o.ä.) Hintergrund wählen und dann darauf die TLabel und TEdit an den entsprechenden Stellen verteilen. Geht das?

Ich habe bei TPanel selbst direkt nichts gefunden - im Object Inspector sehe ich keine Option dafür. TPanel ist aber abgeleitet von TCustomPanel und das wieder von TCustomControl, welches einen Canvas besitzt. Heißt das, dass ich ein Hintergrundbild laden kann?

Nebenbedingung für das Ganze ist noch: entwickeln tue ich das in Lazarus (v 2.2.6 unter Linux); laufen soll es dann aber in der Firma auf Delphi (Seattle). Das für den Fall, dass es nicht mit den 0815-Komponenten geht, sonder etwas nach-installiert werden müsste; sollte auch unter Delphi mit vertretbarem Aufwand machbar sein.

Ciao,
Photor

Benutzeravatar
theo
Beiträge: 10334
Registriert: Mo 11. Sep 2006, 19:01

Re: TPanel mit Hintergrundbild möglich?

Beitrag von theo »

Naja, Hintergrundbild...
Male es halt einfach drauf OnPaint.
Und Maske abnehmen! :mrgreen:
Dateianhänge
hintbildlaz.png
hintbildlaz.png (275.31 KiB) 321 mal betrachtet

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 938
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: TPanel mit Hintergrundbild möglich?

Beitrag von kralle »

Moin,

Zur Lösung des eigentlichen Problems kann ich nichts besteuern, aber wenn es um den Ingenieurbereich geht, dann würde ich auch über DXF/DWG als Hintergrund nachdenken.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.3.1 , Lazarus 2.3.0
+ Delphi XE7SP1

Soner
Beiträge: 608
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: TPanel mit Hintergrundbild möglich?

Beitrag von Soner »

Ich würde Theos Vorschlag nehmen, aber wenn du es die noch leichter machen möchtest, dann kannst du TImage nehmen und TPanel legen.

wp_xyz
Beiträge: 4781
Registriert: Fr 8. Apr 2011, 09:01

Re: TPanel mit Hintergrundbild möglich?

Beitrag von wp_xyz »

Obwohl ich eigentlich eher wie schon vorgeschlagen einfach das Bild auf dem Panel zeichnen würde, hat ein TImage den Vorteil, dass man die Controls ohne viel zu überlegen genau positionieren kann.

Im Anhang einer kleiner Rechner für die Berechnung der Kapazität eines Plattenkondensators.
Dateianhänge
capacalc.zip
(12.64 KiB) 19-mal heruntergeladen

Benutzeravatar
photor
Beiträge: 409
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TPanel mit Hintergrundbild möglich?

Beitrag von photor »

Moin,
theo hat geschrieben:
Sa 26. Aug 2023, 17:32
Naja, Hintergrundbild...
Male es halt einfach drauf OnPaint.
Und Maske abnehmen! :mrgreen:
Danke für den Tipp. Das sieht ungefähr so aus, wie ich mir das gedacht habe (Bild wird mehr eine Schwarz-weiß-Skizze sein).

Die Klassenfunktion TForm1.Panel1Paint() wird einfach mit den OnPaint-Event des Panels verknüpft? Klingt nach der einfachsten Idee. Und nach dem ersten Versuch.
An TForm1.FormDestroy hätte ich jetzt nicht sofort gedacht. Aber richtig, das sollte man nicht vergessen.
Soner hat geschrieben:
Sa 26. Aug 2023, 18:27
Ich würde Theos Vorschlag nehmen, aber wenn du es die noch leichter machen möchtest, dann kannst du TImage nehmen und TPanel legen.
Daran hatte ich zwischenzeitig auch schon gedacht, war aber nicht sicher, ob man dann auf das TImage nochmal TEdit/TLabel legen kann.
kralle hat geschrieben:
Sa 26. Aug 2023, 17:37
Zur Lösung des eigentlichen Problems kann ich nichts besteuern, aber wenn es um den Ingenieurbereich geht, dann würde ich auch über DXF/DWG als Hintergrund nachdenken.
Hm. Damit würden natürlich die "Skizzen" durch "richtiges CAD" ersetzt. Momentan skizziere ich mit Inkscape (um die Bilder eventuell frei skalieren zu können) - was geht.
wp_xyz hat geschrieben:
Sa 26. Aug 2023, 19:00
Obwohl ich eigentlich eher wie schon vorgeschlagen einfach das Bild auf dem Panel zeichnen würde, hat ein TImage den Vorteil, dass man die Controls ohne viel zu überlegen genau positionieren kann.

Im Anhang einer kleiner Rechner für die Berechnung der Kapazität eines Plattenkondensators.
Ich schaue mir das natürlich an! 8) - Danke.


Ciao und Dank für die prompten Antworten,
Photor


PS: Nö :mrgreen:

Antworten