Einzelnen Beitrag anzeigen

schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#1

[Fataler Fehler] Interner Fehler: L3170

  Alt 1. Mai 2012, 11:26
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:

{$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?
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat