Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Thread und XP Theme (https://www.delphipraxis.net/54916-thread-und-xp-theme.html)

Baeuerle 13. Okt 2005 10:57


Thread und XP Theme
 
Hallo zusammen,

ich habe folgendes Problem um bitte um eure Hilfe.

- Ich habe eine Anwendung, die das XP Manifest einbindet.
- In der Anwendung läuft ein zweiter Thread
- Wird in dem 2. Thread ein neues Formular erzeugt hat dieses nicht den XP Style

Warum??

Die Fenster, die aus dem Hauptthread erzeugt werden übernehmen den XP Style.

Ich erzeuge das Formular im Thread durch
Delphi-Quellcode:
Form1:=TForm1.Create(nil)
wenn ich Create(Application)benutze gibt es sofort eine Exception!

Ok, jetzt bin ich mal auf eure Antworten gespannt :-D

Danke im vorraus
euer Baeuerle

MarcoWarm 13. Okt 2005 11:02

Re: Thread und XP Theme
 
Frage: Hast du Synchronize benutzt?

Bernhard Geyer 13. Okt 2005 11:04

Re: Thread und XP Theme
 
Die VCL ist nicht Thread-Safe.
Alle Formulare/Controls dürfen nur im Haupt-Thread erzeugt/angesprochen/gelöscht werden.

Baeuerle 13. Okt 2005 11:12

Re: Thread und XP Theme
 
@marco

danke das hat mich auf den richtigen weg gebracht. hab mal wieder den wald vor lauter bäumen nicht gesehen :wall:

habe es in synchronize ausgelagert und dann geht auch create(application)

vielen dank

Zitat:

Die VCL ist nicht Thread-Safe.
Alle Formulare/Controls dürfen nur im Haupt-Thread erzeugt/angesprochen/gelöscht werden.
Muss aber nicht sein so kann ich den speicher freigeben wenn ich ihn nicht mehr benötige! und habe nicht immer das Formular rumschwirren!

jim_raynor 13. Okt 2005 11:23

Re: Thread und XP Theme
 
Zitat:

Zitat von Baeuerle
Muss aber nicht sein so kann ich den speicher freigeben wenn ich ihn nicht mehr benötige! und habe nicht immer das Formular rumschwirren!

Es kann aber sehr unschöne Nebeneffekte und schwer nachvollziehbare Fehler erzeugen, wenn man in Threads auf VCL-Objekte zugreift ... ergo überhaupt nicht ratsam.

Baeuerle 13. Okt 2005 11:27

Re: Thread und XP Theme
 
ihr schlagt also volgendes vor:

- formular beim initialisieren der Anwendung erzeugen
- bei bedarf anzeigen ( vom thread aus )
- formular beim schließen der Anwendung wieder freigeben

Korrekt ????

jim_raynor 13. Okt 2005 11:34

Re: Thread und XP Theme
 
Vielleicht etwas unscharf ausgedrückt. Solange es im Syncronize läuft, sollte es keine Probleme geben. Nur wenn du direkt im Thread etwas mit der VCL machst, gibt es Probleme.

Also wenn du das Erstellen und freigegeben des Formulars in Syncronize machst, sollte es eigentlich klappen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 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