//stdctrls.pas内 function TCustomComboBoxStrings.Get(Index: Integer): string; var Len: Integer; begin Len := SendMessage(ComboBox.Handle, CB_GETLBTEXTLEN, Index, 0); if Len > 0 then begin SetLength(Result, Len); SendMessage(ComboBox.Handle, CB_GETLBTEXT, Index, Longint(PChar(Result))); end end;
//ComCtrls.pas内 function TToolBar.UpdateItem(Message, FromIndex, ToIndex: Integer): Boolean; var //Buffer: array[0..4095] of Char; Buffer: array of Char; begin (略) //StrPCopy(Buffer, CaptionText); SetLength(Buffer, Length(captiontext) + 1); StrPLCopy(@Buffer[0], CaptionText, Length(CaptionText)); //UpdateItem2も同じように直した。 (略) end;
function TCustomListView.GetSearchString: string; var Buffer: array[0..1023] of char; begin Result := ''; if HandleAllocated and ListView_GetISearchString(Handle, Buffer) then Result := Buffer; end;