AGB  ·  Datenschutz  ·  Impressum  







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

Rahmen in fremd gezeichnetes Panel/Form zeichnen

Ein Thema von taveuni · begonnen am 18. Okt 2023 · letzter Beitrag vom 18. Okt 2023
Antwort Antwort
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#1

Rahmen in fremd gezeichnetes Panel/Form zeichnen

  Alt 18. Okt 2023, 06:51
Hallo Gemeinde,

Mir ist kein besserer Titel eingefallen. Ich benutze eine 64bit C++ DLL API wie schon in einem anderen Post mit einem anderen Problem beschrieben.

Es handelt sich um eine API eines Videostreaming Systems. Für die Anzeige des Streams wird der API ein Handle eines VCL WinControls (TForm oder TPanel) übergeben. Die Api zeichnet dann auf dieses Control mit bis zu 50fps - was wunderbar funktioniert. Ein Feature ist das Digitalzoom welches ebenfalls via API benutzt werden kann. Mit den Mousewheel Events kann ich die Digitalzoom Funktionen ansprechen.

Nun: Um zu sehen welcher Bereich gezoomt wird möchte ich einen Rahmen in Anhängigkeit des Zoomfaktors und der Position in das Bild zeichnen. Mit Canvas geht das (logischerweise ?) nicht da die API permanent auf das Control zeichnet. Irgendwie fehlt mir da die Idee wie so etwas gemacht werden könnte. In meiner Naivität hatte ich gehofft ein Panel Transparent zu setzen und nur den Rahmen dieses zu nutzen. Leider bietet sich diese Möglichkeit nicht. Natürlich könnte ich vier Panels mit Breite 1PX auf das Control legen und dann in Abhängigkeit die Positionen x/y/Breite/Höhe platzieren um einen Rahmen zu simulieren. Dieser sollte dann aber auch noch verschoben werden können.

Gibt es eine einfachere Möglichkeit?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Rahmen in fremd gezeichnetes Panel/Form zeichnen

  Alt 18. Okt 2023, 07:21
ähhhhhhhhhhhh
https://www.delphipraxis.net/213899-...-zeichnen.html

oder wenn z.B. nach Hier im Forum suchenman auf Desktop zeichnen sucht



Aber im Grunde sollte es doch reichen ein WinControl (kein GraphicControl) über das Control zu legen, welches für die Ausgabe der DLL genutzt wird?
Und dort via Clipping den inneren Bereich auszuschneiden.
Oder einfach 4 WinControls (z.B. TPanel), für jede Seite.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (18. Okt 2023 um 07:30 Uhr)
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Rahmen in fremd gezeichnetes Panel/Form zeichnen

  Alt 18. Okt 2023, 08:46

(..)Und dort via Clipping den inneren Bereich auszuschneiden.(..)
Seeehr interessant. Das wäre meine bevorzugte Variante (mit einem Panel). Und wie würde man so etwas machen? Ist es so einfach mit ClipRect?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Rahmen in fremd gezeichnetes Panel/Form zeichnen

  Alt 18. Okt 2023, 08:49
Das geht mit SetWindowRgn.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Rahmen in fremd gezeichnetes Panel/Form zeichnen

  Alt 18. Okt 2023, 08:52
Hmhh.. Ist das nicht das umgekehrte? So wie im Anhang (gelber Rahmen) sollte es dann ungefähr aussehen. Das grün umrandete Teil ist die besagte Form welche von der API gezeichnet wird.
Miniaturansicht angehängter Grafiken
rahmen.jpg  
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Rahmen in fremd gezeichnetes Panel/Form zeichnen

  Alt 18. Okt 2023, 10:27
Hmhh.. Ist das nicht das umgekehrte? So wie im Anhang (gelber Rahmen) sollte es dann ungefähr aussehen. Das grün umrandete Teil ist die besagte Form welche von der API gezeichnet wird.
Wie umgekehrt? Du möchtest das Fenster bzw. Windows-Control auf eine rahmenförmige Region begrenzen. Die Region musst du natürlich erst einmal erzeugen und z.B. mit CombineRgn in die richtige Form bringen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Rahmen in fremd gezeichnetes Panel/Form zeichnen

  Alt 18. Okt 2023, 10:33
Man kann Regionen "kombinieren",

also eine Region über das ganze Fenster/Control erzeugen und davon den inneren Bereich durch eine weitere Region subtrahieren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (18. Okt 2023 um 10:35 Uhr) Grund: ohhh, zu langsam
  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 18:50 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