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

Aktuelle Zeit: Mi Jul 16, 2025 17:29

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: CPU-Fenster öffnet sich
BeitragVerfasst: Fr Dez 10, 2004 17:15 
Offline
DGL Member

Registriert: Fr Dez 10, 2004 16:59
Beiträge: 52
Hi
Ich hab bisher nur OpenGL initialisiert und ein Quadrat gezeichnet. Wenn ich jetzt aber das Programm beende (ich klick einfach auf das rote Kreuz) dann öffnet sich das CPU-Fenster von Delphi und geht in den Debuggermodus. Und ich hab keine Ahnung wieso... ich denke ihr schon ;)
schon mal Danke im Voraus

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 10, 2004 17:21 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Vermutlich ist das das bekannte Problem mit dem Delphi Debugger bis Version 5 und OpenGL. Am besten bei Tools/Debugger Optionen integriertes Debuggen ausschalten, wenn es nicht unbedingt benötigt wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 10, 2004 22:38 
Offline
DGL Member

Registriert: Fr Dez 10, 2004 16:59
Beiträge: 52
Ne, das kanns eigentlich nicht sein -> ich hab Delphi 7

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 10, 2004 23:00 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Aug 29, 2003 16:34
Beiträge: 34
Wohnort: Black Forrest
Das muss jetzt nicht die Lösung sein, aber deinitialisiert Du es auch beim Schliessen ?

_________________
Mfg [-Darty-]
- Gehörlose Delphianer gibt es selten -


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 10, 2004 23:03 
Offline
DGL Member

Registriert: Fr Dez 10, 2004 16:59
Beiträge: 52
Sorry, es war trotz V.7 die Lösung. Was mach ich denn für Einbußungen dadurch, dass ich integriertes Debugging abschalte??

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 10, 2004 23:04 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Dann funktionieren Einzelschritt und Haltepunkte nicht mehr. Außerdem hält dann Delphi nicht mehr bei Exceptions. Eventuell liegt aber trotzdem ein Fehler in deinem Programm vor.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 11, 2004 00:11 
Offline
DGL Member

