Всем привет.
Продолжая баловаться, добавил возможность слать приватные сообщения в своем локальном чате.
Как всегда, хочу сделать красиво и железобетонно=) Чтоб без явных багов и т.д.
Суть проблемы: приходит приватное сообщение, создаем новое окошко, пишем в нем сообщение, если таковое есть не создаем, но пишем. Все как всегда просто, ну или почти=) Но есть но, вроде как все работает, но временами, бывает выскакивает ошибка о доступе к памяти, бывает работает нормально, и мне это не нравиться=) (Нюанс, выскакивает когда сделать активным основное окно, и когда в приватное окно что-то пишут, что прикольно сообщения приходят и все ок)
Как у меня: есть основная форма с общим чатом, есть форма для приватного чата (убрана из автосоздания в IDE). Приходит сообщение, проверяю есть ли создана приватная форма для этого пользователя через:
Screen.Forms
Screen.FormCount
если форма не нашлась, создаю ее так:
var
privForm: TPrivateForm;
begin
privForm := TPrivateForm.Create(Application);
privForm.Show;
ChatAdd(); // Добавляем сообщение
end;
в ее Caption записываю айди пользователя чтобы потом найти если что. В самой приватной форме, для освобождения памяти сделано так:
procedure TPrivateForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
Все они есть у друг друга в uses для использования процедур.
Вопрос: может их надо по другому создавать, этот способ работает, но глючно (или просто отловить/подавить эту ошибку?).
Заранее спасибо за помощь.