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 Controls in Unit eingebunden - funktioniert aber nicht! (https://www.delphipraxis.net/144474-controls-unit-eingebunden-funktioniert-aber-nicht.html)

Chefx 8. Dez 2009 19:23


Controls in Unit eingebunden - funktioniert aber nicht!
 
Hey DBs,

warum sind die undefiniert wenn ich doch die Controls Unit eingebunden habe?
Hier der Quellcode:
Delphi-Quellcode:
unit Unit1;

interface

uses Windows,controls, dglOpenGL;

type tgl = class
  procedure glinit();
  procedure gl_ini(var DC:HDC; var RC:HGLRC);
  procedure gl_handleResize ();
end;

implementation

procedure tgl.glinit();
begin
  glEnable(GL_TEXTURE_2D);
  glEnable(GL_CULL_FACE);
  glCullface(GL_back);
  glEnable(gl_DEPTH_TEST);
end;

procedure tgl.gl_ini(var DC:HDC; var RC:HGLRC);
begin
  InitOpenGL;
  DC := GetDC(Handle); // Undefinierter Bezeichner: 'Handle'
  RC := CreateRenderingContext(DC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0);
  ActivateRenderingContext(DC, RC);
  GLInit;
end;

procedure tgl.gl_handleResize ();
begin
    if HandleAllocated then // Undefinierter Bezeichner: 'HandleAllocated'
   begin
    glViewport(0, 0, ClientWidth, ClientHeight);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity;
    gluPerspective(45, ClientWidth/ClientHeight, 0.1, 1000);
   end;
end;

end.
müsste doch funktionieren, weil ich das mit der Windows Unit für HDC auch gemacht haben oder nicht? :gruebel:

Danke im voraus

MfG
Chefx

DeddyH 8. Dez 2009 19:31

Re: Controls in Unit eingebunden - funktioniert aber nicht!
 
Delphi-Quellcode:
DC := GetDC(Handle);
Das ist gleichbedeutend mit
Delphi-Quellcode:
DC := GetDC(self.Handle);
. Und
Delphi-Quellcode:
type tgl = class
ist gleichbedeutend mit
Delphi-Quellcode:
type tgl = class(TObject)
Besitzt TObject ein Handle bzw. die Methode HandleAllocated? Damit dürfte die Frage beantwortet sein.

himitsu 8. Dez 2009 19:35

Re: Controls in Unit eingebunden - funktioniert aber nicht!
 
Weil das Properties von TWinControl sind und dein tgl nur von TObject abgeleitet ist ... wo sollen diese also herkommen?
(weitere Units einzubinden hilft da auch nix)

[edit]
och menno

Chefx 8. Dez 2009 19:40

Re: Controls in Unit eingebunden - funktioniert aber nicht!
 
aber von welchen Typ soll ich das ambesten ableiten? :roll:

himitsu 8. Dez 2009 19:47

Re: Controls in Unit eingebunden - funktioniert aber nicht!
 
na mindestens von TWinControl ?

wobei sich TPanel oder TPaintBox vermutlich gut eignen könnten :-D

Chefx 8. Dez 2009 20:08

Re: Controls in Unit eingebunden - funktioniert aber nicht!
 
wenn ich es mit TForm:
Delphi-Quellcode:
uses Windows,Forms,Controls,dglOpenGL;

...

type tgl = class(TForm)
  procedure glinit();
  procedure gl_ini(var DC:HDC; var RC:HGLRC);
  procedure gl_handleResize ();
end;

...
und der aufruf
Delphi-Quellcode:
...

var
  gli:Tgl;

...

  gli:=Tgl.Create(self);
  gli.gl_ini(DC,RC);
Ressource tgl nicht gefunden
aber was ist falsch? :gruebel:

DeddyH 8. Dez 2009 20:22

Re: Controls in Unit eingebunden - funktioniert aber nicht!
 
Wieso denn TForm? Willst Du gleich noch eine *.dfm schreiben? Nimm einmal TPanel, wie himitsu vorgeschlagen hat.

Chefx 8. Dez 2009 20:31

Re: Controls in Unit eingebunden - funktioniert aber nicht!
 
Ok vielen dank für eure anworten :thumb: :thumb: :thumb:
funktioniert alles :mrgreen:


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