Изменение существующего сообщения в TdxAlertWindowManager

Я использую такой фрагмент кода, чтобы показать предупреждение с помощью TdxAlertWindowManager. Это дает мне одно окно предупреждения, и в этом окне есть несколько сообщений. Что я хотел бы сделать, так это показать окно предупреждения с первой строкой текста, и в том же окне я хотел бы поместить новый текст. Программа используется для подключения компьютера к некоторым сетевым ресурсам, и сообщение, которое я хотел бы разместить, выглядит так:

Connecting drive y: to \\server\foldery
Connecting drive x: to \\server\folderx

и так далее для остальных акций. Но я не могу понять, как это сделать с TdxAlertWindowManager

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

if fAlertWindow = nil then
  dxAlertWindowManager.Show(sHpAlertCaption, AlertText, fIndex).Tag := 1
else
  begin
    fAlertWindow.MessageList.Add(sHpAlertCaption, AlertText, fIndex);
    fAlertWindow.RestartDisplayTimer;
  end;

person OZ8HP    schedule 27.10.2012    source источник
comment
Вы пытались добавить строку типа 'Connecting drive y: to \\server\foldery' + sLineBreak + 'Connecting drive x: to \\server\folderx' ?   -  person TLama    schedule 27.10.2012
comment
Это не совсем то, что я пытаюсь сделать. Я хочу, чтобы строки добавлялись по мере того, как устанавливаются соединения, чтобы имитировать какой-то индикатор прогресса.   -  person OZ8HP    schedule 27.10.2012


Ответы (1)


Я не знаю, как заставить TdxAlerWindowManager отображать новую строку, но я знаю, как изменить текущие сообщения. Просто отредактируйте свойство Items[0] файла MessageList. Я делаю это по таймеру.

var
fAlertWindow: TdxAlertWindow;

procedure TFMain.Timer1Timer(Sender: TObject);
begin
  fAlertWindow := dxAlertWindowManager1.Show('Caption', 'Hello1');
  Timer1.Enabled := False;
end;

procedure TFMain.Timer2Timer(Sender: TObject);
begin
  fAlertWindow.BeginUpdate;
  fAlertWindow.MessageList.Items[0].Text := 'Hello2';
  fAlertWindow.EndUpdate;
  Timer2.Enabled := False;
end;

Работает 100%

person JustMe    schedule 27.10.2012