Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [erledigt]Listview Flat darstellen (https://www.delphipraxis.net/34697-%5Berledigt%5Dlistview-flat-darstellen.html)

kiar 26. Nov 2004 18:09


[erledigt]Listview Flat darstellen
 
hallo,

ich denke das thema hatten wir schon, aber irgendwie krieg ich das nicht hin, wie kann ich den Header auch auf flat stellen?

ratschläge und info's gerne willkommen.

danke raik

edit:
Delphi-Quellcode:
const
  LVM_GETHEADER = LVM_FIRST + 31;
var
  hHeader: THandle;
  style: dWord;
begin
  {to get the header handle for the listview}
  hHeader := SendMessage(ListView1.Handle, LVM_GETHEADER, 0, 0);

  {to get the current style attributes for the header}
  style := GetWindowLong(hHeader, GWL_STYLE);

  {to toggle the HDS_BUTTONS style}
  style := style xor HDS_BUTTONS;

  {to apply the new style}
  SetWindowLong(hHeader, GWL_STYLE, style);

  {to invalidate the listview}
  SetWindowPos(ListView1.Handle, Form1.Handle, 0, 0, 0, 0,
               SWP_NOZORDER or SWP_NOSIZE or SWP_NOMOVE or SWP_DRAWFRAME)
end;
gefunden im internet, gibt mir aber fehlermeldung bei lvm_first

Kernel32.DLL 26. Nov 2004 19:28

Re: Listview Flat darstellen
 
Zitat:

gibt mir aber fehlermeldung bei lvm_first
Is denn LVM_FIRST überhaupt irgendwo deklariert?

kiar 26. Nov 2004 20:00

Re: Listview Flat darstellen
 
hallo, war in dem artikel nicht

habe jetzt nochmals gesucht und das gefunden
Delphi-Quellcode:
Private Const LVM_FIRST = &H1000 '// ListView messages
also es ist eine message, ich denke einer user message,oder?

raik

Kernel32.DLL 26. Nov 2004 20:22

Re: Listview Flat darstellen
 
Zitat:

Zitat von kiar
also es ist eine message, ich denke einer user message,oder?

hmm... kann ich jetzt spontan nicht so sicher beantworten, denk aber mal schon.
Was is denn das für eine Fehlermeldung?


Ähm...

Zitat:

LVM_FIRST = &H1000
Was ist denn das für ein 'H' und '&' :gruebel:
Hat das nicht irgendetwas mit "höherwertigen Byte" zu tun?
:arrow: das kenn ich aber nur aus Assembler, geht das überhaupt in Delphi?

*ausprobier*

[Edit] Nee, geht natürlich nicht. Müsste also so aussehen
Delphi-Quellcode:
LVM_FIRST = $1000;
[/Edit]

Jens Schumann 26. Nov 2004 20:35

Re: Listview Flat darstellen
 
Hallo,
so könnte es klappen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  HDS_BUTTONS = $2;
  LVM_FIRST = $1000;
  LVM_GETHEADER = LVM_FIRST + 31;
var
  hHeader: THandle;
  style: dWord;
begin
  {to get the header handle for the listview}
  hHeader := SendMessage(ListView1.Handle, LVM_GETHEADER, 0, 0);

  {to get the current style attributes for the header}
  style := GetWindowLong(hHeader, GWL_STYLE);

  {to toggle the HDS_BUTTONS style}
  style := style xor HDS_BUTTONS;

  {to apply the new style}
  SetWindowLong(hHeader, GWL_STYLE, style);

  {to invalidate the listview}
  SetWindowPos(ListView1.Handle, Form1.Handle, 0, 0, 0, 0,
               SWP_NOZORDER or SWP_NOSIZE or SWP_NOMOVE or SWP_DRAWFRAME)
end;

kiar 26. Nov 2004 21:11

Re: Listview Flat darstellen
 
hallo jens,

auch das war wieder der richtige tip,
kannst du mir mal die LVM_First erklären.

danke raik

Christian Seehase 26. Nov 2004 23:39

Re: Listview Flat darstellen
 
Moin Raik,

LVM_FIRST ist in der commctrl.h deklariert.
Es ist der erste Wert der ListView Messages.

kiar 26. Nov 2004 23:41

Re: Listview Flat darstellen
 
moin chris,

danke , aber was hat es mit dem wert auf sich?

raik

Christian Seehase 26. Nov 2004 23:44

Re: Listview Flat darstellen
 
Moin Raik,

er bildet die Basis für die anderen LVM_xxx Messages.
Beispielweise wird LVM_GETBKCOLOR als LVM_FIRST+0 deklariert (ist also mit LVM_FIRST identisch).

Sprint 27. Nov 2004 00:46

Re: Listview Flat darstellen
 
Zitat:

Zitat von Kernel32.DLL
Was ist denn das für ein 'H' und '&'
Hat das nicht irgendetwas mit "höherwertigen Byte" zu tun?

Das ist eine Konstantendeklaration aus Visual Basic.
Visual Basic: &H1000
Delphi: $1000

Zitat:

Zitat von Christian Seehase
LVM_FIRST ist in der commctrl.h deklariert. Es ist der erste Wert der ListView Messages.

Zumindesten in Delphi 7 befindet sich LVM_FIRST in der Unit CommCtrl.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr.
Seite 1 von 2  1 2      

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