![]() |
Re: tListView-Spalten
Zitat:
|
Re: tListView-Spalten
Zitat:
|
Re: tListView-Spalten
Was könnte wohl daran falsch sein?
Delphi-Quellcode:
function ListView_InsertItemW(hWnd: HWND; const pItem: TLVItemW): Integer;
begin Result := Integer( SendMessage(hWnd, LVM_INSERTITEM, 0, Longint(@pItem)) ); end; function ListView_FindItemW(hWnd: HWND; iStart: Integer; const plvfi: TLVFindInfoW): Integer; begin Result := SendMessage(hWnd, LVM_FINDITEM, iStart, Longint(@plvfi)); end; function ListView_GetStringWidthW(hwndLV: HWND; psz: PWideChar): Integer; begin Result := SendMessage(hwndLV, LVM_GETSTRINGWIDTH, 0, Longint(psz)); end; u.s.w. |
Re: tListView-Spalten
Hi,
also wenn die Borland so definiert hat, dann will ich nichts gesagt haben. Chris |
Re: tListView-Spalten
Alle die den Source "CommCtrl.pas" haben können es bestätigen!
Gut das ich ihn an dem Tag (wo mir das aufgefallen ist) hatte! Ich hatte nämlich schon an mir selbst gezweifelt! Warum es nicht funktioniert und nur ein Buchstabe angefügt wird! :roll: Aber nun weis ich es ja! |
Re: tListView-Spalten
Um mal zu meinem Problem zurück zu kommen:
neolithos Methode funktioniert jedenfalls. Hab halt die CommCtrl eingebunden. Danke. |
Re: tListView-Spalten
Zitat:
Delphi-Quellcode:
In den C-Headerdateien gibt´s dafür die UNICODE-Definition. Ist die gesetzt, wird bei der Nutzung der Header auch die korrekte Nachricht (in dem Fall LVM_GETSTRINGWIDTHW) benutzt. Den gleichen Effekt könnte man mit bedingter Compilierung
const
{$EXTERNALSYM LVM_GETSTRINGWIDTHA} LVM_GETSTRINGWIDTHA = LVM_FIRST + 17; {$EXTERNALSYM LVM_GETSTRINGWIDTHW} LVM_GETSTRINGWIDTHW = LVM_FIRST + 87; {$EXTERNALSYM LVM_GETSTRINGWIDTH} LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA;
Delphi-Quellcode:
natürlich auch in den Units von Borland erreichen. Das setzt aber den Quellcode voraus, und man muss diesen bearbeiten ... bei der Masse an Units könnte das u.U. eine ganze Weile dauern, bis man alles nach evtl. Ansi- und Unicode-Nachrichten abgegrast hat. :(
{$DEFINE UNICODE}
// ... viele Codezeilen ... const {$EXTERNALSYM LVM_GETSTRINGWIDTH} {$IFDEF UNICODE} LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHW; {$ELSE} LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA; {$ENDIF} Zitat:
Dass auch Microsoft dabei Fehler unterlaufen, beweisen ![]() |
Re: tListView-Spalten
Das man Delphi-Programm, ob nonVCL oder VCL, nicht auf Uni-Code umschalten kann stört mich seit dem ich die vorzüge für Mehrsprachige Anwendungen entdeckt habe!
Weiterhin ist die Schlampig umgesetzte Thread-Sicherheit in der VCL mir ein Dorn im Auge! Ich halte viel auf Delphi bzw. Object-Pascal, aber die zwei wünsche hätten die Borland-Leute schon mal Regeln können! Doch wird durch .NET-Geschichte (was mich noch nicht überzeugt hat) ja die ganze VCL in den Hintergrund rücken! *schade* Das war vielleicht OT aber ich musste es mal loswerden! |
Re: tListView-Spalten
Zitat:
Was mich lediglich interessieren würde, sind ein paar spezielle Win XP-Dinge und deren Umsetzung in .NET. Okay, ich habe nur Beta 2 vom letzten VS.NET (nicht die aktuelle Version!), vielleicht ist das im aktuellen Visual Studio ja schon anders, aber irgendwie habe ich bspw. bei der List-View die neuen Befehle (Gruppierung, Spalte markieren) vermisst. |
Re: tListView-Spalten
Im .NET gibt es kein
ScrollWindow SetCaret ListView-Owner-Data ListView-Owner-Draw ... jedenfalls habe ich es noch nicht gefunden! Und API-Rufe (PInvokes) will ich nicht verwenden weil dies gegen den .NET-Etos (Plattform-Unabhängigkeit - die derzeit nicht existiert) verstoße. Will man API-Rufe verwenden muss man C-Header doch wieder übersetzen. [das geht hier langsam vom Thema ab] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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