Ich verwende einen alten FileDialog (Ownerdrawn)
Wenn der Ordner den ich öffnen möchte mehr wie 67 Zeichen hat dann ist die Combo Liste an der Position leer.
Gibt es einen Trick so das ich die Combo trotzdem mit mehr als 67 Zeichen füllen kann?
Theoretisch wären ja MAX_PATH möglich.
Das
Handle habe ich..
hComboPath := GetDlgItem(hMain, ID_COMBOPATH);
Delphi-Quellcode:
function TSkinOpenSaveDialog.CBListGetText(hList: HWND; Item: UINT): WideString;
var
Len: Integer;
begin
Len := SendMessage(hList, CB_GETLBTEXTLEN, Item, 0);
if Len > 0 then
begin
SetLength(Result, Len);
SendMessage(hList, CB_GETLBTEXT, Item, LPARAM(PWideChar(Result)));
end
else
SetLength(Result, 0);
end;
Len ist in dem Fall 0 wenn mehr wie 67 Zeichen.
gruss
Prüf mal die window styles der combobox (GetWindowLong(hComboPath,GWL_STYLE). Hat sie den CBS_HASSTRINGS style? Wenn nicht (vermute ich mal) ist der Code, der das owner drawing der Combobox macht auch dafür verantwortlich, die anzuzeigenden Strings irgendwo abzulegen, und vermutlich ist da die Limitierung auf 67 Zeichen zu finden.