Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

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

Bug in der Commctrl.pas von Borland?

  Alt 8. Okt 2006, 23:59
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:
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;
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.

Bei ListView_SetItemTextW übrigens das gleiche:
Delphi-Quellcode:
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;
Was soll denn das?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat