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 GWL_STYLE (https://www.delphipraxis.net/86176-gwl_style.html)

delphinia 10. Feb 2007 13:31


GWL_STYLE
 
Hallo

mittels:

lvHan := GetDesktopListView;
L := GetWindowLong(lvHan, GWL_STYLE);
if (L and LVS_AUTOARRANGE = 0) then

Kann ich den Status von AutoArrange abfragen - funktioniert!

Aber wie kann ich den Status von SNAPTOGRID da gibt es kein LVS_SNAPTOGRID - abfragen?

delphinia 12. Feb 2007 14:09

Re: GWL_STYLE
 
keiner ein Ideechen für mich?

Robert Marquardt 12. Feb 2007 14:36

Re: GWL_STYLE
 
Gib doch mal den Wert von L in Hex aus und schau nach welches Bit es sein koennte. Mit der Information kannst du dir LVS_SNAPTOGRID selbst deklarieren.
Es besteht allerdings die Moeglichkeit das das Bit nicht in GWL_STYLE abgelegt ist.

sirius 12. Feb 2007 14:38

Re: GWL_STYLE
 
Und was ist mit "LVA_SNAPTOGRID"?

delphinia 12. Feb 2007 14:39

Re: GWL_STYLE
 
@Robert Marquardt
stop ;-( das war mir nun zu hoch!
Sorry magst mir das genauer erklären? Ich danke dir

Robert Marquardt 12. Feb 2007 14:58

Re: GWL_STYLE
 
@sirius, LVA_SNAPTOGRID wird mit der Message LVM_ARRANGE an die Control gesendet. Es hat nichts mit dem GWL_STYLE zu tun.

@delphinia, Was du mit deinem Code "if (L and LVS_AUTOARRANGE = 0) then" machst ist Bits in einem Integer abfragen.
Du versuchst herauszubekommen ob ein anderes Bit die Bedeutung von SNAPTOGRID hat.
Was sirius erwaehnt bringt mich allerdings zu der Vermutung das es kein solches Bit gibt. SNAPTOGRID ist ein Kommando an den Listview.
Es macht keinen Sinn das im Style aufzuheben. Im Style stehen permanente Zustaende.

delphinia 12. Feb 2007 15:02

Re: GWL_STYLE
 
also wenn ich auf dem Desktop rechtsklicke dann auf "symbole anordnen" gibt es da "Automatisch anordnen" und "Am Raster ausrichten" dieses am Raster ausrichten möchte ich gerne wissen ob es aktiviert oder deaktiviert ist. mit dem "Automatisch anordnen" geht es ja...

DGL-luke 12. Feb 2007 15:12

Re: GWL_STYLE
 
Ja, zu 9x-Zeiten war das noch ein Kommando, jetzt ist es ein Zustand...

Also das sollte sich in der MSDN bzw. im PSDK doch was finden lassen?!

Luckie 12. Feb 2007 15:24

Re: GWL_STYLE
 
Sollte eigentlich auch irgendwo in der Registry stehen. Einfach mal den RegMon von SysInternals benutzen und gucken, wo was in die Registry geschrieben wird, beim Ändern der Eigenschaft.

delphinia 12. Feb 2007 15:29

Re: GWL_STYLE
 
tat ich schon aber nichts gefunden.. ;-(

sirius 12. Feb 2007 15:33

Re: GWL_STYLE
 
@robert
Das weiss ich.
Man kann es ja mit LVM_ARRANGE setzen, vielleicht kann man es auch mit irgendetwas abfragen.

Edit:
Zitat:

Zitat von msdn
Extended List-View Styles
Use the LVM_SETEXTENDEDLISTVIEWSTYLE message or one of the ListView_SetExtendedListViewStyle or ListView_SetExtendedListViewStyleEx macros to employ these extended list-view control styles.

Constants
...
LVS_EX_SNAPTOGRID
Windows Vista. In icon view, icons automatically snap into a grid.
...

Wieso vista? Das gibts doch schon bei XP?
Einfach mal probieren ob sich eine der beiden Zahlen Style oder ExStyle ändert, wenn du snaptoGrid ausschaltest(einschaltest).

Robert Marquardt 12. Feb 2007 15:35

Re: GWL_STYLE
 
Na dann mach mal ShowMessageFmt('%.8x', [L]); mit und ohne diese Option aktiviert. Ist der ausgegebene Wert unterschiedlich, dann steht dieses Flag im Style.
Poste dann diese Werte hier und wir schnitzen dir die benoetigte Konstante zum Test des Bits.

delphinia 12. Feb 2007 15:38

Re: GWL_STYLE
 
Zitat:

Zitat von Robert Marquardt
Na dann mach mal ShowMessageFmt('%.8x', [L]); mit und ohne diese Option aktiviert. Ist der ausgegebene Wert unterschiedlich, dann steht dieses Flag im Style.
Poste dann diese Werte hier und wir schnitzen dir die benoetigte Konstante zum Test des Bits.


Der wert ist 56002A40 aber dieser ist immer gleich!

Robert Marquardt 12. Feb 2007 15:47

Re: GWL_STYLE
 
Nun, dann heulst du den falschen Baum an. Die Information ist nicht an dieser Stelle gespeichert.
Probier mal auf gleiche Weise GWL_USERDATA aus.

delphinia 12. Feb 2007 16:37

Re: GWL_STYLE
 
Zitat:

Zitat von Robert Marquardt
Nun, dann heulst du den falschen Baum an. Die Information ist nicht an dieser Stelle gespeichert.
Probier mal auf gleiche Weise GWL_USERDATA aus.

Heulen tu ich NOCH nicht ;-)...

Versuchsaufbau;
Delphi-Quellcode:
  lvHan := GetDesktopListView;
  L := GetWindowLong(lvHan, GWL_USERDATA);

  ShowMessageFmt('%.8x', [L]);
Brint nur Nullen

sirius 12. Feb 2007 17:00

Re: GWL_STYLE
 
GWL_EXSTYLE

delphinia 12. Feb 2007 17:01

Re: GWL_STYLE
 
Zitat:

Zitat von sirius
GWL_EXSTYLE

Delphi-Quellcode:
  lvHan := GetDesktopListView;
  L := GetWindowLong(lvHan, GWL_EXSTYLE );

  ShowMessageFmt('%.8x', [L]);
Auch nur Nullen

delphinia 12. Feb 2007 17:28

Re: GWL_STYLE
 
Ok ich hab es nach viel MSDN lesen


Delphi-Quellcode:
const

  LVS_EX_SNAPTOGRID = $80000;
var
  lvHan: HWnd;
  L, lvStyles: DWord;
  m: integer;
begin
  lvHan := GetDesktopListView;
 // L := GetWindowLong(lvHan, GWL_EXSTYLE);



  lvStyles := SendMessage(lvHan, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
  if (lvStyles and LVS_EX_SNAPTOGRID) > 0 then
ShowMessage('1');

turboPASCAL 12. Feb 2007 17:30

Re: GWL_STYLE
 
Hi,
verwende doch bitte die Delphi-Tags (Button-Delphicode).


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz