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

Aktuelle Zeit: Fr Jul 18, 2025 12:23

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit: uses classes
BeitragVerfasst: Sa Feb 05, 2005 13:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Hallo Forum,

ich bin gerade mal wieder dabei mich mit OpenGL zu beschäftigen.
Ich möchte aus einer Textdatei Daten für die 3D Umgebung laden. In einer kleinen Demo, die sonst nichts macht, funktioniert alles wunderbar. Kopiere ich den Quelltext in mein OpenGL Projekt, löst classes einen Fehler im folgendem Code aus:

Code:
  1. // Attempts to unregister the window class
  2.   if (not UnRegisterClass('OpenGL', hInstance)) then
  3.   begin
  4.     MessageBox(0, 'Unable to unregister window class!', 'Error', MB_OK or MB_ICONERROR);
  5.     hInstance := 0;
  6.   end;
  7.  


Der Fehler tritt hier auf:
Code:
  1. if (not UnRegisterClass('OpenGL', hInstance)) then
  2.  


Dieser Quelltext ist wohl bekannt :wink:

Classes brauche ich übrigens (denke ich zumindest :cry: ), weil ich in der Textdatei alle Daten jeweils durch ein Komma getrennt abgespeichert habe. Um die Daten wieder korrekt einlesen zu können verwende ich folgende Funktion die ich im I-Net gefunden habe:

Code:
  1. function Explode(const AText: String; ADelimiter: Char): TStringDynArray;
  2. var
  3.   I: Integer;
  4. begin
  5.   with TStringList.Create do
  6.   begin
  7.     try
  8.       Delimiter := ADelimiter;
  9.       DelimitedText := AText;
  10.       SetLength(Result, Count);
  11.       for I := 0 to Count - 1 do
  12.         Result[I] := Strings[I];
  13.     finally
  14.       Free;
  15.     end;
  16.   end;
  17. end;
  18.  


Vielleicht habt ihr auch eine Idee, wie ich auf diese Funktion und damit wohl auch auch Classes verzichten kann?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 05, 2005 13:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
UnRegisterClass gibt es einmal in der Unit classes und in der Unit windows.
Veränder die uses Reihenfolge so, daß die unit windows nach der unit classes eingebunden wird.

uses classes, ..., windows, ... ;

Oder schreibt den Unitnamen vor den Aufruf:

Code:
  1. if (not Windows.UnRegisterClass('OpenGL', hInstance)) then


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 05, 2005 13:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Feb 02, 2005 14:22
Beiträge: 81
Kaum zu glauben aber wahr :!:
Vielen Dank für die Info! Tja, ich muss halt noch eine ganze Menge lernen...

Wieso verlangt Delphi denn in diesem Fall diese Reihenfolge?
Ich verstehe denn Sinn nicht so ganz.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 05, 2005 14:01 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Die Funktion gibt's zweimal und sie ist nicht überladen worden, so daß anhand der Paramterliste unterschieden würde. Delphi sucht dann nach dem Namen in den eingebundenen Units und die Funktion wurde dann zuerst in der Unit classes gefunden. Da die Parameter nicht passen, gibt's dann eben einen Fehler.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 05, 2005 18:07 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Fairerweise muss man sagen, dass dieses Verhalten net so ganz schick is, aber das is nunmalso von seiten Borlands gemacht worden. Da hilft alles wundern nix. Allerdings wäre ich wohl auch erstmal ordentlich ins knobeln gekommen. :?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


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


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.007s | 16 Queries | GZIP : On ]