Einzelnen Beitrag anzeigen

seifman
(Gast)

n/a Beiträge
 
#2

AW: Logging in Form aus anderer Unit steuern

  Alt 20. Jul 2010, 16:12
Ich mache das ganze über Messages.

In der Form, in der auch das Logging geschieht, gibt es die Methode WMWriteLog.

procedure WMWriteLog(var AMessage : TMessage); message WM_WRITELOG;
Delphi-Quellcode:
procedure TfrmMain.WMWriteLog(var AMessage: TMessage);
var
  lMessage : PChar;
begin
  lMessage := PChar(AMessage.WParam);
  if (Length(lMessage) > 0) then
    FLog.Add(lMessage);

  StrDispose(lMessage);
end;
An den Stellen, wo ich etwas an das Log übergeben will nutze ich dann "SendMessage" um meinen Text zu an die Form zu schicken.

Delphi-Quellcode:
procedure WriteLog(AMessage: string);
var
  lMessage : PChar;
begin
  lMessage := StrAlloc(Succ(Length(AMessage)));
  StrPCopy(lMessage, AMessage);
  SendMessage(FParentHandle, WM_WRITELOG, integer(lMessage), 0);
  Application.ProcessMessages;
end;
Ob das nun die sauberste Lösung ist, kann ich nicht versprechen - sie funktioniert aber.

Geändert von seifman (20. Jul 2010 um 16:17 Uhr)
  Mit Zitat antworten Zitat