AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Initialisierung falsch !

Ein Thema von TERWI · begonnen am 20. Aug 2022 · letzter Beitrag vom 25. Aug 2022
 
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Initialisierung falsch !

  Alt 24. Aug 2022, 19:28
... 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.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz