AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie bastel ich ordentlich ein Debug-Fenster
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bastel ich ordentlich ein Debug-Fenster

Ein Thema von Qnkel · begonnen am 2. Jun 2006 · letzter Beitrag vom 6. Jun 2006
Antwort Antwort
Qnkel

Registriert seit: 14. Mär 2004
114 Beiträge
 
FreePascal / Lazarus
 
#1

Wie bastel ich ordentlich ein Debug-Fenster

  Alt 2. Jun 2006, 21:36
Moin.

Ich hab ein Programm. Da habe ich mir eine neue Form gebastelt mit nem Memo, wo ich Debug-Meldungen reinschreibe.

So, wenn MainFormCreate abläuft, werden Treiber geladen etc. was darin protokolliert werden soll. Also muss die DebugForm vor der MainForm erstellt werden, weil ja sonst die MainForm noch nicht in der DebugForm mit dem DebugMemo arbeiten kann.

Problem: Nun wird natürlich zuerst die DebugForm angezeigt.

Habe versucht das mit sowas zu unterbinden:

Delphi-Quellcode:
procedure TDebugForm.FormCreate(Sender: TObject);
begin
  If ParamStr(1) = '-debugthen
    Show
  Else
    Hide;
end;
Funktioniert leider net. Warum? Keine Ahnung. Sagt es mir

Wie kann ich das sonst noch machn? Gibt es da inen Standard oder so?

So sieht meine MainFormCreate aus:

Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  Show;
  //Port definieren
  Port := str2int('378', True);
  DebugForm.DebugMemo.Lines.Add('Port gesetzt auf: 378');
  DebugForm.DebugMemo.Lines.Add('- - -');
  //Treiber starten
  if ZLIOStarted then
    begin
      Statusbar.Panels[0].Text := 'Treiber gestartet !';
      DebugForm.DebugMemo.Lines.Add('Treiber erfolgreich gestartet !');
      DebugForm.DebugMemo.Lines.Add('- - -');
    end
  else
    begin
      Statusbar.Panels[0].Text := 'Fehler bei Treiber!';
      DebugForm.DebugMemo.Lines.Add('Fehler! Treiber nicht gestartet.');
      DebugForm.DebugMemo.Lines.Add('- - -');
    end;
  Portread;
end;
Lazarus v0.9.29 (2010-10-31 SVN 28000)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 2. Jun 2006, 22:04
wie erzeugst du denn das Debugformular? So wie es scheint hast du es einfach nur angelegt und lässt es automatisch erzeugen. Somit wird es natürlich zum Hauptformular.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Qnkel

Registriert seit: 14. Mär 2004
114 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 2. Jun 2006, 22:20
Richtig.

Wie sonst?

Es wird ja das zum Hauptformular, was als erstes erzeugt wird.

Aber wie kann ich es sonst machn?
Lazarus v0.9.29 (2010-10-31 SVN 28000)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 2. Jun 2006, 22:28
es wird nicht das zum hauptformular was als erstes erzeugt wird sondern das erste was mit Application.CreateForm erzeugt wird. Wenn du das Fenster manuell mit TDeinDebugFenster.Create erzeugst sollte es nicht zum Mainform werden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Qnkel

Registriert seit: 14. Mär 2004
114 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 3. Jun 2006, 11:18
Zitat von SirThornberry:
es wird nicht das zum hauptformular was als erstes erzeugt wird sondern das erste was mit Application.CreateForm erzeugt wird. Wenn du das Fenster manuell mit TDeinDebugFenster.Create erzeugst sollte es nicht zum Mainform werden.
Ahh. Sprich ich könnt in MainForm.Create das DebugForm.Create ausführn und es ausm Hauptquelltext mit Application.CreateForm rausnehmen?

Das werd ich gleich ma ausprobiern...

Es geht nicht.

Mein MainForm.Create
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  Application.CreateForm(TDebugForm, DebugForm);
  DebugForm.Hide;
  Show;
  If ParamStr(1) = '-debugthen
    DebugForm.Show
  Else
    DebugForm.Hide;
  //Port definieren
  Port := str2int('378', True);
  DebugForm.DebugMemo.Lines.Add('Port gesetzt auf: 378');
  DebugForm.DebugMemo.Lines.Add('- - -');
  //Treiber starten
  if ZLIOStarted then
    begin
      Statusbar.Panels[0].Text := 'Treiber gestartet !';
      DebugForm.DebugMemo.Lines.Add('Treiber erfolgreich gestartet !');
      DebugForm.DebugMemo.Lines.Add('- - -');
    end
  else
    begin
      Statusbar.Panels[0].Text := 'Fehler bei Treiber!';
      DebugForm.DebugMemo.Lines.Add('Fehler! Treiber nicht gestartet.');
      DebugForm.DebugMemo.Lines.Add('- - -');
    end;
  Portread;
end;
Mein Quelltext
Delphi-Quellcode:
begin
  Application.Initialize;
  Application.Title := 'LPT-Steuerung';
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TInfoForm, InfoForm);
  Application.CreateForm(TOptionenForm, OptionenForm);
  //Application.CreateForm(TDebugForm, DebugForm);
  Application.Run;
