Status eines Programms zeigen

Zur Vorstellung von Komponenten und Units für Lazarus

Status eines Programms zeigen

Beitragvon Michl » 26. Jun 2013, 11:24 Status eines Programms zeigen

Hallo,

wie schon in einem anderen Forum viewtopic.php?f=10&t=6986 geschrieben, habe ich die Statusanzeige (selbst gesetzter Status!) aus meinen Projekten herausgenommen und daraus ein Programm erstellt (nur Basisversion, meine jetzige Statusanzeige hat noch einige Filter- und Einstellungsmöglichkeiten, wenn ich diese mal aufgeräumt habe und Interesse besteht, kann ich sie hier auch mal anhängen).

Falls jemand eine ähnliche Anzeige benötigt, dachte ich mir, ich stelle sie hier mal vor. Ist auf jeden Fall komfortabler und etwas schneller, als sich seinen Programm-Status über die Konsole anzeigen zu lassen! Ein weiterer großer Vorteil ist, dass das Status-Anzeige-Programm "StatusProg.exe" weiter läuft, wenn mal das eigene Projekt abstürzt. Dies hilft mir eigene Programmierfehler schneller zu entdecken oder die Gewichtung der Routinen zu optimieren (besonders bei einem Standalone-Programm, was lange eigenständig läuft).
Wer ein Beispiel für eine Kommunikation zweier Programme (externes Programm steuern) mittels SimpleIPC (TSimpleIPC) benötigt, könnte sich das auch mal anschauen.

[Edit]
Wie benutzen?!
- zuerst die angehangene Datei runterladen und in dem gewünschten Verzeichnis entpacken
- jetzt das Projekt "StatusProg" aus dem Unterverzeichnis ..\StatusProg laden und starten (es wird die StatusProg.exe (das Formular mit dem IPC-Server) erstellt, die für StatusUnit notwendig ist)
- jetzt das Projekt "StatusTest" laden, ggf. bei FormCreate die Parameter für die Executable und der Status-Logdatei ändern s.U..
- man kann nun das Projekt starten und in der ComboBox die Sichtbarkeiten ändern (je nachdem werden die Ausgabe von Logeinträgen erlaubt/unterbunden) und mit den Buttons einfache Tests durchführen

- in einem eigenen Programm braucht man eigentlich nur die Unit "StatusUnit" in die uses-Klausel aufnehmen und z.B. im Form.OnCreate-Event "Status" createn, dann kann man mit StatLn('IrgendeinText') Texte (auch in allen SubUnits) ausgeben:
Code: Alles auswählen
uses ..., StatusUnit;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
  Status:=TStatus.Create(Self, 'StatusProg\StatusProg.exe', 'Temp\Status.txt');
  StatLn(2 ,'[TForm1.FormCreate] wird soeben ausgeführt');
end;   

Sollte jetzt eigentlich unter allen Betriebssystemen laufen (wenn die Pfade im Create entsprechend angepasst wurden), habe sie bisher aber nur unter Win7 getestet.
Dateianhänge
StatusTest.png
StatusTest.zip
(13.75 KiB) 22-mal heruntergeladen
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2330
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried