Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Win32Api (https://www.delphipraxis.net/87877-win32api.html)

Mark90 6. Mär 2007 18:25


Win32Api
 
nabend alle zusammen!

ich habe mich in letzter zeit mal mit der win32api auseinadergesetz. ich habe eine dialogressource erstellt und dann in delphi eingebunden(wie es Michael Puff in seinem SEHR GUTEN turtorial beschrieben hat).

Ich hätte noch ein paar weitere fragen dazu:
1. Wie kann ich die Hintergrundfarbe des dialogs aus der resource ändern ( z.b. auf schwarz)
2. Wie kann ich verhindern dass der dialog nicht geschlossen (zerstört) sondern nur nicht mehr angezeigt wird.(wie bei VCL mit 2 forms habe, die eine schließe und wieder auf die andere komme)(hoffentlich verständlich).


ich hoffe jemand kennt sich damit aus und kann mir helfen!

turboPASCAL 6. Mär 2007 18:38

Re: Win32Api
 
Hi,

Luckie sollte das in seinem Tut. auch beschrieben haben wenn ich mich nicht irre.

Zum Ändern der Hintergrundfarbe eines Dialoges siehe unter Delphi-Referenz durchsuchenWM_CTLCOLORDLG.

Wenn Du verhindern möchtest das dein Dialog geschlossen und nur versteckt wird
suche mal unter den Begriffen SC_CLOSE, SC_MINIMIZE.

Mark90 6. Mär 2007 18:44

Re: Win32Api
 
hi turbopascal.
ich habe gerade die pdf datei nach WM_CTLCOLORDLG durchsucht und nichts gefunden.

und bei schließen passiert gar nichts
Delphi-Quellcode:
function dlgfunc(hwnd: hwnd; umsg: dword; wparam: wparam;
lparam: lparam): bool; stdcall;
begin
  result := true;
  CASE umsg OF
  WM_CLOSE:

  enddialog(hwnd, 0);
  WM_DESTROY:
  PostQuitMessage(0);
  WM_COMMAND:
  IF hiword(wparam) = BN_CLICKED THEN BEGIN
  CASE loword(wparam) OF
  0:     /mein exit button
  sendmessage(hwnd, SC_CLOSE, 0, 0); <--- SC_CLOSE statt WM_CLOSE
  end;
  end;
  else result := false;
end;
end;

Luckie 6. Mär 2007 21:18

Re: Win32Api
 
1.) MSDN-Library durchsuchenWM_CTLCOLORDLG

2.)
Delphi-Quellcode:
WM_CLOSE: ShowWindow(hDlg, SW_HIDE);
Dann lässt er sich allerdings auch nicht mehr schlieesen.

DP-Maintenance 6. Mär 2007 21:33

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Sonstige Fragen zu Delphi" nach "Windows API / MS.NET Framework API" verschoben.
Wenn schon im Titel Win32 API steht...

Mark90 7. Mär 2007 13:26

Re: Win32Api
 
danke luckie. ich wusste gar nicht dass microsoft so eine seite hat wo man so ziemlich alles über die api erfährt!

Christian Seehase 7. Mär 2007 17:12

Re: Win32Api
 
Moin Mark,

noch ein kleiner Tip:
Solche Konstanten kannst Du auch gut im PSDK nachschlagen (herunterzuladen bei Microsoft).
Um mal Dein Beispiel aufzugreifen:
SC_ steht für SysCommand, und es gibt eine Message WM_SYSCOMMAND, der die SC_xxx als wParam (der erste Parameter, nach der Messageangabe, also der dritte in SendMessage) angegeben werden.


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