Fehlermeldung beim Schließen der Anwendung

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Fehlermeldung beim Schließen der Anwendung

Beitrag von stoffel_hessen »

Hallo Gemeinde,

ich habe heute ein neues kleines Tool erstellt.
Jedes mal wenn ich das Tool schließe bzw. das Debuggen mit dem roten Quadrat stoppe, nachdem ich mit auf den Button "BT_ju_abfrage_oeffnen" geklickt habe, kommt es zu der angehängten Fehlermeldung, hierbei spiel es keine Rolle ob eine Datei im Dialog ausgewählt wurde oder nicht.
Access violation.JPG
Access violation.JPG (18.02 KiB) 845 mal betrachtet
Was mache ich falsch?
IfIndex Formular.JPG
IfIndex Formular.JPG (138.2 KiB) 845 mal betrachtet

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids, EingabenPruefen;

type

  { TForm1 }

  TForm1 = class(TForm)
    BT_ju_abfrage_oeffnen: TButton;
    BT_RexxErgOeffnen: TButton;
    Edit1: TEdit;
    ODJuniper_Abfrage_Oeffnen: TOpenDialog;
    ODRexxErgebnis: TOpenDialog;
    LB_Pfad_RexxScript: TStaticText;
    SG_Interface_unit: TStringGrid;
    SGRexxImport: TStringGrid;
    procedure BT_ju_abfrage_oeffnenClick(Sender: TObject);
    procedure BT_RexxErgOeffnenClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    procedure RexxScriptErzeugen;

  public

  end;


const CRLF = #13#10;
      ifindex_vor = 'CALL ZocSend "show interfaces ';
      ifindex_nach = ' | match ifindex^M"';
      ZocWait = 'CALL ZocWait ">"' + CRLF;
      CallZocWrite = 'CALL ZocWrite ';

var
  Form1: TForm1;
  Dateiname_abfrage_ju_interface : string;
  Dateiname_Rexx_Ausgabe : string;
  RexxScript_Ausgabe : string;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.BT_ju_abfrage_oeffnenClick(Sender: TObject);
begin
  if ODJuniper_Abfrage_Oeffnen.Execute then
    begin
      Dateiname_abfrage_ju_interface := ODJuniper_Abfrage_Oeffnen.Filename;
      SG_Interface_unit.LoadFromCSVFile(Dateiname_abfrage_ju_interface);
      RexxScriptErzeugen;
    end;
end;

procedure TForm1.BT_RexxErgOeffnenClick(Sender: TObject);
begin
  if ODRexxErgebnis.Execute then
    begin
      Dateiname_Rexx_Ausgabe := ODRexxErgebnis.FileName;
      SGRexxImport.LoadFromCSVFile(Dateiname_Rexx_Ausgabe);
    end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Application.MainForm.Close;
end;


procedure TForm1.RexxScriptErzeugen;
var i : integer;
    posinterfaces : integer;
    posunit : integer;
    posdescrition : integer;
    lz_nach_inter : integer;
    lz_nach_unit : integer;
    semikolon : integer;
    Zeile : string;
    inter : string;
    vlan : string;
    kunde : string;
    downloadpath : string;
begin
  RexxScript_Ausgabe := '';
  for i:= 0 to SG_Interface_unit.RowCount - 1
    do
      begin
        zeile := SG_Interface_unit.Cells[0,i];
        posinterfaces := pos('interfaces ',Zeile);
        posunit := pos(' unit ',Zeile);
        semikolon := pos('"',zeile);
        if (posunit <> 0) and (posinterfaces <> 0) and (semikolon <> 0)
          then
            begin
              posdescrition := pos(' description "', Zeile);
              inter := copy (Zeile, posinterfaces + 11, posunit - 1 - posinterfaces - 10);
              vlan := copy (Zeile, posunit + 6, posdescrition - posunit - 5);
              kunde := copy (Zeile, posdescrition + 13);
              RexxScript_Ausgabe := RexxScript_Ausgabe + CallZocWrite + Kunde + CRLF +
                                    ifindex_vor + inter + '.' + vlan + ifindex_nach + CRLF +
                                    ZocWait;
            end;
      end;
  downloadpath := GetUserDir + 'downloads\ju_ifindex_abfrage.zrx';
  LB_Pfad_RexxScript.Caption:=downloadpath;
  SaveStringToFile(downloadpath, RexxScript_Ausgabe);
end;

end.
Danke für die Unterstützung
Gruß Christopher

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von six1 »

Application.MainForm.Close;

lass das mal weg...
Gruß, Michael

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von stoffel_hessen »

six1 hat geschrieben:
Di 6. Sep 2022, 14:08
Application.MainForm.Close;
lass das mal weg...
Bringt leider nichts
Gruß Christopher

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von stoffel_hessen »

Hier noch die project1.lpr

Code: Alles auswählen

program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  {$IFDEF HASAMIGA}
  athreads,
  {$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, Unit1
  { you can add units after this };

{$R *.res}

begin
  RequireDerivedFormResource:=True;
  Application.Title:='Juniper IfIndex';
  Application.Scaled:=True;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Gruß Christopher

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von stoffel_hessen »

Wenn ich im "Access violation" Fenster auf "Abbruch" klicke, fliegt mir die komplette IDE weg, teilweise muss diese dann noch im Taskmanager endgültig gekillt werden.
Gruß Christopher

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von theo »

Ist das ausserhalb der IDE/Debugger auch ein Problem?
S.a. https://forum.lazarus.freepascal.org/in ... ic=54252.0

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von stoffel_hessen »

theo hat geschrieben:
Di 6. Sep 2022, 15:01
Ist das ausserhalb der IDE/Debugger auch ein Problem?
S.a. https://forum.lazarus.freepascal.org/in ... ic=54252.0
Nein, da funktioniert es.
Habe den Debugger eben von FpDebug auf Gdb umgestellt, damit scheint das Problem auch weg zu sein.
Welcher ist denn eigentlich der bevorzugte Debugger?
Gruß Christopher

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von PascalDragon »

stoffel_hessen hat geschrieben:
Di 6. Sep 2022, 15:25
Habe den Debugger eben von FpDebug auf Gdb umgestellt, damit scheint das Problem auch weg zu sein.
Dann melde am Besten einen Bug mit einem Beispielprogramm, dass dieses Verhalten zeigt.
stoffel_hessen hat geschrieben:
Di 6. Sep 2022, 15:25
Welcher ist denn eigentlich der bevorzugte Debugger?
Mittlerweile FpDebug, da dieser schneller und auf Object Pascal ausgelegt ist.
FPC Compiler Entwickler

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von wp_xyz »

Wenn du das komplette Projekt (das ja sein einfach zu sein scheint) hier hochladen würdest (aber nur die .pas, .lfm, .lpr, .lpi und die csv-Dateien), könnten wir nachprüfen, ob nicht doch irgendwo eine Einstellung falsch ist. fpdebug ist im allgemeinen sehr stabil.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Fehlermeldung beim Schließen der Anwendung

Beitrag von six1 »

... unter Projekt/Veröffentlichen geht es ganz einfach
Gruß, Michael

Antworten