Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
702 Beiträge
 
Delphi 12 Athens
 
#2

AW: Länge der ComboListBox items festlegen

  Alt 3. Jun 2019, 11:11
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.
Peter Below
  Mit Zitat antworten Zitat