Eternal_Shield
а что именно за баг со стримингом?
а что именно за баг со стримингом?
Ты бредишь, не было такого или давай пруф.
И каким образом библиотека должна выбирать верную локаль, соответствующую языку текста, из их великого множества?
Окей, что у них есть? (как раз к вопросу выше)
Ты же всё понял
Вообще то там одно следует из другого.
Сам то понял, что написал?
С if-in создал багрепорт
1. Мне кажется у record'ов вообще не должно быть private-полей.
Ты пытаешься из Inline-функции получить доступ к private-полю, которое для inline-функции недоступно. Это не должно компилироваться вообще.
а что именно за баг со стримингом?
ссылку зажал?
1. Мне кажется у record'ов вообще не должно быть private-полей.
2. Ты пытаешься из Inline-функции получить доступ к private-полю, которое для inline-функции недоступно. Это не должно компилироваться вообще. И дело тут вовсе не в if-in
для инлайна в рамках одной сущности.
компилятор может его или заинлайнить или нет
Только если при {$Inline Auto}
Обычно же невозможность заинлайнить функцию - ошибка компиляции
роме того все дженерик-функции по определению сначала инлайнятся, и только потом уже компилируются с конкретными типами.
в Delphi - нет
что-ты понимаешь тогда под 'инлайнятся'?
с какого перепугу публичная функция вдруг стала "в рамках одной сущности" ?
...а я ее видел.
И вместо TestSetType = set of 0..255; поставь для соотвествия TestSetType = set of UInt8;
...а я ее видел.
именно что inline невозможен, скомпилировать нельзя.
хранятся в таком же полу-скомпилированном виде, как инлайн-функции в DCU.
для метода видны все поля
Методы, которые невозможно заинлайнить никогда будут являться стоперами компилации.
Тут вопрос ридабилити.
некоторые человеки-ппцшники
что инлайнится компилятором уже бинарный код, и нужды хранить что-то промежуточное нет.
инлайн не означает, что все вызовы обязательно заинлайнятся
так что приведи пруф
т.к до включения в бинарник, просто не известно что конкретно нужно компилить
в полученных dcu, код в инлайн функциях был честно собран
во-вторых и приватные методы могут вызываться снаружи
Цитата:
так что приведи пруф
Тяжело
вполне возможно что инлайн функции двуличны - хранятся и в окончательном виде, и в виде AST
В смысле не auto, когда инлайнится всё подряд, а именно когда я помечаю функции - но допустимо их проигнорить (но не заинлайнить непомеченные).
а по месту уже решают вызывать или инлайнить... и может получится, что ничего не проинлайнется, вот и игнор инлайна..
Получается, что у нас в программе две реализации одного и того же класса...
Цитата:
во-вторых и приватные методы могут вызываться снаружи
что вы имели в виду, кстати ? "дружественность" всего модуля?
с какого перепугу публичная функция вдруг стала "в рамках одной сущности" ?
с точки зрения Дельфи тот же модуль - это не "снаружи"
А как она это делает при WideString := AnsiString ?
An application sends the WM_COPY message to an edit control or combo box to copy the current selection to the clipboard in CF_TEXT format.
When you close the clipboard, if it contains CF_TEXT data but no CF_LOCALE data, the system automatically sets the CF_LOCALE format to the current input language.
А означает это то, что вся эта чехарда с переключением раскладок лежит не на Delphi, а на самой Винде
просто нет другого способ правильно определить локаль соответствующую языку текста.
В вашем с AlexXL тезисе о "гениальной" VCL "не нуждающейся в книжках" это не имеет значения.
Это просто одна из тех вещей, которые Delphi должна была икапсулировать скрыть от программиста, как и другие геморрои Windows
языковых раскладок может быть установлено более одной и даже двух, просто нет другого способ правильно определить локаль соответствующую языку текста
Cистеме нет, а программе - есть. Если Delphi решила, на примере WideString, с какой именно кодировкой она собирается трактовать AnsiString
значит и с clipboard она должна себя вести так же.
интересно, а в XE4 функция UpperCase все ещё не юникодная?
она юникодная.. но работает только с a..z )
с учетом локали - UpperCase([chr], loUserLocale), она же AnsiUpperCase
Цитата:
интересно, а в XE4 функция UpperCase все ещё не юникодная?
Для работы с юникодом применяет новый rtl, а старое для совместимости.
вместо UpperCase?
Delphi, может сама решить под какой кодовой таблицей трактовать набор байтов?
т.к. это будет неправильно.
А как она УЖЕ РЕШАЕТ это со всеми AnsiString - и переменными и свойствами всех этих компонентов ?
Вот и ПРОДОЛЖАТЬ решать так же в случае копирования в буфер.
Ивот вы уверяете, что если Delphi/VCL скопирует текст как полагается, без разрушений, с признаком руского языка - то это по вашему неправильно. А вот если Delphi/VCL все разрушит и скопирует кракозябры - то это правильно и хорошо.
т.е. есть что-то новое вместо UpperCase?
Выше писал, это поломает текст в случае нескольких языковых раскладок.
системная локаль по умолчанию.
поломает текст в случае нескольких языковых раскладок.???
Delphi поступает так, как задизайнено и задокументировано в Винде
как задизайнено и задокументировано в Винде? Попробуйте, вдруг интереcное что узнаете.
Код: procedure TForm1.FormShow(const Sender: TObject);
begin
Edit1.Text := 'Мама Мыла Раму';
Edit1.SelectAll;
Edit1.CopyToClipboard;
end;
Да, сломать старый код - плохо. Но можно было бы придумать варианты!
И зря ЭМРО сделало ставку на FMX, забросив развитие VCL.
Они считают, что вся платформа Win32 мертва
Про книги - это ж понятно, что погорячились с категоричностью!
если для пользования библиотекой без книги никак
нафига нужно FMX решение для Win?
Волнуюсь за диспетчер памяти
ДУмаете, с ним что-то плохое случится ? :-D
Страницы: 1234567891011121314151617181920212223242526
Предыдущая тема: cxDBPivotGrid выгрузка в excel