Registriert: Fr Dez 10, 2004 16:59
Beiträge: 52
hm, ich wüsste jetzt nicht inwiefern es an meinem Code liegen könnte. Ich poste ihn einfach mal (ist noch nicht zu umfangreich ;) ):
Code:
  1.  
  2. unit UMain;
  3.  
  4. interface
  5.  
  6. uses
  7.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  8.   Dialogs, OpenGL, dglOpenGL, ExtCtrls;
  9.  
  10. type
  11.   TfrmMain = class(TForm)
  12.     Timer1: TTimer;
  13.     procedure FormCreate(Sender: TObject);
  14.     procedure FormDestroy(Sender: TObject);
  15.     procedure FormResize(Sender: TObject);
  16.     procedure OnIdle(Sender: TObject; var Done: Boolean);
  17.     procedure Timer1Timer(Sender: TObject);
  18.     procedure FormKeyDown(Sender: TObject; var Key: Word;
  19.       Shift: TShiftState);
  20.   private
  21.     myDC: HDC;
  22.     myRC: HGLRC;
  23.     myPalette: HPalette;
  24.     myFPS: Integer;
  25.     myAngleY, myAngleZ: Integer;
  26.     lastCount: Cardinal;
  27.     procedure SetupPixelFormat;
  28.     procedure ShowFPS;
  29.   public
  30.     { Public-Deklarationen }
  31.   end;
  32.  
  33. procedure Render;
  34.  
  35. var
  36.   frmMain: TfrmMain;
  37.  
  38. implementation
  39.  
  40. {$R *.dfm}
  41.  
  42. procedure Render;
  43. begin
  44.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  45.   glLoadIdentity;
  46.   glTranslate(0,0,-6);
  47.   glRotate(45,1,0,0);
  48.   glRotate(45,0,1,0);
  49.   glRotate(frmMain.myAngleZ+frmMain.myAngleZ,0,0,1);
  50.   glRotate(frmMain.myAngleY+frmMain.myAngleY,0,1,0);
  51.   glBegin(GL_QUADS);
  52.     // Vorderseite (rot)
  53.     glColor3f(1,0,0);
  54.     glVertex3f(-1, 1, 1);
  55.     glVertex3f( 1, 1, 1);
  56.     glVertex3f( 1,-1, 1);
  57.     glVertex3f(-1,-1, 1);
  58.     // Rückseite (blau)
  59.     glColor3f(0,0,1);
  60.     glVertex3f(-1, 1,-1);
  61.     glVertex3f( 1, 1,-1);
  62.     glVertex3f( 1,-1,-1);
  63.     glVertex3f(-1,-1,-1);
  64.     // rechte Seite (grün)
  65.     glColor3f(0,1,0);
  66.     glVertex3f( 1, 1, 1);
  67.     glVertex3f( 1, 1,-1);
  68.     glVertex3f( 1,-1,-1);
  69.     glVertex3f( 1,-1, 1);
  70.     // linke Seite (gelb)
  71.     glColor3f(1,1,0);
  72.     glVertex3f(-1, 1, 1);
  73.     glVertex3f(-1, 1,-1);
  74.     glVertex3f(-1,-1,-1);
  75.     glVertex3f(-1,-1, 1);
  76.     // Boden (lila)
  77.     glColor3f(1,0,1);
  78.     glVertex3f(-1,-1, 1);
  79.     glVertex3f(-1,-1,-1);
  80.     glVertex3f( 1,-1,-1);
  81.     glVertex3f( 1,-1, 1);
  82.     // Decke (türkis)
  83.     glColor3f(0,1,1);
  84.     glVertex3f(-1, 1, 1);
  85.     glVertex3f(-1, 1,-1);
  86.     glVertex3f( 1, 1,-1);
  87.     glVertex3f( 1, 1, 1);
  88.   glEnd;
  89.  
  90.   SwapBuffers(frmMain.myDC);
  91. end;
  92.  
  93. procedure TfrmMain.FormCreate(Sender: TObject);
  94. begin
  95.   InitOpenGL;
  96.   self.myDC := GetDC(self.Handle);
  97.   SetupPixelformat;
  98.   myRC := wglCreateContext(self.myDC);
  99.   ActivateRenderingContext(myDC, myRC);
  100.  
  101.   glEnable(GL_DEPTH_TEST);
  102.   glLoadIdentity;
  103.  
  104.   // Application.OnIdle := OnIdle;
  105. end;
  106.  
  107. procedure TfrmMain.FormDestroy(Sender: TObject);
  108. begin
  109.   DeactivateRenderingContext;
  110.   wglDeleteContext(myDC);
  111.   ReleaseDC(Handle, myDC);
  112. end;
  113.  
  114. procedure TfrmMain.FormResize(Sender: TObject);
  115. begin
  116.   glViewport(0,0,Width,Height);
  117.   glMatrixMode(GL_PROJECTION);
  118.   glLoadIdentity;
  119.   gluPerspective(45.0,Width/Height,1,100);
  120.   glMatrixMode(GL_MODELVIEW);
  121.   glLoadIdentity;
  122. end;
  123.  
  124. procedure TfrmMain.SetupPixelFormat;
  125. var hHeap: THandle;
  126.   nColors, i: Integer;
  127.   lpPalette : PLogPalette;
  128.   byRedMask, byGreenMask, byBlueMask: Byte;
  129.   nPixelFormat: Integer;
  130.   pfd: TPixelFormatDescriptor;
  131. begin
  132.   FillChar(pfd, SizeOf(pfd), 0);
  133.   with pfd do begin
  134.     nSize     := sizeof(pfd);               // Länge der pfd-Struktur
  135.     nVersion  := 1;                         // Version
  136.     dwFlags   := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or
  137.                  PFD_DOUBLEBUFFER;          // Flags
  138.     iPixelType:= PFD_TYPE_RGBA;             // RGBA Pixel Type
  139.     cColorBits:= 24;                        // 24-bit color
  140.     cDepthBits:= 32;                        // 32-bit depth buffer
  141.     iLayerType:= PFD_MAIN_PLANE;            // Layer Type
  142.   end;
  143.   nPixelFormat:= ChoosePixelFormat(myDC, @pfd);
  144.   SetPixelFormat(myDC, nPixelFormat, @pfd);
  145.                                             // Farbpalettenoptimierung wenn erforderlich
  146.   DescribePixelFormat(myDC, nPixelFormat,
  147.                       sizeof(TPixelFormatDescriptor),pfd);
  148.   if ((pfd.dwFlags and PFD_NEED_PALETTE) <> 0) then begin
  149.     nColors  := 1 shl pfd.cColorBits;
  150.     hHeap    := GetProcessHeap;
  151.     lpPalette:= HeapAlloc
  152.        (hHeap,0,sizeof(TLogPalette)+(nColors*sizeof(TPaletteEntry)));
  153.     lpPalette^.palVersion := $300;
  154.     lpPalette^.palNumEntries := nColors;
  155.     byRedMask  := (1 shl pfd.cRedBits) - 1;
  156.     byGreenMask:= (1 shl pfd.cGreenBits) - 1;
  157.     byBlueMask := (1 shl pfd.cBlueBits) - 1;
  158.     for i := 0 to nColors - 1 do begin
  159.       lpPalette^.palPalEntry[i].peRed  :=
  160.         (((i shr pfd.cRedShift)  and byRedMask)  *255)DIV byRedMask;
  161.       lpPalette^.palPalEntry[i].peGreen:=
  162.         (((i shr pfd.cGreenShift)and byGreenMask)*255)DIV byGreenMask;
  163.       lpPalette^.palPalEntry[i].peBlue :=
  164.         (((i shr pfd.cBlueShift) and byBlueMask) *255)DIV byBlueMask;
  165.       lpPalette^.palPalEntry[i].peFlags:= 0;
  166.     end;
  167.     myPalette:= CreatePalette(lpPalette^);
  168.     HeapFree(hHeap, 0, lpPalette);
  169.     if (myPalette <> 0) then begin
  170.       SelectPalette(myDC, myPalette, False);
  171.       RealizePalette(myDC);
  172.     end;
  173.   end;
  174. end;
  175.  
  176. procedure TfrmMain.OnIdle(Sender: TObject; var Done: boolean);
  177. begin
  178.   Render;
  179.   ShowFPS;
  180. end;
  181.  
  182. procedure TfrmMain.ShowFPS;
  183. begin
  184.   if GetTickCount - lastCount >= 1000 then
  185.   begin
  186.     self.Caption := 'FPS: '+IntToStr(myFPS);
  187.     myFPS := 0;
  188.     lastCount := GetTickCount;
  189.   end;
  190.   inc(myFPS);
  191.  
  192. end;
  193.  
  194. procedure TfrmMain.Timer1Timer(Sender: TObject);
  195. var done: Boolean;
  196. begin
  197.   OnIdle(nil, done);
  198. end;
  199.  
  200. procedure TfrmMain.FormKeyDown(Sender: TObject; var Key: Word;
  201.   Shift: TShiftState);
  202. begin
  203.   if Key = VK_LEFT then dec(myAngleY,5);
  204.   if Key = vk_RIGHT then inc(myAngleY,5);
  205.   if Key = VK_UP then inc(myAngleZ,5);
  206.   if Key = VK_DOWN then dec(myAngleZ,5);
  207. end;
  208.  
  209. end.
  210.  

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 13, 2004 18:13 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
LarsMiddendorf hat geschrieben:
Vermutlich ist das das bekannte Problem mit dem Delphi Debugger bis Version 5 und OpenGL. Am besten bei Tools/Debugger Optionen integriertes Debuggen ausschalten, wenn es nicht unbedingt benötigt wird.

Das Problem mit dem Debugger tritt aber auch bei mir auf, obwohl ich Delphi 6 hab. ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 13, 2004 18:53 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
@ SpaceJunky:
Zitat:
Marcello schrieb:
Sorry, es war trotz V.7 die Lösung. Was mach ich denn für Einbußungen dadurch, dass ich integriertes Debugging abschalte??

Einen Versuch wärs ja wert gewesen ;)

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 14 Queries | GZIP : On ]