Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   [Fataler Fehler] Interner Fehler: L3170 (https://www.delphipraxis.net/168025-%5Bfataler-fehler%5D-interner-fehler-l3170.html)

schöni 1. Mai 2012 10:26

[Fataler Fehler] Interner Fehler: L3170
 
Hallo,

diesen Fehler erhalte ich mit D7 Personal Build 4.453 bei folgendem Quelltext:

Delphi-Quellcode:
unit regexmain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, PerlRegEx, SynEdit, SynMemo, SpTBXDkPanels, SpTBXItem,
  SpTBXControls, StdCtrls, TntStdCtrls, SpTBXEditors, TB2Item, TB2Dock,
  TB2Toolbar, Menus;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1_OLD: TMenuItem;
    Neu1_OLD: TMenuItem;
    LadenZieldatei1_OLD: TMenuItem;
    LadenderRegexDatei1_OLD: TMenuItem;
    N1_OLD: TMenuItem;
    SpeichernRegexDatei1_OLD: TMenuItem;
    SpeichernRegexDateials1_OLD: TMenuItem;
    N2_OLD: TMenuItem;
    Beenden1_OLD: TMenuItem;
    Bearbeiten1_OLD: TMenuItem;
    Rckgngig1_OLD: TMenuItem;
    Widerrufen1_OLD: TMenuItem;
    N3_OLD: TMenuItem;
    Ausschneiden1_OLD: TMenuItem;
    Kopieren1_OLD: TMenuItem;
    Einfgen1_OLD: TMenuItem;
    Lschen1_OLD: TMenuItem;
    Allesmarkieren1_OLD: TMenuItem;
    Suchen1_OLD: TMenuItem;
    Ausdruck1_OLD: TMenuItem;
    SpTBXDock1: TSpTBXDock;
    SpTBXToolbar1: TSpTBXToolbar;
    Datei1: TTBSubmenuItem;
    Neu1: TTBItem;
    LadenZieldatei1: TTBItem;
    LadenderRegexDatei1: TTBItem;
    N1: TTBSeparatorItem;
    SpeichernRegexDatei1: TTBItem;
    SpeichernRegexDateials1: TTBItem;
    N2: TTBSeparatorItem;
    Beenden1: TTBItem;
    Bearbeiten1: TTBSubmenuItem;
    Rckgngig1: TTBItem;
    Widerrufen1: TTBItem;
    N3: TTBSeparatorItem;
    Ausschneiden1: TTBItem;
    Kopieren1: TTBItem;
    Einfgen1: TTBItem;
    Lschen1: TTBItem;
    Allesmarkieren1: TTBItem;
    Suchen1: TTBSubmenuItem;
    Ausdruck1: TTBItem;
    SpTBXPanel1: TSpTBXPanel;
    SpTBXLabel1: TSpTBXLabel;
    cbxRegexInput: TSpTBXComboBox;
    SpTBXSpeedButton1: TSpTBXSpeedButton;
    SpTBXStatusBar1: TSpTBXStatusBar;
    SpTBXPanel2: TSpTBXPanel;
    SpTBXSplitter1: TSpTBXSplitter;
    SpTBXPanel3: TSpTBXPanel;
    Regexes: TSynMemo;
    Destfile: TSynEdit;
    procedure SpTBXSpeedButton1Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
    FRegex: TPerlRegEx;
    procedure RegexMatch(Sender: TObject);
    procedure RegexReplace(Sender: TObject; var ReplaceWith: String);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpTBXSpeedButton1Click(Sender: TObject);
begin
  if cbxRegexInput.Text<>'' then
  begin
    if FRegex.FoundMatch then
    begin

    end
    else
    ;
  end;
end;

procedure TForm1.Beenden1Click(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FRegex := TPerlRegEx.Create;
  FRegex.OnMatch := RegexMatch;
  FRegex.OnReplace := RegexReplace;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FRegex.Free;
end;

procedure TForm1.RegexMatch(Sender: TObject);
begin
  //
end;

procedure TForm1.RegexReplace(Sender: TObject; var ReplaceWith: String);
begin

end;

end.
Die Eventhandler "RegexMatch" und "RegexReplace" wurden von Hand erstellt, da die Klasse TPerlRegex keine Komponente ist.

Die Units des TPerlregex Paketes habe ich im Ordner ..\..\Borland\Delphi7\Source\TPerlRegex\ untergebracht und dem Projektsuchpfad hinzugefügt. Das Projekt selber befindet sich in ..\..\Borland\Delphi7\Projects\Regex\.

Ist dieser Interne Fehler in späteren Delphi Versionen beseitigt oder muss ich eh irgendwas anderes beachten, damit ich das Projekt übersetzen kann? Der Quelltext sagt mir, das die Unit Perlregex die zum Paket gehörendende Unit "PCRE" voraussetzt, in der die Pfade zu den von ihr verwendeten .obj Dateien korrekt besetzt sein sollten. Ich sehe dort Zeilen wie:

Delphi-Quellcode:
{$LINK pcre\pcre_get.obj}
"pcre" ist ein Unterverzeichnis im Ordner der Units "pcre" und "PerlRegex". So gehe ich davon aus, das die Objektdateien auch gefunden werden, da ich den Suchpfad ..\Source\TPerlRegex in den Projekteinstellungen hinzugefügt habe.

Muss ich noch irgendwas anderes machen?

jaenicke 1. Mai 2012 11:16

AW: [Fataler Fehler] Interner Fehler: L3170
 
Was deine Frage nach neueren Delphiversionen angeht: Die bei Delphi XE+ mitgelieferte Version erzeugt diesen Fehler bei mir nicht, nein. :zwinker:

Bei Delphi 7 bekomme ich einen internen Fehler sobald ich den Konstruktor aufrufe. Der restliche Quelltext hat mit dem Fehler nix zu tun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 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