![]() |
Bug in der Commctrl.pas von Borland?
Ich nutze die Funktion ListView_GetItemTextW aus der commctrl.pas von Borland. Gut, dass es mit der Unicode-Unterstützung nicht weit her ist, ist ja bekannt. Aber icl6 Personal dabei. Also habe ich mir die Funktion mal angeguckt:
Delphi-Quellcode:
Das kann ja nicht funktionieren. Benutzt wird die WideChar Version der TLVItem Struktur. Gesendet wird aber die Ansi-Version der Nachricht LVM_GETITEMTEXT. Da fehlt also ein W am Ende. LVM_GETITEMTEXTW muss es heißen und dann funktioniert das ganze auch.
function ListView_GetItemTextW(hwndLV: HWND; i, iSubItem: Integer;
pszText: PWideChar; cchTextMax: Integer): Integer; var Item: TLVItemW; begin Item.iSubItem := iSubItem; Item.cchTextMax := cchTextMax; Item.pszText := pszText; Result := SendMessage(hwndLV, LVM_GETITEMTEXT, i, Longint(@Item)); end; Bei ListView_SetItemTextW übrigens das gleiche:
Delphi-Quellcode:
Was soll denn das? :shock:
function ListView_SetItemTextW(hwndLV: HWND; i, iSubItem: Integer;
pszText: PWideChar): Bool; var Item: TLVItemW; begin Item.iSubItem := iSubItem; Item.pszText := pszText; Result := Bool( SendMessage(hwndLV, LVM_SETITEMTEXT, i, Longint(@Item)) ); end; |
Re: Bug in der Commctrl.pas von Borland?
hi,
also bei mir steht da :
Delphi-Quellcode:
und
Result := SendMessageW(hwndLV, LVM_GETITEMTEXTW, i, Longint(@Item));
Delphi-Quellcode:
Result := Bool( SendMessageW(hwndLV, LVM_SETITEMTEXTW, i, Longint(@Item)) );
|
Re: Bug in der Commctrl.pas von Borland?
In meinen D7-VCL-Quellen wird auch noch LVM_SETITEMTEXT ohne W verwendet. Das wurde vermutlich in D2005 oder -6 geändert. Bei Google finde ich allerdings nichts dazu.
|
Re: Bug in der Commctrl.pas von Borland?
Da es ja nicht allzuviele dieser Nachrichtenkonstanten gibt, welche mit A und W existieren, werden die es einfach vergessen haben.
Genau dieses ist auch der grund, warum ich bei meinen Definitionen die Funktionsn/Typen ohne diese Angabe, welche dann auf A, oder W umgeleitet werden konseuent weglasse, damit muß man A und W angeben und entdeckt derartige Fehler sofort. :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 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