Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 17:03

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do Mai 03, 2007 10:06 
Offline
DGL Member

Registriert: Mo Jul 17, 2006 13:16
Beiträge: 69
Hi!
Ich habe eben festgestellt, dass wenn ich meine OpenGL Anwendung von einem Monitor auf den anderen verschiebe (Multiscreen, Laptop + Externer Monitor), dass die Anwendung nicht mehr neu gezeichnet wird. Das Bild bleibt stehen, und sobald ich ein anderen Formular darüber schiebe, "übermalt" dieses mein GL-Form. Musst ich einen neuen DC/RC erstellen?

Sobald ich das GL-Form auf Monitor 1 zurückverschiebe wird ganz normal weitergezeichnet...

(Delphi 2007, Windows XP Pro, Nvidia GraKa)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 03, 2007 11:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich weiß nicht wie das mit Laptops ist aber auf einem Desktop PC geht das ohne Probleme. Es ist nur wichtig, dass es sich dabei um nur eine Grafikkarte handelt. Mittlerweile können aber eigentlich alle neueren Grafikkarten 2 Monitor betreiben weswegen das kein Ding mehr ist. Aber beim Laptop wird nun mal alles gesparrt evtl wurde es da so gemacht, dass es sich um 2 unterschiedliche Geräte handelt um die geziehlter deaktivieren zu können.

Aber einen neuen RC/DC erstellen wird nur bedingt etwas nützen, da das Fenster ja auch in der Mitte stehen bleiben kann. Und Windows wählt anhand des Fenstermittelpunktes zu welchem Monitor/Karte es gehört. Ich wüsste so jetzt auch nicht wie man herrausfinden kann ob der RC zu einem anderen Fenster gehört.

Mit anderen Worten wenn das nicht von alleine geht ist das nicht unbedingt trivial. Es ist aber auch kein Fall der sonderlich häufig auttritt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: 2Screen Systeme
BeitragVerfasst: Do Mai 03, 2007 12:08 
Offline
DGL Member

Registriert: Do Feb 08, 2007 10:48
Beiträge: 18
Wohnort: nähe Frankfurt
Hi Ihr,

also mir ist neulich auch dieses Phänomen begegnet!
allerdings war das bei einem Fertigen Programm (nicht von mir)
Und ich hab keinen Laptop^^
und auch nur 1Graka (nix dolles - Hauptsache sie hat 2 Ausgänge *G*)
und mit meinem eigenen OpneGL Programm hatte ich damit noch keine Problem
- vielleicht ist es davon abhängig was als Parent definiert ist oder so -
ich hab meine OpenGL Ausgabe einfach auf einem sonst lehren Formular.
Damit funktioniert es!

Leuchtende Grüße

Stefan


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 03, 2007 12:14 
Offline
DGL Member

Registriert: Mo Jul 17, 2006 13:16
Beiträge: 69
Volltreffer in Schwarze!

Meine Wenigkeit hat folgendes vergessen zu Erwähnen: Mein GL-Form ist ein eigenes Formular (zum Hauptprogramm), was mit

Code:
  1. procedure TOpenGLForm.CreateParams(var Params: TCreateParams);
  2. begin
  3.   inherited CreateParams(Params);
  4.   Params.WndParent:=GetDesktopWindow;
  5. end;


erzeugt wird.

Mit

Code:
  1.   // Params.WndParent:=GetDesktopWindow;


funktioniert alles problemlos, sogar wenn das Fenster auf der Kante zwischen den zwei Monitoren ist.

Vielen Dank für den Tip!

Neues Problem: Jetzt hat mein GL-Form keinen eigenen Eintrag in der Taskleiste mehr :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Taskleisten eintrag
BeitragVerfasst: Do Mai 03, 2007 12:26 
Offline
DGL Member

Registriert: Do Feb 08, 2007 10:48
Beiträge: 18
Wohnort: nähe Frankfurt
Na da gibts bestimmt abhilfe *G*

[edit]
Hab hier noch was gefunden:
hört sich irgendwie besser an^^
[/edit]

Code:
  1. //das ist wohl eher die Notlösung siehe oben Edit!
  2. SetWindowLong(Handle, GWL_HWNDPARENT, 0);
QUELLE: DelphiPraxis

Bin gespannt ob es Funktioniert!

Leuchtende GRüße

Stefan


Zuletzt geändert von Light am Do Mai 03, 2007 12:34, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 03, 2007 12:29 
Offline
DGL Member

Registriert: Mo Jul 17, 2006 13:16
Beiträge: 69
Hum, gibts hier irgendwo den Smilie mit dem "Kopf gegen die Wand hau"? :D

Hat 1a geklappt, Danke für die Tips.

Thema erfolgreich erledigt :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 03, 2007 12:36 
Offline
DGL Member

Registriert: Do Feb 08, 2007 10:48
Beiträge: 18
Wohnort: nähe Frankfurt
Hi Berens,

hast du mein Edit bemerkt?
Das scheint eine sehr viel Ordentlichere Lösung zu sein^^

auch wenn es mehr Aufwand ist :lol:

Leuchtende Grüße

Stefan


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 03, 2007 12:41 
Offline
DGL Member

Registriert: Mo Jul 17, 2006 13:16
Beiträge: 69
Funktioniert zwar beides bei mir, aber ich denke auch das 2.ist sauberer. Hab jetzt die Methode vom Nachtrag und es funzt einwandfrei.

Edit: Nein geht doch nicht. Bei der 2ten Methode wird das GL-Form automatisch minimiert und aus der Taskleiste verbannt, sobald das Hauptform minimiert wird. Mit der ersten Methode klappt es allerdings.

Danke nochmal.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]