![]() |
ID_XXX Konstanten in welcher Unit???
Hallo,
noch immer studiere ich Luckies Windows API Tutorial. Da gibt es ein Beispiel ganz am Anfang, wo 2 Fenster erzeugt werden. Das zweite Fenster wird durch Klicken eines Buttons aktiviert. Mein Compiler findet aber weder die Konstante ID_BUTTON noch ID_BUTTON1. Leider ist der komplette Quellcode im Turorial nicht abgedruckt. Deshalb frage ich: - in welcher Unit befinden sich die ID_XXX Konstanten. Windows und Messages habe ich schon in der Uses Klausel. - Wo wird der Button erzeugt, mit dem ich das zweite Fenster aktiviere. Da ID_BUTTON1 nicht gefunden wird, kann ich das Beispiel nicht ausführen. Kann ich denn gefahrlos einen eigenen Zahlenwert für die Konstante ID_BUTTON1 definieren, ohne Seiteneffekte, weil der von mir gewählte Zahlenwert doch schon von Windows reserviert ist? Ich habe das Beispiel 1 im Kapitel 1.1.1 um folgende Funktionen erweitert:
Delphi-Quellcode:
Alles andere habe ich exakt aud dem Tutorial übernommen, außer die Abmaße des Fensters, weil ich mit den Konstanten CW_USEDEFAULT die Meldung erhalten habe, das der Bereich des Fensters 1 zu klein sei. Daher habe ich die Abmaße des 2. Fensters kleiner gemacht, als die des ersten Fensters.
//Window Prozedur für das 2. Fenster
function WndProc2(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: LParam): lresult; stdcall; begin case uMsg of WM_COMMAND: begin if HiWord(WParam) = BN_Clicked then case LoWord(WParam) of IDC_BUTTON1: hwnd2 := CreateWindowEx( 0, ClassName2, Window2Name, WS_OVERLAPPEDWINDOW or WS_VISIBLE, 40,10,300,200, hwnd1, 0, hInstance, nil ); end; end; WM_DESTROY: PostQuitMessage(0); else Result := DefWindowProc(hWnd, uMsg, wParam, lParam); end; end; |
AW: ID_XXX Konstanten in welcher Unit???
Das dürften projektspezifische IDs für die Controls sein. Eigentlich müssten sie irgendwo im Projektquelltext enthalten sein.
|
AW: ID_XXX Konstanten in welcher Unit???
Danke! Da brauche ich nicht weiter zu suchen.
Nein, leider ist die Quelltexterweiterung in Luckies Tutorial nur angedeutet und der Quelltext in der Winapi_Demos.zip fehlt leider für dieses Beispiel. Aber da leg ich mal einen eigenen Zahlenwert für meine Konstante fest. |
AW: ID_XXX Konstanten in welcher Unit???
Welches Demo genau. Die IDs identifizieren die Schaltflächen. Die Konstanten selbst IDC_BUTTON1 usw. sind immer im Quelltext definiert. Beispiel Button Demo:
Datei Button.dpr: Zeile 44ff
Delphi-Quellcode:
Zeile 75ff
const
IDC_BUTTON = 3; IDC_BMPBUTTON = 4;
Delphi-Quellcode:
Bei größeren Projekten habe ich sie aber auch teilweise in Include-Dateien ausgelagert, der Übersicht halber.
{Button erstellen}
hwndButton := CreateWindowEx(WS_EX_CLIENTEDGE, 'BUTTON', '&Beenden', WS_VISIBLE or WS_CHILD, 45, 20, 100, 25, hWnd, IDC_BUTTON, hInstance, nil); {Bitmap-Button erstellen} hwndBmpButton := CreateWindowEx(0, 'BUTTON', 'Button', WS_VISIBLE or WS_CHILD or {$IFDEF USEICON} BS_ICON {$ELSE} BS_BITMAP {$ENDIF}, 45, 60, 100, 25, hWnd, IDC_BMPBUTTON, hInstance, nil); |
AW: ID_XXX Konstanten in welcher Unit???
Habs gefunden.
Delphi-Quellcode:
Schock-schwere-Not. Die Dinger lassen sich mit Delphi 2006 immer noch ohne Probleme kompilieren. :shock:
{******************************************************************************}
{ } { TwoWindows } { } { Copyright (c) 2001 Michael Puff } { www.luckie-online.de } { mpuff@luckie-online.de } { } {******************************************************************************} program TwoWindows; {$R resource.res} uses Windows, Messages; const ClassName1 = 'Wnd1Class'; ClassName2 = 'Wnd2Class'; Window1Name = 'Window 1'; Window2Name = 'Window 2'; WindowWidth1 = 500; WindowHeight1 = 400; WindowWidth2 = 300; WindowHeight2 = 200; IDC_BUTTON1 = 1; // <--- !!!!! |
AW: ID_XXX Konstanten in welcher Unit???
Zitat:
Fakt ist doch das die API unabhängig von irgendwelchen Delphi Versionen sind. Selbst mit D3 sollte das gehen. gruss |
AW: ID_XXX Konstanten in welcher Unit???
ja, das ist klar. Nur ich hatte sie mit D2006 noch nie angefasst gehabt, deswegen die verwunderte Freude. :-D
|
AW: ID_XXX Konstanten in welcher Unit???
Zitat:
Davon ab sind die Tutorials Toll auch wenn ich sie nicht benötige. :thumb: gruss |
AW: ID_XXX Konstanten in welcher Unit???
Danke.
|
AW: ID_XXX Konstanten in welcher Unit???
[OT]
Zitat:
[/OT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 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