169 похожих чатов

Ничего в глаза не бросается из-за чего вылетает ошибка при

тыканьи мышкой в ячейку грида на 64 битах D11? На 32 работает
Не знаю как подступиться
procedure TdxInplaceEdit.DefaultHandler(var Message);
begin
if not IsEditClass then
case TMessage(Message).Msg of
// TODO: test + non Edit
WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN:
if not (csDesigning in ComponentState) and (GetFocus <> Handle){not Focused} then
Windows.SetFocus(Handle);
end;
// if IsEditClass and (csDestroying in ComponentState) then Exit;
inherited;
end;

20 ответов

104 просмотра

ну для начала проверь типы (их объявление) это dx какой версии?

alexey t
ну для начала проверь типы (их объявление) это dx ...

вообще для x64 можно потеребонькать встроенный менеджер памяти чтоб он возвращал указатели уже за пределами 4Гб. пихнуть что нибудь типа x = 6; var l: array of Pointer; i: Integer; begin SetLength(l, 1024 * 1024); for i := Low(l) to High(l) do GetMem(l[i], 1024 * x); в инициализацию самого первого юнита. тогда ошибки распределения памяти будут сразу видны rangecheckerror‘aми. а не рандомными крешами ну и стандартно проверять места места с кастом указателей и маскированием Integer( Cardinal( Longint( Longword( Long( итд

а стек та где?

Катерина-Свиридова Автор вопроса
zamtmn
а стек та где?

Спасибо. Что-то глюканула. Похоже это оно. Ща разберусь with Params do begin System.Move(S[1], WinClassName[0], Length(S)); WinClassName[Length(S)] := #0; end;

alexey t
вообще для x64 можно потеребонькать встроенный мен...

fastmm4 и так это делает. Первая попавшая под руку аллокация $7FF4FDB3BD40

Катерина-Свиридова Автор вопроса
Катерина Свиридова
Спасибо. Что-то глюканула. Похоже это оно. Ща разб...

Оказалось хуже, чем думала. Редактором ячейки может быть разный класс RichEdit ('RICHEDIT', 'RICHEDIT20W', 'RICHEDIT50W' или какой-то другой), который берется из разных dll ('Riched32.dll', 'Riched20.dll', 'Msftedit.dll') Вроде все перепробовала для 64, либо ломается, либо ничего не вводит. Ну надо же было именно это поле потянуть, придумщики - капец

Катерина-Свиридова Автор вопроса
Катерина Свиридова
Оказалось хуже, чем думала. Редактором ячейки може...

Ну кто так пишет! То longint, то integer, то правильный LPARAM. Исправила на него все и заработало procedure TdxInplaceTextEdit.Deselect; begin // SendMessage(Handle, EM_SETSEL, $7FFFFFFF, Longint($FFFFFFFF)); SendMessage(Handle, EM_SETSEL, $7FFFFFFF, LPARAM($FFFFFFFF)); end; procedure TdxInplaceTextEdit.SetSelTextBuf(Buffer: PChar); begin // SendMessage(Handle, EM_REPLACESEL, 0, LongInt(Buffer)); SendMessage(Handle, EM_REPLACESEL, 0, LPARAM(Buffer)); end;

Катерина Свиридова
Ну кто так пишет! То longint, то integer, то прави...

Как-то был эпизод в "карьере" - пришлось один из проектов с "предысторией" переводить с D7 на D10. С DevExpress-ом было больнее всего. 2-3 недели активной ... с написанием собственных утилит только для того, чтобы скомпилилось и не крашилось при открытии основных форм. Проект только форм несколько тысяч, а тимлид на вопрос может это уже не все нужно ответил, что ни кто из ныне здравствующих не понимает что уже не актуально в проекте и что можно выкинуть (не портировать). Итого: DevExpress это конечно круто, но с массой своих "особенностей".

Катерина-Свиридова Автор вопроса
Алексей Труфманов
Как-то был эпизод в "карьере" - пришлось один из п...

Я версию dx7 привела к тому, что она заработала на D11. Поэтому формы править не пришлось, иначе бы на них погибла)

Катерина Свиридова
Я версию dx7 привела к тому, что она заработала на...

А потом как с этим жить планируете при появлении новых версий DevExpress? Всю жизнь на dx7 (пусть даже на поправленных) грустно как-то.

Катерина Свиридова
Я версию dx7 привела к тому, что она заработала на...

это какой-то гибрид коммерции и опенсорса. когдато давно купил, сейчас поправил... только пулреквест слать некуда(( Несмотря на героические усилия и проделанную работу ничем хорошим такой подход не закончится

zamtmn
это какой-то гибрид коммерции и опенсорса. когдато...

это не 'героические усилия', это обычная работа. не сильно, к слову, и большая затем код и покупают, что бы когда-то его править

Handatros
это не 'героические усилия', это обычная работа. н...

править чужое, а потом таскать его с собой? чтото пошло не так

zamtmn
править чужое, а потом таскать его с собой? чтото ...

Не у всех есть возможность и знания писать все свое, кому то придется таскать чужое :)

Алексей Труфманов
Как-то был эпизод в "карьере" - пришлось один из п...

Тут сейчас люди проконсультировать просили меня по поводу портирования ихнего софта, у них в проекте тот самый devexpress везде понатыкан где надо и где не надо. Че с ними делать хрен его знает, смотреть надо.

Катерина-Свиридова Автор вопроса
Алексей Труфманов
А потом как с этим жить планируете при появлении н...

Так давно появились CX, будто специальное не совместимое издевательство над народом) Тут не знаешь, что через полгода будет. На какую операционку кинут. А мне ещё два сервиса перевести на 64 бита и один немаленький проект, которые тоже пока на D7

Константин Тимофеев
Тут сейчас люди проконсультировать просили меня по...

1. Там попа будет еще и в том, что не все типы, контролы, наименования пропертей, обработчиков и много чего еще дожили там до текущего момента в принципе. 2. Единственный вариант который я посчитал для себя приемлемым - это писать свою утилиту, которая хранила вложенные "иерархические" шаблоны замен в JSON-е, перебирала все pas и dfm и правила их с учетом кучи доп. параметров. Все это на регулярках. Принцип: нашли затык - добавили в JSON новый шаблон(ы) - потенциально созданный шаблон поправил кучу аналогичных моментов. и т.д. итерационно. 3. Если/когда удалось из 4 букв (А,Ж,О,П) выложить слово СЧАСТЬЕ - т.е. проект даже скомпилился, то начинается следующий интересный не автоматизируемый этап - понять что хотели написать разрабы предыдущих N поколений и добиться, что бы как минимум формы не крашились и не уходили в AV при открытии. 4. Отдавать тестерам и ...

Катерина-Свиридова Автор вопроса
Алексей Труфманов
1. Там попа будет еще и в том, что не все типы, ко...

Одно из модных нововведений заметила в разных компонентах: стали вместо свойства множества типа options бить на отдельные булеан свойства. Веселуха такое править, хорошо, если из dfm можно убрать и ифдефами обложить

Алексей Труфманов
1. Там попа будет еще и в том, что не все типы, ко...

Понятно. Ну ещё можно попробовать изобразить затычку из стандартных компонентов. Посмотрим вобщем

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
4
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта