Grafik Layer

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Grafik Layer

Beitrag von haderlump »

Hallo zusammen
Thema Modellbahnsteuerung.
Ich habe einen Image, das einen Ausschnitt einer größsseren Grafik darstellt, mit Scrollbalen usw.
Funktioniert einwandfrei. Dieses Bild zeigt das Gleisbild der Anlage. nunmöchte ich darüber noch einen Grafiklayer legen, in den ich Kontakte einzeichnen kann.
Da diese Kontakte im Regelbetrieb ja eigentlich nicht dargestellt werden müssen (die Kontaktinformationen kommen ja hardwaremäßig von der Anlage) möchte ich die Kontaktlayerebene abschalten.
Für die Planung wäre der Layer aber sehr wertvoll.
nun meine Fragen:
1. Kann man ein Bild transparent machen, also mit unsichtbarem Hintergrund, und wenn ja, wie?
2. Kann man 2 Bilder übereinander legen, so dass nur die im darübergelegtem Bild gezeichneten Stellen sichtbar sind, ansonsten der inhalt von Bild 1.

Gruß Fritz

Benutzeravatar
kupferstecher
Beiträge: 422
Registriert: Do 17. Nov 2016, 11:52

Re: Grafik Layer

Beitrag von kupferstecher »

Auf TGraphicControl basierende Komponenten können Transparenz. Wenn du ein fertiges Bild laden möchtest, bietet sich TImage an und dann ein png zuweisen, das bereits eine Transparenz gespeichert hat (z.B. mit IrfanView als png abspeichern).

Wenn du selbst auf ein TGraphicControl zeichenst, kannst du eine Farbe als transparent bestimmen. Nicht vergessen, die Transparenz zu aktivieren.

Wenn deine Komponente von TWinControl abgeleitet sein soll, gibt es keine solche Transparenz, du kannst aber mittels SetRegion die zu zeichnenden Pixel definieren und damit das gleiche erreichen.

Antworten