AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ID_XXX Konstanten in welcher Unit???

Ein Thema von delphifan2004 · begonnen am 20. Nov 2015 · letzter Beitrag vom 21. Nov 2015
Antwort Antwort
delphifan2004

Registriert seit: 26. Nov 2004
Ort: Dresden
215 Beiträge
 
Delphi 10.3 Rio
 
#1

ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 07:22
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:
//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;
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.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.689 Beiträge
 
Delphi 2007 Professional
 
#2

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 08:39
Das dürften projektspezifische IDs für die Controls sein. Eigentlich müssten sie irgendwo im Projektquelltext enthalten sein.
Uli Gerhardt
  Mit Zitat antworten Zitat
delphifan2004

Registriert seit: 26. Nov 2004
Ort: Dresden
215 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 10:53
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 16:38
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:
const
  IDC_BUTTON = 3;
  IDC_BMPBUTTON = 4;
Zeile 75ff
Delphi-Quellcode:
{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);
Bei größeren Projekten habe ich sie aber auch teilweise in Include-Dateien ausgelagert, der Übersicht halber.
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (20. Nov 2015 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 16:52
Habs gefunden.

Delphi-Quellcode:
{******************************************************************************}
{                                                                              }
{                                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; // <--- !!!!!
Schock-schwere-Not. Die Dinger lassen sich mit Delphi 2006 immer noch ohne Probleme kompilieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 18:07
Zitat:
Schock-schwere-Not. Die Dinger lassen sich mit Delphi 2006 immer noch ohne Probleme kompilieren.
Solange sich die WinApi nicht ändert warum sollen sie sich nicht unter D2006 kompilieren lassen.
Fakt ist doch das die API unabhängig von irgendwelchen Delphi Versionen sind.

Selbst mit D3 sollte das gehen.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 18:10
ja, das ist klar. Nur ich hatte sie mit D2006 noch nie angefasst gehabt, deswegen die verwunderte Freude.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 18:17
ja, das ist klar. Nur ich hatte sie mit D2006 noch nie angefasst gehabt, deswegen die verwunderte Freude.
Ach so na dann
Davon ab sind die Tutorials Toll auch wenn ich sie nicht benötige.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: ID_XXX Konstanten in welcher Unit???

  Alt 20. Nov 2015, 18:21
Danke.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

AW: ID_XXX Konstanten in welcher Unit???

  Alt 21. Nov 2015, 12:03
[OT]
Schock-schwere-Not. Die Dinger lassen sich mit Delphi 2006 immer noch ohne Probleme kompilieren.
Delphi 2006 ist inzwischen auch schon wieder fast 10 Jahre alt.
[/OT]
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf