... es wird immer verrückter.
Das Proggie funzt zwar i.d.R., aber mit ist aufgefallen, das so einige LOG-Zeilen fehlen. Dachte erst der Logger spinnt ... nein tut er nicht.
Die im neu aufgebauten Projekt zuletzt in der
IDE hinzugefügte Form ZatVLC weigert sich beharrlich, LOGs anzuzeigen ... bis auf 2 (s.u.)
Damit nicht wieder diese Fragen wie "... und was ist mit Code ?" kommen, hier nun diverses.
Die Projektdatei:
Delphi-Quellcode:
program ZATTOO;
uses
Vcl.Forms,
LOGGER5
in '
LOGGER5.pas'
{LOGGER},
uHTTP
in '
uHTTP.pas',
ZAT_MAIN
in '
ZAT_MAIN.pas'
{ZATMain},
ZAT_LIB
in '
ZAT_LIB.pas'
{ZatLIB},
ZAT_CHL
in '
ZAT_CHL.pas'
{ZatChl},
ZAT_CHLSEL
in '
ZAT_CHLSEL.pas'
{chl_BOX},
ZAT_EPG
in '
ZAT_EPG.pas'
{ZatEpg},
ZAT_INFO
in '
ZAT_INFO.pas'
{ZatINFO},
ZAT_VLC
in '
ZAT_VLC.pas'
{ZatVLC};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TZATMain, ZATMain);
Application.CreateForm(TZatLIB, ZatLIB);
Application.CreateForm(TZatChl, ZatChl);
Application.CreateForm(Tchl_BOX, chl_BOX);
Application.CreateForm(TZatEpg, ZatEpg);
Application.CreateForm(TZatINFO, ZatINFO);
Application.CreateForm(TZatVLC, ZatVLC);
Application.Run;
end.
Die Initialisierung - Auruf über OnShow der MainForm:
Delphi-Quellcode:
procedure TZatMAIN.FormInit(Sender: TObject);
begin
Log('INIT', '... INIT MODULES ...');
if FIsInit then exit; //
ZatLIB._Init(Dispatcher);
ZatCHL._Init(Dispatcher);
chl_BOX._Init(Videopanel, ChangeChannel);
ZatEPG._Init(Dispatcher, VideoPanel);
ZatINFO._Init(Videopanel);
ZatVLC._Init(Dispatcher,
VideoPanel,
'ZATTOO', // name for graph
TRUE); // DO LOG
FIsInit := true; // State neccessary for RESIZE !!!
end;
Die neue Zat_VLC.pas (
DFM dazu ist eine blanke Form mit nix drin):
Delphi-Quellcode:
unit ZAT_VLC;
interface
uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.ExtCtrls,
LOGGER5;
type
TResponse =
procedure(Typ, Mode, Result : integer)
of object;
TZatVLC =
class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FResponse : TResponse;
FVideoPanel : TPanel;
FName :
string;
FDoLog : boolean;
procedure LOG(S1, S2 :
string);
public
function _Init(Response : TResponse;
Panel : TPanel;
Name :
string;
DoLog : boolean = true) : integer;
end;
var
ZatVLC: TZatVLC;
implementation
{$R *.dfm}
procedure TZatVLC.FormCreate(Sender: TObject);
begin
Log('
CREATE', '
... begin');
FResponse :=
NIL;
FVideoPanel :=
NIL;
FName := '
';
FDoLog := false;
Log('
CREATE', '
... end');
end;
procedure TZatVLC.FormDestroy(Sender: TObject);
begin
Log('
DESTROY', '
... begin');
// das hier nur damit was passiert ....
FResponse :=
NIL;
FVideoPanel :=
NIL;
FName := '
';
FDoLog := false;
Log('
DESTROY', '
... end');
end;
function TZatVLC._Init(Response : TResponse;
Panel : TPanel;
Name :
string;
// for naming graho and ROT
DoLog : boolean = true) : integer;
begin
Log('
DoInit', '
...begin');
result := -1;
FResponse := Response;
FVideoPanel := Panel;
FName :=
Name;
FDoLog := DoLog;
Log('
DoInit', '
...end');
end;
procedure TZatVLC.LOG(S1, S2 :
string);
begin
if (Assigned(LOGGER)
AND FDoLog)
then LOGGER.LOG('
VLC', S1, S2);
end;
end.
... und nun die LOG-Datei dazu:
Delphi-Quellcode:
[20:14:40:543] [LOG - CREATE]: ... OK !
[20:14:40:606] [MAIN - CREATE]: ... begin
[20:14:40:612] [MAIN - CREATE]: ... end
[20:14:40:612] [ZATLIB - CREATE]: ... begin
[20:14:40:628] [ZATLIB - CREATE]: ... end
[20:14:40:644] [CHL - Create]: ...begin
[20:14:40:644] [CHL - Create]: ...end
[20:14:40:644] [CHLBOX - Create]: ...begin
[20:14:40:644] [CHLBOX - Create]: ...end
[20:14:40:644] [EPG - Create]: ...begin
[20:14:40:644] [EPG - Create]: ...end
[20:14:40:659] [INFO - Create]: ...begin
[20:14:40:659] [INFO - Create]: ...end
[20:14:40:675] [MAIN - INIT]: ... INIT MODULES ...
[20:14:40:675] [ZATLIB - DoInit]: ...begin
[20:14:40:675] [ZATLIB - DoInit]: ...end
[20:14:40:675] [CHL - DoInit]: ...begin
[20:14:40:675] [CHL - DoInit]: ...end
[20:14:40:675] [CHLBOX - DoInit]: ...begin
[20:14:40:691] [CHLBOX - DoInit]: ...end
[20:14:40:691] [EPG - DoInit]: ...begin
[20:14:40:691] [EPG - DoInit]: ... end
[20:14:40:691] [INFO - DoInit]: ...begin
[20:14:40:691] [INFO - DoInit]: ...end
..... wo ist das "[VLC - DoInit]: ...begin" geblieben `?
[20:14:40:691] [VLC - DoInit]: ...end
[20:14:42:765] [MAIN - CLOSE]: ... start
[20:14:42:765] [MAIN - CLOSE]: ... end
[20:14:42:765] [VLC - DESTROY]: ... begin
..... wo ist das "[VLC - DESTROY]: ... end" geblieben `?
[20:14:42:765] [INFO - Destroy]: ...begin
[20:14:42:765] [INFO - Destroy]: ...end
[20:14:42:765] [EPG - DESTROY]: ...begin
[20:14:42:765] [EPG - DESTROY]: ...end
[20:14:42:765] [CHLBOX - Destroy]: ...begin
[20:14:42:765] [CHLBOX - Destroy]: ...end
[20:14:42:765] [CHL - Destroy]: ...begin
[20:14:42:765] [CHL - Destroy]: ...end
[20:14:42:765] [ZATLIB - DESTROY]: ... begin
[20:14:42:765] [ZATLIB - DESTROY]: ... end
[20:14:42:781] [MAIN - DESTROY]: ... start
[20:14:42:781] [MAIN - DESTROY]: ... end
Bemerkungen zu siehe nachgetragen in der LOG-Datei.
Der Logger loggt sauber bis zum Ende durch.
Alle Formen sind prinzipiell wie die ZAT_VLC aufgebaut.
Initialisiert auch so wie gedacht und umgekehrt beim beenden.
Bei jeder weiteren Form das gleiche/ähnliche Spielchen.
Sehe ich da was nicht ?
Es sind nur die benötigten Dateien im Verzeichnis.
Von den Projektdaten bis auf die
DPR alles gelöscht.
Auch alle
DCU's.
Quasi ein nacktes Projekt.