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

Aktuelle Zeit: Mo Jun 03, 2024 14:03

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 19, 2003 16:50 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
nabend,
also ich experimentier gerade etwas mit api programmieren rum. ich hab jetzt nur ein problem:
wenn ich folgenden code zur erstellung des fensters nehme:

Code:
  1.   aWindow := CreateWindowEx(0,
  2.                             szClassName,
  3.                             szAppName,
  4.                             WS_CAPTION or WS_VISIBLE or WS_SYSMENU
  5.                             or WS_MINIMIZEBOX or WS_MAXIMIZEBOX or WS_SIZEBOX,
  6.                             CW_USEDEFAULT,
  7.                             CW_USEDEFAULT,
  8.                             640,
  9.                             480,
  10.                             0,
  11.                             0,
  12.                             hInstance,
  13.                             nil);
  14.  
  15.  
  16.  
  17.   // aWindow = 0 -> Fehlschlag
  18.   if aWindow=0 then
  19.   begin
  20.     MessageBox(0,'2','2',MB_OK);
  21.     Halt(2);
  22.   end;
  23.  


dann gibt er mir die messagebox wieder.

habe ich allerdings nur das createwindowex (ohne awindow und die schleife in klammer) dann funktioniert es einwandfrei! gibt mir die function kein handle zurück oder was ist da falsch????? :huh:

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 20, 2003 00:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
hmm... was genau hast du gemacht, damit es funzt? Ich sehe keine schleife...

Ansonsten:
- Wie sieht deine Fensterklasse aus? (szClassName) Hast du die korrekt ausgefüllt und registriert?
- bei dwStyle nimm einfach mal ein Standardfenster (WS_TILEDWINDOW) deine Flags sind ja nur einzelne Atribute, k.a. ob da nicht vielleicht was fehlt.
- Außerdem muss szAppName ein String und aWindow ein HWND sein. nur so zur kontrolle...


hoffe irgendwas davon hat geholfen...

-lith

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 20, 2003 09:37 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
hier ist die .dpr datei mal komplett :

<a href='http://www.rochus.net/pas/main.txt' target='_blank'>http://www.rochus.net/pas/main.txt</a>


dann seht ihr was ich sonst so mache und wie meine wndproc aussieht. hmm.

das mit getlasterror muss ich heute abend mal ausprobieren, komme jetzt nicht an meinen eigentlichen pc :(

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 20, 2003 14:12 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Mir sind ein paar kleinigkeiten aufgefallen:

Du musst die HInstance außerhalb Deiner With-Anweisung verwenden, denn sonst ist leider unklar, welches HInstance Du Verwenden möchstest.
Code:
  1.  
  2.   with WindowClas do
  3.     ...
  4.     hInstance := HInstance; // Bezieht sich beides auf WindowClass!
  5.   end;
  6.  

Das ist, als würdest du WindowClass.HInstance := WindowClass.HInstance machen. Folgendermaßen ist das Problem zu lösen:
Code:
  1.  
  2.   with WindowClass do
  3.     ...
  4.   end;
  5.   WindowClass.HInstance := HInstance; // Jetzt erst wird die globale Variable zugewiesen
  6.  


Wenn Du das machts, wirst Du feststellen, dass es bereits einen Fehler bei RegisterClassEx gibt. Dazu gibt es zwei Lösungen:

1.) Du setzt in Deiner WndClassEx-Struktur die Variable hIconSm auf 0. (Hast Du nämlich vergessen!)
2.) Du verwendest WndClass und RegisterClass. (Reicht eigentlich völlig aus, da du das kleine Icon sowieso nicht verwendest).

Prinzipiell empfiehlt es sich immer, alle Strukturen mit 0 vorzuinitialisieren: FillChar(WindowClass, SizeOf(TWndClassEx), #0);

Was die Farbe Deines Fensters angeht, so empfiehlt sich diese mit GetStockObjekt zu setzen (also WindowClass.hbrBackground := GetStockObject(BLACK_BRUSH); ) Sieht besser aus, ist aber nicht zwingen notwendig.

Dein Problem liegt also nich tan CreateWindowEx sondern an RegisterClassEx. Mach die Änderungen und dein Programm müsste tun!

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 20, 2003 18:07 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
danke :)

_________________
http://www.rochus.net


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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.051s | 15 Queries | GZIP : On ]