AGB  ·  Datenschutz  ·  Impressum  







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

Threadübergreifende Bitmap

Ein Thema von FirstTry · begonnen am 1. Okt 2015 · letzter Beitrag vom 4. Okt 2015
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#31

AW: Threadübergreifende Bitmap

  Alt 3. Okt 2015, 13:41
OK...
Schon funktioniert es!
Zufälligerweise.
Jedes Zeichnen aus dem Thread auf im Hauptprogramm erzeugte Formulare kracht früher oder später.
Deswegen ruft man ja Syncronize auf...
Bringt aber nicht wenn das was zu zeichnen willst im Thread erzeugt wurde und wie TBitmap Teile hat die Win32-GDI-Ressourcen verwenden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#32

AW: Threadübergreifende Bitmap

  Alt 3. Okt 2015, 13:44
OK...
Schon funktioniert es!
Zufälligerweise.
Jedes Zeichnen aus dem Thread auf im Hauptprogramm erzeugte Formulare kracht früher oder später.
Deswegen ruft man ja Syncronize auf...
Bringt aber nicht wenn das was zu zeichnen willst im Thread erzeugt wurde und wie TBitmap Teile hat die Win32-GDI-Ressourcen verwenden
Die Paintbox wurde nicht im Thread erzeugt...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#33

AW: Threadübergreifende Bitmap

  Alt 3. Okt 2015, 13:45
Die Paintbox wurde nicht im Thread erzeugt...
Aber das Bitmap wurde im Thread erzeugt. Und das will man ja dann im Hauptthread zeichnen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#34

AW: Threadübergreifende Bitmap

  Alt 3. Okt 2015, 13:55
Die Paintbox wurde nicht im Thread erzeugt...
Aber das Bitmap wurde im Thread erzeugt. Und das will man ja dann im Hauptthread zeichnen.
Boh... Eben nicht...

Es wird im HauptThread die Paitbox gezeichnet bzw. auf die Paintbox...
Es wird lediglich der grafische Inhalt von A nach B Kopiert...
Also alles gut, daher Funktioniert es ja nach meinen Änderungen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#35

AW: Threadübergreifende Bitmap

  Alt 3. Okt 2015, 14:06
Die Paintbox wurde nicht im Thread erzeugt...
Aber das Bitmap wurde im Thread erzeugt. Und das will man ja dann im Hauptthread zeichnen.
Boh... Eben nicht...

Es wird im HauptThread die Paitbox gezeichnet bzw. auf die Paintbox...
Es wird lediglich der grafische Inhalt von A nach B Kopiert...
Also alles gut, daher Funktioniert es ja nach meinen Änderungen
Ja. nach den Änderungen. Davor (initial) aber nicht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#36

AW: Threadübergreifende Bitmap

  Alt 3. Okt 2015, 14:14
Ja. nach den Änderungen. Davor (initial) aber nicht.
Hat ja keine behauptet... Daher postet ich ja die nötigen Änderungen...
Ok egal - ich bin raus...

Mavarik

PS : LTQ
  Mit Zitat antworten Zitat
FirstTry

Registriert seit: 1. Okt 2015
10 Beiträge
 
#37

AW: Threadübergreifende Bitmap

  Alt 3. Okt 2015, 20:56
Vielen Dank für eure Hilfe!

Mit TBitmap32 funktioniert alles einwandfrei.
Wäre nett wenn mir jemand dazu gute Tutorials/ Beispiele liefern könnte.

Ansonsten sehe ich diesen Thread als geschlossen


Abschließend: TBitmap (oder sonst etwas, dass TCanvas nutzt) sollte nicht in Threads verwendet werden.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#38

AW: Threadübergreifende Bitmap

  Alt 4. Okt 2015, 07:18
War mir persönlich auch vollkommen neu. Haben wir alle die Doku nicht richtig gelesen oder steht das da schlichtweg nicht drin?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#39

AW: Threadübergreifende Bitmap

  Alt 4. Okt 2015, 09:29
Grundsätzlich können solche Dinge schon passieren, wenn man auf GDI-Objekte wie TBitmap oder TCanvas fälschlicherweise mit mehreren Threads parallel zugreift. Aber da du Synchronize verwendest, sollte es hier eigentlich zu keinen Problemen kommen.
Doch, kommt es! Alle Win32-Ressourcen (Und TCanvas, TBitmap verwenden solche) sind nur im Erzeugenden Thread gültig. Alle Aktionen mit diesen müssen im erzeugenden Thread erfolgen.
Wozu gibt es denn dann Delphi-Referenz durchsuchenTCanvas.Lock?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 05:27 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