end.
Das Debug-Fenster wird immernoch angezeigt
Lazarus v0.9.29 (2010-10-31 SVN 28000)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.161 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 3. Jun 2006, 11:46
Code:
begin
[color=#ff0000] DebugForm := TDebugForm.Create(nil);
  If ParamStr(1) = '-debug' then DebugForm.Show[/color]
  Application.Initialize;
  Application.Title := 'LPT-Steuerung';
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TInfoForm, InfoForm);
  Application.CreateForm(TOptionenForm, OptionenForm);
  Application.Run;
end.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Qnkel

Registriert seit: 14. Mär 2004
114 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 3. Jun 2006, 13:59
Argh.

Jetz spielt mein ganzes Programm verrückt. Auch nachdem ich es in den Urzustand zurück gesetzt habe!

Es find keine Variablen mehr und so weiter...

Delphi-Quellcode:
var
  MainForm: TMainForm;
  data, Port: Word;
  stat: String;
  i: Integer;

procedure TMainForm.FormCreate(Sender: TObject);
  {If ParamStr(1) = '-debug' then
    DebugForm.Show
  Else
    DebugForm.Hide;}

  //Port definieren
  Port := str2int('378', True);
  DebugForm.DebugMemo.Lines.Add('Port gesetzt auf: 378');
  DebugForm.DebugMemo.Lines.Add('- - -');
  //Treiber starten
  if ZLIOStarted then
    begin
      Statusbar.Panels[0].Text := 'Treiber gestartet !';
      DebugForm.DebugMemo.Lines.Add('Treiber erfolgreich gestartet !');
      DebugForm.DebugMemo.Lines.Add('- - -');
    end
  else
    begin
      Statusbar.Panels[0].Text := 'Fehler bei Treiber!';
      DebugForm.DebugMemo.Lines.Add('Fehler! Treiber nicht gestartet.');
      DebugForm.DebugMemo.Lines.Add('- - -');
    end;
  Portread;
end;
Zitat:
[Warnung] MainUnit.pas(58): W1019 FOR-Schleifenvariable muss eine einfache lokale Variable sein
[Warnung] MainUnit.pas(65): W1019 FOR-Schleifenvariable muss eine einfache lokale Variable sein
[Warnung] MainUnit.pas(90): W1019 FOR-Schleifenvariable muss eine einfache lokale Variable sein
[Fehler] MainUnit.pas(123): E2070 Unbekannte Direktive: 'Port'
[Fehler] MainUnit.pas(133): E2029 ';' erwartet, aber 'ELSE' gefunden
[Fehler] MainUnit.pas(135): E2003 Undefinierter Bezeichner: 'Statusbar'
[Fehler] MainUnit.pas(135): E2066 Operator oder Semikolon fehlt
[Fehler] MainUnit.pas(138): E2029 '.' erwartet, aber ';' gefunden
[Warnung] MainUnit.pas(140): W1011 Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert
[Fehler] MainUnit.pas(23): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.OptionenButtonClick'
[Fehler] MainUnit.pas(24): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.Button1Click'
[Fehler] MainUnit.pas(25): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.Button2Click'
[Fehler] MainUnit.pas(26): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.FormClose'
[Fehler] MainUnit.pas(27): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D7BtnClick'
[Fehler] MainUnit.pas(28): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D6BtnClick'
[Fehler] MainUnit.pas(29): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D5BtnClick'
[Fehler] MainUnit.pas(30): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D4BtnClick'
[Fehler] MainUnit.pas(31): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D3BtnClick'
[Fehler] MainUnit.pas(32): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D2BtnClick'
[Fehler] MainUnit.pas(33): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D1BtnClick'
[Fehler] MainUnit.pas(34): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainForm.D0BtnClick'
[Fataler Fehler] LPTSteuerung.dpr(8): F2063 Verwendete Unit 'MainUnit.pas' kann nicht compiliert werden
Was is dasn jetz? Ich dreh noch durch
Lazarus v0.9.29 (2010-10-31 SVN 28000)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 6. Jun 2006, 08:22
bei procedure TMainForm.FormCreate(Sender: TObject); fehlt irgendwie das "begin".
liegt es vielleicht daran?
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Qnkel

Registriert seit: 14. Mär 2004
114 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 6. Jun 2006, 10:56
Zitat von RavenIV:
bei procedure TMainForm.FormCreate(Sender: TObject); fehlt irgendwie das "begin".
liegt es vielleicht daran?
Ja das hab ich auch rausgefunden

Kommt davon wenn man stundenlang auf Quelltext starrt, man sieht die banalsten Sachen nicht mehr.

Wollte deswegen das Topic net wieder ausgraben.

Aber Danke für die Antwort
Lazarus v0.9.29 (2010-10-31 SVN 28000)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Wie bastel ich ordentlich ein Debug-Fenster

  Alt 6. Jun 2006, 10:59
Zitat von Qnkel:
Ja das hab ich auch rausgefunden

Kommt davon wenn man stundenlang auf Quelltext starrt, man sieht die banalsten Sachen nicht mehr.

Wollte deswegen das Topic net wieder ausgraben.
solltest Du aber.
Alleine schon, damit wir anderen Bescheid wissen und uns nicht umsonst den Kopf zermartern, um Dir zu helfen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz