AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bug in der Commctrl.pas von Borland?

Ein Thema von Luckie · begonnen am 9. Okt 2006 · letzter Beitrag vom 9. Okt 2006
Antwort Antwort
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 9. Okt 2006, 00: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
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: Bug in der Commctrl.pas von Borland?

  Alt 9. Okt 2006, 03:52
hi,

also bei mir steht da :

Result := SendMessageW(hwndLV, LVM_GETITEMTEXTW, i, Longint(@Item)); und

Result := Bool( SendMessageW(hwndLV, LVM_SETITEMTEXTW, i, Longint(@Item)) );
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Bug in der Commctrl.pas von Borland?

  Alt 9. Okt 2006, 07:33
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.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Bug in der Commctrl.pas von Borland?

  Alt 9. Okt 2006, 10:00
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 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