AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bitmap.Canvas -> Form.Canvas ... nix zu sehen
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap.Canvas -> Form.Canvas ... nix zu sehen

Ein Thema von TERWI · begonnen am 9. Jul 2018 · letzter Beitrag vom 19. Jul 2018
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 16:02
Kleine Korrektur:
Ich hab in der Eile 'Image.Create/Free' vergessen.
Das ändert aber nichts an der mangelhaften / keine Ausgabe.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 16:24
Beispielprojekt als ZIP hier hochladen?
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 16:36
Wäre theoretisch moglich - aber in der Komplexität steigt da mit Sicherheit niemand auch nach längerem nicht durch ... (hab ich schon nach 1 Woche Pause meine Sorgen)
Nächstes Prob wäre: Die Daten kommen aus einem DVB-Transport-Strom und es müsste der Tester schon ein DVB-Gerät oder adäquate TS-Files haben.

Wer da ernsthaft (!) interesse dran hat ... melden.

Hier ist einfach nur das Prob: Permanent generierte/geänderte Bitmap im Proggie in externer Form ebenso permanent anzeigen.
Mit Direktzugriff auf die OSD-Form geht das ja ... aber ich will (!) das mit Übergabe aus einer (zuvor generierten) Bitmap machen, die ich auch noch für anderes brauche.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#4

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 16:47
Kleine Korrektur:
Ich hab in der Eile 'Image.Create/Free' vergessen.
Das ändert aber nichts an der mangelhaften / keine Ausgabe.
Mit "Du kannst einfach ein TImage auf das Form platzieren" meine ich natürlich "im Form-Designer" und nicht zur Laufzeit.

Wenn deine Änderungen in dem Image nicht angezeigt werden, dann solltest du allerdings schon ein Beispielprojekt (ändere Bitmap, Anzeige auf dem Form) hier hochladen, damit wir sehen können, was da passiert. Ich habe so den Verdacht, daß uns da eine wesentliche Information noch fehlt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 17:36
Ist dein Bitmap Vollbild auf der Form? Wenn nicht, dann eine TPaintBox drumrum.

* auf Bitmap zeichnen
* und in Form.Repaint, bzw. PaintBox.Repaint oder .Refresh auslösen, damit im OnPaint (wo dein Draw drin ist) das Aktuelle angezeigt wird.
** wobei Repaint/Refresh sofort zeichnet, also wäre .Invalidate vielleicht besser, falls du schneller/öfters was am Bitmap änderst, damit nicht "sofort" sondern erst "gleich" gezeichnet wird, sobald die GUI später die Kontrolle zurückbekommen hat



TImage und da ins Bitmap zeichnen, bzw. umständlich das externe Bitmap zuweisen (ins Interne kopieren), da wird über Bitmap.OnChanged ein Repaint des TImage ausgelöst.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 9. Jul 2018 um 17:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 17:40
"FormOSD" ist eine eigenständige Form und wird in meine Unit eigebunden.
Das Image wird dort korrekt de-/initialisiert, Alignment ist alClient.
Die Form wird zur Laufzeit (vor Zugriff) mittels CLientWidth/Height auf die gleiche Größe meiner BitMap gesetzt. Sollte also eigentlich alles passen.

Tut es aber nicht "tuten" - alles grau. Direktes schreiben auf FormOSD funktioniert so weit (auch ohne geflacker bei schnellem wiederholtem Update, wa ich eigentlich erwartet hatte).
Dein Verdacht, daß da die eine oder andere wesentliche Information noch fehlt ist sicherlich begründet - aber wie schon gesagt ist das ganze Projekt nicht wirklich in Einzelteilen zu zerlegen, hier gejt's um eben dieses spezielle Problem:

Bitmap to Form.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 17:54
Du schreibst wohl zu früh.
TImage.Canvas kann seine Größe nicht zur Laufzeit anpassen. Sie wird beim ersten Schreiben eingefroren. Möglicherweise ist die Größe zum Zeitpunkt des ersten Schreibens nicht richtig.

Ohne Quellcode kann dir aber wohl keiner helfen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 18:47
ach Leute, ihr immer mit Quellcode ... verstehe ich ja zum verstehen - aber was ist an meinen Fragen so unverständlich, das man's auch nicht auch ohne verseht ? ... sorry.

Ist im Prinzip das gleich wie in #3.
Bitmap an OSD.Canvas: ... da tut sich nix !
Direkt schreiben an OSD.Canvas: ... ist OK !!!

Ich verstehe eben genau dieses "Feature" nicht.

@Redeemer
Ob mit oder ohne TImage - geht nur direkt an Canvas.

Geändert von TERWI ( 9. Jul 2018 um 18:50 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 9. Jul 2018, 20:00
Wir fragen ja nicht aus Spaß an der Freude nach Quelltext.
In 99 % der Fälle ist es nämlich so, dass der Ersteller der Ursprungsfrage Informationen vorenthält, die er als unwichtig erachtet, die aber entscheidende Details sind.

Oft ist es auch so, dass beim Erstellen eines abgespeckten Beispielprojektes das Problem wundersamerweise verschwindet und man drauf kommt, warum etwas nicht funktioniert.

Die Zahl der Threads, die ich zu schreiben begonnen hatte (wohlbemerkt mit Beispielprojektes) ist doppelt bis dreimal so hoch wie meine tatsächlich gestellten Fragen, weil ich dann plötzlich meinen Fehler gesehen habe.

Ich verstehe auch nicht, warum das so ein Problem für dich ist?
Mach doch zwei Formulare und einen Timer.
Im OnTimer zeichnest du dann aufs zweite Formular einmal so, wie es jetzt funktioniert und dann nochmal so, wie du es gerne hättest.
Irgendwelche zufälligen Linien und bisschen Text.

Ich möchte einen symbolischen Euro wetten, dass du eigentlich ein Threading-Problem hast.
Der DVB-Stream wird ja wahrscheinlich nicht im VCL-Mainthread empfangen, dekomprimiert und das OSD-Menü gezeichnet...nicht wahr?

Geändert von TiGü ( 9. Jul 2018 um 20:04 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 11. Jul 2018, 13:25
Ich möchte einen symbolischen Euro wetten, dass du eigentlich ein Threading-Problem hast.
Der DVB-Stream wird ja wahrscheinlich nicht im VCL-Mainthread empfangen, dekomprimiert und das OSD-Menü gezeichnet...nicht wahr?
kwT
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 19:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz