Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DesignIntf nicht gefunden (https://www.delphipraxis.net/198984-designintf-nicht-gefunden.html)

Alfonso 16. Dez 2018 21:31

DesignIntf nicht gefunden
 
Hi,

ich verwende die Komponenten von List&Label V21. Unter Delphi 10 Seattle hatte ich es installiert (frag mich nicht, wie ich es damals geschaft habe). Nun habe ich Delphi 10 Rio und wenn ich die ListLabel21.dpk installieren will, bekomme ich die Fehlermeldung
"[dcc32 Fataler Fehler] l21des.pas(82): F2613 Unit 'dsgnintf' nicht gefunden."

Ich habe den Suchpfad unter Projektoptionen angepasst, aber ohne erfolg. Wie gesagt, unter 10 Seattle läßt es sich kompilieren, aber ich weiss nicht warum es in 10.3 nicht tut. Ich verwende exakt die gleiche dpk sowohl unter Seattle wie unter Rio.

Irgend eine Idee?

borstenei 16. Dez 2018 21:56

AW: DesignIntf nicht gefunden
 
...hast du auch die *.inc angepasst?

Alfonso 16. Dez 2018 22:05

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von borstenei (Beitrag 1421005)
...hast du auch die *.inc angepasst?

Sorry, verstehe dich nicht. Welche INC? Es gibt keine INC in dem Verzeichnis.

jaenicke 17. Dez 2018 03:51

AW: DesignIntf nicht gefunden
 
Normalerweise gibt es dort irgendwo eine .inc Datei, in der erkannt wird um welchen Compiler es sich handelt. An der von dir genannten Fehlerstelle steht bestimmt so etwas:
Delphi-Quellcode:
{$IFDEF DELPHI500OrHigher}
DesignIntf, ...
{$ELSE}
dsgnintf, ...
{$ENDIF}
Und dieses DELPHI500OrHigher wird nun in dieser .inc Datei festgelegt. Da es deine Delphiversion noch nicht kennt, klappt das nicht.

Irgendwo in der l21des.pas oberhalb von Zeile 82 wird ein {$I ...} oder {$INC ...} stehen. Die dort eingetragene Datei muss angepasst werden.

Alfonso 17. Dez 2018 07:17

AW: DesignIntf nicht gefunden
 
@Jaenicke: Vielen Dank! Es gab keine INC Datei, aber am Anfang der Datei wurden die Compiler-Direktiven eingefügt. Ich habe dann
Delphi-Quellcode:
{$ifdef ver330} //Delphi 10 (Rio)
{$define d6plus}
{$endif}
hinzugefügt und nun tut alles!

Ich bin nicht auf die Idee gekommen, dass d6plus keine Delphi Direktive ist.

Über 1 Stunde habe ich gesucht :-(. Hätte ich doch gleich hier gefragt! :thumb:

DualCoreCpu 23. Sep 2019 13:59

AW: DesignIntf nicht gefunden
 
Ich habe das gleiche Problem hier bei den Synedit Komponenten.

Delphi-Quellcode:
unit SynEditPropertyReg;
{$ENDIF}

{$I SynEdit.inc}  //Die Include-Datei ist da, sonst hätte ich den Fehler "SynEdit.inc nicht gefunden" erhalten.

interface

uses
{$IFDEF SYN_COMPILER_6_UP}
  DesignIntf,
  DesignEditors,
  VCLEditors,
  StrEdit,
{$ELSE}
Der Anzieger für die fehlerhagte Codezeile steht auf der Designintf - Unit. Die Nummer der fehlerhaften Zeile wird ebenfalls korrekt angezeigt. SY_COMPILER_6_UP ist also definiert, ich compiliere mit Delphi 10.3.2, diese Version ist höher als Delphi 6, soweit arbeitet mein Compiler also korrekt. Aber wo ist nun die Unit Designintf? Und gibt es die anderen Units (DesignEditors,
VCLEditors, StrEdit)?

jziersch 23. Sep 2019 14:34

AW: DesignIntf nicht gefunden
 
Du must dem Package hinzufügen:
designide.dcp

Das package findest Du im Delphi Directory.

mmw 23. Sep 2019 15:36

AW: DesignIntf nicht gefunden
 
Hallo,

vieleicht hilft dies

http://docwiki.embarcadero.com/Libra.../en/DesignIntf

Gruß

Stevie 23. Sep 2019 16:28

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von jziersch (Beitrag 1447562)
Du must dem Package hinzufügen:
designide.dcp

Das package findest Du im Delphi Directory.

Muss man nicht, denn die steht schon im Designtime Package drin, siehe: https://github.com/SynEdit/SynEdit/b...Edit_D.dpk#L35

DualCoreCpu 23. Sep 2019 18:09

AW: DesignIntf nicht gefunden
 
Wenn ich das mit Projekt->Dem Projekt hinzufügen mache, meckert die IDE, ich könne dieses Package "designide.dcp" dem Projekt nicht hinzufügen.

Es gibt noch eine "designide260.bpl", die kann ich auf diese Weise hinzufügen, das führt aber nicht zum Erfolg. Nach wie vor -> designintf nicht gefunden.

Wo finde ich den Dialog, der auf der Embarcadero Seite, die oben verlinkt ist, abgebildet ist?

Ich verwende Delphi 10.3.2 Community Edition.

mmw 23. Sep 2019 18:39

AW: DesignIntf nicht gefunden
 
Hallo

Project/Optionen/Delphi-Compiler/Compilieren

Ziel auswählen (Release, Debug)

Gruß

DualCoreCpu 23. Sep 2019 18:46

AW: DesignIntf nicht gefunden
 
Wenn ich dagegen versuche mit dem Menüpunkt Bereitstellung zu arbeiten, moniert er eine nicht gefundene designide260.bpl, obwohl ich dieses Package vorher dem Projekt hinzugefügt habe.

Menü Projekt->Dem Projekt hinzufügen.

DualCoreCpu 23. Sep 2019 18:49

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von mmw (Beitrag 1447587)
Hallo

Project/Optionen/Delphi-Compiler/Compilieren

Ziel auswählen (Release, Debug)

Gruß

Nun erhalte ich den Fehler: designide260.bpl nicht gefunden, obwohl ich diese Package mit "Projekt->Dem Projekt hinzufügen" zu meinem Projekt hinzugefügt habe und zusätzlich noch das Package designide.dcp.

mmw 23. Sep 2019 18:55

AW: DesignIntf nicht gefunden
 
Hallo,

mal ohne hinzugefügte *.bpl's

versuchen.

Gruß

Stevie 24. Sep 2019 10:10

AW: DesignIntf nicht gefunden
 
Woher hast du das SynEdit? Es sollte doch ohne irgendwelche Modifikationen kompilieren und es nicht erforderlich machen, da irgendwie dran rumzufummeln.
Falls doch, sollte das bei der Quelle gefixt werden

DualCoreCpu 25. Sep 2019 07:22

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von Stevie (Beitrag 1447666)
Woher hast du das SynEdit? Es sollte doch ohne irgendwelche Modifikationen kompilieren und es nicht erforderlich machen, da irgendwie dran rumzufummeln.
Falls doch, sollte das bei der Quelle gefixt werden

Von Github! Der Link dazu stammt von hier:
https://www.delphipraxis.net/201821-...-10-3-2-a.html

Dort der 2. Beitrag enthält den Link.

Ich konnte die Synedits compilieren und die Packages installieren. Der Fehlker tritt auf, wenn ich ein Projekt übersetzen will, das die Synedit Komponenten verwendet.

.

dummzeuch 25. Sep 2019 08:49

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von DualCoreCpu (Beitrag 1447799)
Ich konnte die Synedits compilieren und die Packages installieren. Der Fehlker tritt auf, wenn ich ein Projekt übersetzen will, das die Synedit Komponenten verwendet.

Hm, das ist sehr seltsam. Ist dieses Projekt selbst ein Package oder ein normales Programm? Falls letzteres sollte es Designide nicht verwenden, denn dieses Package darf nicht weitergegeben werden und funktioniert ohne die IDE sowieso nicht.

DualCoreCpu 25. Sep 2019 12:06

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von dummzeuch (Beitrag 1447815)
Zitat:

Zitat von DualCoreCpu (Beitrag 1447799)
Ich konnte die Synedits compilieren und die Packages installieren. Der Fehlker tritt auf, wenn ich ein Projekt übersetzen will, das die Synedit Komponenten verwendet.

Hm, das ist sehr seltsam. Ist dieses Projekt selbst ein Package oder ein normales Programm? Falls letzteres sollte es Designide nicht verwenden, denn dieses Package darf nicht weitergegeben werden und funktioniert ohne die IDE sowieso nicht.

Es handelt sich um ein normales Win32 Programm. Einen Editor, der Syntaxhihlighting können soll. Außer den Synedit(s) sind noch keine Fremdkomponenten installiert. Lohnt sich derzeit nicht, da meine Community Lizenz Ende 2019 endet und ich danach von vorne anfangen würde mit der Installation.

dummzeuch 25. Sep 2019 13:39

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von DualCoreCpu (Beitrag 1447837)
Zitat:

Zitat von dummzeuch (Beitrag 1447815)
Zitat:

Zitat von DualCoreCpu (Beitrag 1447799)
Ich konnte die Synedits compilieren und die Packages installieren. Der Fehlker tritt auf, wenn ich ein Projekt übersetzen will, das die Synedit Komponenten verwendet.

Hm, das ist sehr seltsam. Ist dieses Projekt selbst ein Package oder ein normales Programm? Falls letzteres sollte es Designide nicht verwenden, denn dieses Package darf nicht weitergegeben werden und funktioniert ohne die IDE sowieso nicht.

Es handelt sich um ein normales Win32 Programm. Einen Editor, der Syntaxhihlighting können soll. Außer den Synedit(s) sind noch keine Fremdkomponenten installiert. Lohnt sich derzeit nicht, da meine Community Lizenz Ende 2019 endet und ich danach von vorne anfangen würde mit der Installation.

Nochmal zurück zu Deinem ersten Post:

Zitat:

Zitat von DualCoreCpu
Ich habe das gleiche Problem hier bei den Synedit Komponenten.

Delphi-Quellcode:
unit SynEditPropertyReg;

Dies ist der Property-Editor der Komponenten und sollte in einem Anwendungsprogramm gar nicht eingebunden werden.

Wo wird diese Unit denn referenziert? Grep mal nach dem Unitnamen und wirf alle Referenzen raus, die nicht im SynEdit Source selbst sind.

twm

mmw 25. Sep 2019 18:13

AW: DesignIntf nicht gefunden
 
Hallo,
von da hatte ich sie mir auch runtergeladen und wie dort im link unter #16 beschrieben installiert.

nichts hinzugefügt. läuft unter Tokio und Rio

Gruß



Zitat:

Zitat von DualCoreCpu (Beitrag 1447799)
Zitat:

Zitat von Stevie (Beitrag 1447666)
Woher hast du das SynEdit? Es sollte doch ohne irgendwelche Modifikationen kompilieren und es nicht erforderlich machen, da irgendwie dran rumzufummeln.
Falls doch, sollte das bei der Quelle gefixt werden

Von Github! Der Link dazu stammt von hier:
https://www.delphipraxis.net/201821-...-10-3-2-a.html

Dort der 2. Beitrag enthält den Link.

Ich konnte die Synedits compilieren und die Packages installieren. Der Fehlker tritt auf, wenn ich ein Projekt übersetzen will, das die Synedit Komponenten verwendet.

.


DualCoreCpu 26. Sep 2019 08:34

AW: DesignIntf nicht gefunden
 
Habe nun die DesignIde.pas Unit und auch die anderen (VCLEdit und StrEdit entfernt.

Nun kommt Fehlermeldung:

"DesignIde260 wird benötigt, kann aber nicht gefunden werden"!

So sieht mein Quellcode für mein Editorprojekt bisher aus:
Delphi-Quellcode:
program Edit;

uses
  Vcl.Forms,
  UFrame in 'UFrame.pas' {Frame1: TFrame},
  SynAutoCorrect in '..\Synedit\Source\SynAutoCorrect.pas',
  SynAutoCorrectEditor in '..\Synedit\Source\SynAutoCorrectEditor.pas' {frmAutoCorrectEditor},
  SynCompletionProposal in '..\Synedit\Source\SynCompletionProposal.pas',
  SynDBEdit in '..\Synedit\Source\SynDBEdit.pas',
  SynEdit in '..\Synedit\Source\SynEdit.pas',
  SynEditAutoComplete in '..\Synedit\Source\SynEditAutoComplete.pas',
  SynEditCodeFolding in '..\Synedit\Source\SynEditCodeFolding.pas',
  SynEditDocumentManager in '..\Synedit\Source\SynEditDocumentManager.pas',
  SynEditExport in '..\Synedit\Source\SynEditExport.pas',
  SynEditHighlighter in '..\Synedit\Source\SynEditHighlighter.pas',
  SynEditHighlighterOptions in '..\Synedit\Source\SynEditHighlighterOptions.pas',
  SynEditKbdHandler in '..\Synedit\Source\SynEditKbdHandler.pas',
  SynEditKeyCmdEditor in '..\Synedit\Source\SynEditKeyCmdEditor.pas' {SynEditKeystrokeEditorForm},
  SynEditKeyCmds in '..\Synedit\Source\SynEditKeyCmds.pas',
  SynEditKeyCmdsEditor in '..\Synedit\Source\SynEditKeyCmdsEditor.pas' {SynEditKeystrokesEditorForm},
  SynEditKeyConst in '..\Synedit\Source\SynEditKeyConst.pas',
  SynEditMiscClasses in '..\Synedit\Source\SynEditMiscClasses.pas',
  SynEditMiscProcs in '..\Synedit\Source\SynEditMiscProcs.pas',
  SynEditOptionsDialog in '..\Synedit\Source\SynEditOptionsDialog.pas' {fmEditorOptionsDialog},
  SynEditPlugins in '..\Synedit\Source\SynEditPlugins.pas',
  SynEditPrint in '..\Synedit\Source\SynEditPrint.pas',
  SynEditPrinterInfo in '..\Synedit\Source\SynEditPrinterInfo.pas',
  SynEditPrintHeaderFooter in '..\Synedit\Source\SynEditPrintHeaderFooter.pas',
  SynEditPrintMargins in '..\Synedit\Source\SynEditPrintMargins.pas',
  SynEditPrintMarginsDialog in '..\Synedit\Source\SynEditPrintMarginsDialog.pas' {SynEditPrintMarginsDlg},
  SynEditPrintPreview in '..\Synedit\Source\SynEditPrintPreview.pas',
  SynEditPrintTypes in '..\Synedit\Source\SynEditPrintTypes.pas',
  SynEditPropertyReg in '..\Synedit\Source\SynEditPropertyReg.pas',
  SynEditPythonBehaviour in '..\Synedit\Source\SynEditPythonBehaviour.pas',
  SynEditReg in '..\Synedit\Source\SynEditReg.pas',
  SynEditRegexSearch in '..\Synedit\Source\SynEditRegexSearch.pas',
  SynEditSearch in '..\Synedit\Source\SynEditSearch.pas',
  SynEditStrConst in '..\Synedit\Source\SynEditStrConst.pas',
  SynEditTextBuffer in '..\Synedit\Source\SynEditTextBuffer.pas',
  SynEditTypes in '..\Synedit\Source\SynEditTypes.pas',
  SynEditWildcardSearch in '..\Synedit\Source\SynEditWildcardSearch.pas',
  SynEditWordWrap in '..\Synedit\Source\SynEditWordWrap.pas',
  SynExportHTML in '..\Synedit\Source\SynExportHTML.pas',
  SynExportRTF in '..\Synedit\Source\SynExportRTF.pas',
  SynExportTeX in '..\Synedit\Source\SynExportTeX.pas',
  SynHighlighterADSP21xx in '..\Synedit\Source\SynHighlighterADSP21xx.pas',
  SynHighlighterAsm in '..\Synedit\Source\SynHighlighterAsm.pas',
  SynHighlighterAsmMASM in '..\Synedit\Source\SynHighlighterAsmMASM.pas',
  SynHighlighterAWK in '..\Synedit\Source\SynHighlighterAWK.pas',
  SynHighlighterBaan in '..\Synedit\Source\SynHighlighterBaan.pas',
  SynHighlighterBat in '..\Synedit\Source\SynHighlighterBat.pas',
  SynHighlighterCAC in '..\Synedit\Source\SynHighlighterCAC.pas',
  SynHighlighterCache in '..\Synedit\Source\SynHighlighterCache.pas',
  SynHighlighterCobol in '..\Synedit\Source\SynHighlighterCobol.pas',
  SynHighlighterCPM in '..\Synedit\Source\SynHighlighterCPM.pas',
  SynHighlighterCpp in '..\Synedit\Source\SynHighlighterCpp.pas',
  SynHighlighterCS in '..\Synedit\Source\SynHighlighterCS.pas',
  SynHighlighterCss in '..\Synedit\Source\SynHighlighterCss.pas',
  SynHighlighterDfm in '..\Synedit\Source\SynHighlighterDfm.pas',
  SynHighlighterDml in '..\Synedit\Source\SynHighlighterDml.pas',
  SynHighlighterDOT in '..\Synedit\Source\SynHighlighterDOT.pas',
  SynHighlighterDWS in '..\Synedit\Source\SynHighlighterDWS.pas',
  SynHighlighterEiffel in '..\Synedit\Source\SynHighlighterEiffel.pas',
  SynHighlighterFortran in '..\Synedit\Source\SynHighlighterFortran.pas',
  SynHighlighterFoxpro in '..\Synedit\Source\SynHighlighterFoxpro.pas',
  SynHighlighterGalaxy in '..\Synedit\Source\SynHighlighterGalaxy.pas',
  SynHighlighterGeneral in '..\Synedit\Source\SynHighlighterGeneral.pas',
  SynHighlighterGLSL in '..\Synedit\Source\SynHighlighterGLSL.pas',
  SynHighlighterGo in '..\Synedit\Source\SynHighlighterGo.pas',
  SynHighlighterGWS in '..\Synedit\Source\SynHighlighterGWS.pas',
  SynHighlighterHashEntries in '..\Synedit\Source\SynHighlighterHashEntries.pas',
  SynHighlighterHaskell in '..\Synedit\Source\SynHighlighterHaskell.pas',
  SynHighlighterHC11 in '..\Synedit\Source\SynHighlighterHC11.pas',
  SynHighlighterHP48 in '..\Synedit\Source\SynHighlighterHP48.pas',
  SynHighlighterHtml in '..\Synedit\Source\SynHighlighterHtml.pas',
  SynHighlighterIDL in '..\Synedit\Source\SynHighlighterIDL.pas',
  SynHighlighterIni in '..\Synedit\Source\SynHighlighterIni.pas',
  SynHighlighterInno in '..\Synedit\Source\SynHighlighterInno.pas',
  SynHighlighterJava in '..\Synedit\Source\SynHighlighterJava.pas',
  SynHighlighterJScript in '..\Synedit\Source\SynHighlighterJScript.pas',
  SynHighlighterJSON in '..\Synedit\Source\SynHighlighterJSON.pas',
  SynHighlighterKix in '..\Synedit\Source\SynHighlighterKix.pas',
  SynHighlighterLDraw in '..\Synedit\Source\SynHighlighterLDraw.pas',
  SynHighlighterLLVM in '..\Synedit\Source\SynHighlighterLLVM.pas',
  SynHighlighterM3 in '..\Synedit\Source\SynHighlighterM3.pas',
  SynHighlighterManager in '..\Synedit\Source\SynHighlighterManager.pas',
  SynHighlighterModelica in '..\Synedit\Source\SynHighlighterModelica.pas',
  SynHighlighterMsg in '..\Synedit\Source\SynHighlighterMsg.pas',
  SynHighlighterMulti in '..\Synedit\Source\SynHighlighterMulti.pas',
  SynHighlighterPas in '..\Synedit\Source\SynHighlighterPas.pas',
  SynHighlighterPerl in '..\Synedit\Source\SynHighlighterPerl.pas',
  SynHighlighterPHP in '..\Synedit\Source\SynHighlighterPHP.pas',
  SynHighlighterProgress in '..\Synedit\Source\SynHighlighterProgress.pas',
  SynHighlighterPython in '..\Synedit\Source\SynHighlighterPython.pas',
  SynHighlighterRC in '..\Synedit\Source\SynHighlighterRC.pas',
  SynHighlighterRexx in '..\Synedit\Source\SynHighlighterRexx.pas',
  SynHighlighterRuby in '..\Synedit\Source\SynHighlighterRuby.pas',
  SynHighlighterSDD in '..\Synedit\Source\SynHighlighterSDD.pas',
  SynHighlighterSml in '..\Synedit\Source\SynHighlighterSml.pas',
  SynHighlighterSQL in '..\Synedit\Source\SynHighlighterSQL.pas',
  SynHighlighterST in '..\Synedit\Source\SynHighlighterST.pas',
  SynHighlighterTclTk in '..\Synedit\Source\SynHighlighterTclTk.pas',
  SynHighlighterTeX in '..\Synedit\Source\SynHighlighterTeX.pas',
  SynHighlighterUNIXShellScript in '..\Synedit\Source\SynHighlighterUNIXShellScript.pas',
  SynHighlighterUnreal in '..\Synedit\Source\SynHighlighterUnreal.pas',
  SynHighlighterURI in '..\Synedit\Source\SynHighlighterURI.pas',
  SynHighlighterVB in '..\Synedit\Source\SynHighlighterVB.pas',
  SynHighlighterVBScript in '..\Synedit\Source\SynHighlighterVBScript.pas',
  SynHighlighterVrml97 in '..\Synedit\Source\SynHighlighterVrml97.pas',
  SynHighlighterWebIDL in '..\Synedit\Source\SynHighlighterWebIDL.pas',
  SynHighlighterXML in '..\Synedit\Source\SynHighlighterXML.pas',
  SynMacroRecorder in '..\Synedit\Source\SynMacroRecorder.pas',
  SynMemo in '..\Synedit\Source\SynMemo.pas',
  SynRegExpr in '..\Synedit\Source\SynRegExpr.pas',
  SynTextDrawer in '..\Synedit\Source\SynTextDrawer.pas',
  SynUnicode in '..\Synedit\Source\SynUnicode.pas',
  SynURIOpener in '..\Synedit\Source\SynURIOpener.pas',
  SynUsp10 in '..\Synedit\Source\SynUsp10.pas';

Application.CreateForm(TSynEditKeystrokeEditorForm, SynEditKeystrokeEditorForm);
Wo ist die klassische Begin End. Klammer geblieben?

Unit UEditor:
Delphi-Quellcode:
unit UEditor;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ToolWin, Vcl.ActnMan, Vcl.ActnCtrls,
  Vcl.ExtCtrls, Vcl.Menus, Vcl.ComCtrls, Vcl.CategoryButtons, editor2;

type
  TForm2 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Neu1: TMenuItem;
    InEditorholen1: TMenuItem;
    N1: TMenuItem;
    Speichern1: TMenuItem;
    Speichernunter1: TMenuItem;
    Allesspeichern1: TMenuItem;
    Schlieen1: TMenuItem;
    Allesschlieen1: TMenuItem;
    N2: TMenuItem;
    Beenden1: TMenuItem;
    Bearbeiten1: TMenuItem;
    T: TControlBar;
    CategoryPanelGroup1: TCategoryPanelGroup;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    CategoryPanel1: TCategoryPanel;
    TreeView1: TTreeView;
    CategoryPanel2: TCategoryPanel;
    CategoryPanelGroup2: TCategoryPanelGroup;
    CategoryPanel3: TCategoryPanel;
    CategoryPanel4: TCategoryPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    HeaderControl1: THeaderControl;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.
Und mein Editor:
Delphi-Quellcode:
{
 To do:

 - vor schließen Fenster oder Tabseite -> Datei speichern oder fragen
 - In Editwindow -> Editorliste ergänzen
 - in Main: Zeile 109 und 153 TEditorPages//(Container)
 - in TEditorPages mit TPageControl -> Wenn Noname.pas, dann Datei in diesen Editor
}

unit editor2;

{$ifdef fpc}{$mode objfpc}{$H+}{$endif}
{.define USE_SPTBX}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs,
  SynHighlighterPas, SynHighlighterCpp, SynHighlighterDFM, SynHighlighterJava,
  SynHighlighterPerl, SynHighlighterHTML, SynHighlighterXML, SynHighlighterCss,
  SynHighlighterPHP, SynHighlighterSQL, SynHighlighterPython,
  SynEdit, SynCompletionProposal, SynExportHTML, SynMacroRecorder, SynEditHighlighter,
  {$ifndef FPC} {$ifdef USE_SPTBX}SpTBXTabs,{$endif} {$endif}
  ComCtrls, Contnrs, ExtCtrls{$ifdef fpc},Process{$endif}; //nur FPC Version

const
  HIGHLIGHTER_PAS = 0;
  HIGHLIGHTER_FPC = 1;
  HIGHLIGHTER_CPP = 2;
  HIGHLIGHTER_LFM = 3;
  HIGHLIGHTER_JAV = 4;
  HIGHLIGHTER_PRL = 5;
  HIGHLIGHTER_HTM = 6;
  HIGHLIGHTER_XML = 7;
  HIGHLIGHTER_CSS = 8;
  HIGHLIGHTER_PHP = 9;
  HIGHLIGHTER_SQL = 10;
  HIGHLIGHTER_PYT = 11;
  HIGHLIGHTER_ASM = 12;

type
  THighLighters = class(TStringList)
  private
    function GetHighlighter(Index: Integer): TSynCustomHighlighter;
  public
    function Add(AHighlighter: TSynCustomHighlighter): Integer;
    property Highlighters[Index: Integer]: TSynCustomHighlighter read GetHighlighter;
  end;

  { TEditorPage }
 
  {$ifdef USE_SPTBX}
  TEditorPage = class(TSpTBXTabSheet)
  {$else}
  TEditorPage = class(TTabSheet)
  {$endif}
  private
    FDefaultExt: ShortString;
    FEditor: TSynEdit;
    FExtension: ShortString;
    FFilename: ShortString; //Name der Editordatei
    FHighlighter: TSynCustomHighlighter;
    FHighlighters: THighlighters;
    FEmptyFileNames: TStringList;
    FHighlighterIX: Integer;
    {$ifdef fpc}
    FProcess: TProcess; //nur FPC Version
    {$endif}
    function HighlighterEquivalentToFileExt(AFileExt: ShortString): Integer;
    function GetHighlighter: Integer;
    procedure SetDefaultExt(Value: ShortString);
    procedure SetFilename(AFilename: ShortString);
    procedure SetHighlighter(AHighlighter: Integer);
  public
    //Compiler ist individuell für die Editordatei
    procedure Compile;
    procedure CompileSource(AFilename: ShortString);
    constructor Create(AOwner: TComponent);
    destructor Destroy; override;
    procedure LoadFromFile(AFilename: ShortString);
    procedure Save;
    procedure SaveAs(AFilename: ShortString);

    property Editor: TSynEdit read FEditor;
    property FileExt: ShortString read FExtension write FExtension;
    property Filename: ShortString read FFilename write SetFilename;
    property Highlighter: Integer read GetHighlighter write SetHighlighter;
    property DefaultExt: ShortString write SetDefaultExt;
  end;

  TEditorsList = class(TObjectList)
  private
    function GetEditors(Index: Integer): TEditorPage;
  public
    function AddEditor(AEditor: TEditorPage): Integer;
    property Editors[Index: Integer]: TEditorPage read GetEditors; default;
  end;

(*
  Here the Editor-PageControl follows
*)

  { TEditorPages }

  {$ifdef USE_SPTBX}
  TEditorPages = class(TSpTBXTabControl)
  {$else}
  TEditorPages = class(TPageControl)
  {$endif}
  private
    FProjectName: ShortString; //Name des Projektes

    {$ifdef fpc}
    FProcess: TProcess; //nur FPC Version zum Start des Compilers
    {$endif}
    function GetEditorPages: TEditorpages;
  public
    //Compiler ist derjenige der das Projekt überstzt
    //Compiler des einzelnen Editors kann dagegen eine andere Programmiersprache
    //übersetzen und den Bin-code in den Code des Projektes linken
    procedure Compile;
    procedure CompileProject(AProject: ShortString);
    procedure Debug;
    procedure DebugProject(AProjectName: ShortString);
    procedure OpenEditor(AFilename: ShortString);
    procedure CloseCurrentEditor;
    constructor Create(AOwner: TComponent);
    destructor Destroy; override;
    procedure Save;
    procedure SaveAs(AFilename: ShortString);
    procedure SaveAll;
    property Editors: TEditorPages read GetEditorPages;
    {$ifdef fpc}
    {$endif}
  end;

  { TEditorPagesContainer }

  TEditorPagesContainer = class(TPanel)
  private
    FEditorPage: TEditorsList;
    FEditPage: TObjectList;
    FEditorPages: TEditorPages;
    function GetPageCount: Integer;
  public
    procedure OpenEditor(AFilename: ShortString);
    procedure CloseCurrentEditor;
    constructor Create(AOwner: TComponent);
    destructor Destroy; override;
    procedure Save;
    procedure SaveAs(AFilename: ShortString);
    procedure SaveAll;
    property Editors: TEditorPages read FEditorPages;
    property PageCount: Integer read GetPageCount;
  end;

  { TEditorWindow }

  TEditorWindow = class(TForm)
  private
    FDefaultExt: ShortString;
    FEditor: TSynEdit;
    FExtension: ShortString;
    FFilename: ShortString;
    FHighlighter: TSynCustomHighlighter;
    FHighlighters: THighlighters;
    FEmptyFileNames: TStringList;
    FHighlighterIX: Integer;
    {$ifdef fpc}
    FProcess: TProcess; //nur FPC Version
    {$endif}
    FStatusBar: TStatusBar;
    function HighlighterEquivalentToFileExt(AFileExt: ShortString): Integer;
    function GetHighlighter: Integer;
    procedure SetDefaultExt(value: ShortString);
    procedure SetFilename(AFilename: ShortString);
    procedure SetHighlighter(AHighlighter: Integer);
  public
    procedure Compile;
    procedure CompileSource(AFilename: ShortString);
    constructor Create(AOwner: TComponent);
    destructor Destroy; override;
    procedure NewFile;
    procedure LoadFromFile(AFilename: ShortString);
    procedure Save;
    procedure SaveAs(AFilename: ShortString);
    property FileExt: ShortString read FExtension write FExtension;
    property Filename: ShortString read FFilename write SetFilename;
    property Highlighter: Integer read GetHighlighter write SetHighlighter;
    property DefaultExt: ShortString write SetDefaultExt;
  end;

var
  IDEEditor: TEditorPages;

implementation

{ THighlighters }

function THighlighters.GetHighlighter(Index: Integer): TSynCustomHighlighter;
begin
  Result := TSynCustomHighlighter(Objects[Index]);
end;

function THighlighters.Add(AHighlighter: TSynCustomHighlighter): Integer;
begin
  Result := AddObject(AHighlighter.Name, AHighlighter);
end;


{ TEditorPage }

procedure TEditorPage.SetDefaultExt(value: ShortString);
begin
  if FDefaultExt<> value then FDefaultExt := value;
end;

function TEditorPage.HighlighterEquivalentToFileExt(AFileExt: ShortString
  ): Integer;
begin
  if AFileExt = 'pas'   then
  begin
    FEditor.Highlighter := TSynPasSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 0;
  end;
  if AFileExt = 'pp'    then
  begin
    FEditor.Highlighter := TSynPasSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 1;
  end;
  if (AFileExt = 'cpp') or (AFileExt = 'c')   then
  begin
    FEditor.Highlighter := TSynCppSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 2;
  end;
  if (AFileExt = 'lfm') or (AFileExt = 'dfm') then
  begin
    FEditor.Highlighter := TSynDfmSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 3;
  end;
  if AFileExt = 'java'  then
  begin
    FEditor.Highlighter := TSynJavaSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 4;
  end;
  if AFileExt = 'perl'  then
  begin
    FEditor.Highlighter := TSynPerlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 5;
  end;
  if AFileExt = 'html'  then
  begin
    FEditor.Highlighter := TSynHtmlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 6;
  end;
  if AFileExt = 'xml'   then
  begin
    FEditor.Highlighter := TSynXmlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 7;
  end;
  if AFileExt = 'css'   then
  begin
    FEditor.Highlighter := TSynCssSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 8;
  end;
  if AFileExt = 'php'   then
  begin
    FEditor.Highlighter := TSynPhpSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 9;
  end;
  if AFileExt = 'sql'   then
  begin
    FEditor.Highlighter := TSynSqlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 10;
  end;
  if AFileExt = 'python' then
  begin
    FEditor.Highlighter := TSynPythonSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 11;
  end;
  {
  if (AFileExt = 'asm') or (AFileExt = 'as') then
  begin
    FEditor.Highlighter := TSynAsmSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 12;
  end;
  }
end;

function TEditorPage.GetHighlighter: Integer;
begin
  Result := FHighlighterIX;
end;

procedure TEditorPage.SetFilename(AFilename: ShortString);
begin
  LoadFromFile(AFilename);
  {
  FFilename := AFilename;
  if (FFilename <> '') and (POS('Noname', FFilename)=0) then
  begin
    FEditor.Lines.LoadFromFile(FFilename);
    Caption := FFilename;
  end else Caption := 'Untitled';
  }
end;

procedure TEditorPage.SetHighlighter(AHighlighter: Integer);
begin
  if FHighlighterIX >= FHighlighters.Count then ShowMessage('Diese Syntax wird vom Editor nicht unterstützt!');
  if FHighlighterIX < FHighlighters.Count then
  if FHighlighterIX <> AHighlighter then
  begin
    FHighlighterIX := AHighlighter;
    FEditor.Highlighter := TSynCustomHighlighter(FHighlighters.Highlighters[FHighlighterIX]);
    Highlighter := FHighlighterIX;
  end;
end;

procedure TEditorPage.Compile;
begin

end;

procedure TEditorPage.CompileSource(AFilename: ShortString);
begin

end;

constructor TEditorPage.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FHighlighters := THighlighters.Create;
  //nur UnixShellScript fehlt aus dem Repertoire der Lazarus Synedit-Highlighter
  FHighlighters.Add(TSynPasSyn.Create(self));
  FHighlighters.Add(TSynCppSyn.Create(self));
  FHighlighters.Add(TSynDfmSyn.Create(self));
  FHighlighters.Add(TSynJavaSyn.Create(self));
  FHighlighters.Add(TSynPerlSyn.Create(self));
  FHighlighters.Add(TSynHtmlSyn.Create(self));
  FHighlighters.Add(TSynXmlSyn.Create(self));
  FHighlighters.Add(TSynCssSyn.Create(self));
  FHighlighters.Add(TSynPHPSyn.Create(self));
  FHighlighters.Add(TSynSQLSyn.Create(self));
  FHighlighters.Add(TSynPythonSyn.Create(self));
  FEmptyFileNames := TStringList.Create;
  FEmptyFileNames.Add('Noname.pas');
  FEmptyFileNames.Add('Noname.pp');
  FEmptyFileNames.Add('Noname.cpp');
  FEmptyFileNames.Add('Noname.lfm');
  FEmptyFileNames.Add('Noname.java');
  FEmptyFileNames.Add('Noname.Perl');
  FEmptyFileNames.Add('Noname.Html');
  FEmptyFileNames.Add('Noname.xml');
  FEmptyFileNames.Add('Noname.css');
  FEmptyFileNames.Add('Noname.php');
  FEmptyFileNames.Add('Noname.sql');
  FEmptyFileNames.Add('Noname.python');
  FEditor := TSynEdit.Create(self);
  FEditor.Parent := self;
  FEditor.Align := alClient;
  FDefaultExt := 'pas';
end;

destructor TEditorPage.Destroy;
begin
  if FEditor<>nil then FreeAndNil(FEditor);
  if FEmptyFileNames<>nil then FreeAndNil(FEmptyFileNames);
  if FHighlighters<>nil then FreeAndNil(FHighlighters);
  inherited Destroy;
end;

procedure TEditorPage.LoadFromFile(AFilename: ShortString);
var Ext: ShortString;
begin
  if (AFilename<>'') then
  begin
    Ext := ExtractFileExt(AFilename);
    System.Delete(Ext, 1, 1);
    //SetHighlighter(HighlighterEquivalentToFileExt(Ext));
    FHighlighterIX := HighlighterEquivalentToFileExt(Ext);
    FEditor.Lines.LoadFromFile(AFilename);
    FFilename := AFilename;
    Caption := ExtractFilename(FFilename);
  end
  else
  begin
    Ext := FDefaultExt;
    FHighlighterIX := HighlighterEquivalentToFileExt(Ext);
    if (FHighlighterIX >= 0) and (FHighlighterIX < FEmptyFileNames.Count) then
    begin

      Caption := FEmptyFileNames[FHighlighterIX];

    end
    else Caption := 'Untitled';
  end;
end;

procedure TEditorPage.Save;
begin
  //Wenn FFilename = '' dann Dateidialog aufrufen und Filename erfragen
  SaveAs(FFilename);
end;

procedure TEditorPage.SaveAs(AFilename: ShortString);
begin
  FEditor.Lines.SaveToFile(AFilename);
  FFileName := AFilename;
  Caption := ExtractFileName(AFilename);
end;


{ TEditorsList }

function TEditorsList.GetEditors(Index: Integer): TEditorPage;
begin
  Result := TEditorPage(Items[Index]);
end;

function TEditorsList.AddEditor(AEditor: TEditorPage): Integer;
begin
  Result := Add(AEditor);
end;


{ TEditorPages }

function TEditorPages.GetEditorPages: TEditorpages;
begin
  Result := self;
end;

procedure TEditorPages.Compile;
begin

end;

procedure TEditorPages.CompileProject(AProject: ShortString);
begin

end;

procedure TEditorPages.Debug;
begin

end;

procedure TEditorPages.DebugProject(AProjectName: ShortString);
begin

end;

procedure TEditorPages.OpenEditor(AFilename: ShortString);
var Page: TEditorPage;
begin
  Page := TEditorPage.Create(self);
  Page.LoadFromFile(AFileName);
  {$ifdef USE_SPTBX}
  Page.TabControl := self;
  {$else}
  Page.PageControl := self;
  {$endif}
end;

procedure TEditorPages.CloseCurrentEditor;
var mResult: Integer;
begin
  if TEditorPage(ActivePage).Editor.Modified then
  begin
    mResult := MessageDlg('', mtWarning, [mbYes, mbNo, mbCancel], 0);
    if MResult = mrYes then TEditorPage(ActivePage).Save;
  end;
  ActivePage.Free;
end;

constructor TEditorPages.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  {$ifdef fpc}
  Process := TProcess.Create(self);
  {$endif}
end;

destructor TEditorPages.Destroy;
begin
  {$ifdef fpc}
  if Process<>nil then FreeAndNil(Process);
  {$endif}
  inherited Destroy;
end;

procedure TEditorPages.Save;
begin
  TEditorPage(ActivePage).Save;
end;

procedure TEditorPages.SaveAs(AFilename: ShortString);
begin
  TEditorPage(ActivePage).SaveAs(AFileName);
end;

procedure TEditorPages.SaveAll;
var Index: Integer;
begin
  for Index := IdeEditor.PageCount - 1 downto 0 do
  TEditorPage(Pages[Index]).Save;
end;


{ TEditorPagesContainer }

function TEditorPagesContainer.GetPageCount: Integer;
begin
  Result := FEditorPages.PageCount;
end;

procedure TEditorPagesContainer.OpenEditor(AFilename: ShortString);
var Editor: TEditorPage; Extension: ShortString; Index: Integer;
begin
  {
  Editor := TEditorPage.Create(self);
  Editor.PageControl := FEditorPages;
  Editor.LoadFromFile(AFilename);
  }
  Index := FEditPage.Add{Editor}(TEditorPage.Create(self));
  TEditorPage(FEditPage[Index]).Parent := self;
  {$ifdef USE_SPTBX}
  TEditorPage(FEditPage[Index]).TabControl := FEditorPages;
  {$else}
  TEditorPage(FEditPage[Index]).PageControl := FEditorPages;
  {$endif}
  TEditorPage(FEditPage[Index]).LoadFromFile(AFilename);

  //Extension := ExtractFileExt(AFileName);
  //System.Delete(Extension, 1, 1);
  //Editor.HighlighterEquivalentToFileExt(Extension);
  //Editor.Highlighter := HIGHLIGHTER_PAS;
  //Editor.Editor.Highlighter := TSynPasSyn.Create(self);
end;

procedure TEditorPagesContainer.CloseCurrentEditor;
var MResult: Word;
begin
  if TEditorPage(FEditorPages.ActivePage).Editor.Modified then
  begin
    mResult := MessageDlg('', mtWarning, [mbYes, mbNo, mbCancel], 0);
    if MResult = mrYes then TEditorPage(FEditorPages.ActivePage).Save;
  end;

  if (FEditorPages<>nil) and (FEditorPages.ActivePage<>nil) then
  FEditorPages.ActivePage.Free;
end;

constructor TEditorPagesContainer.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FEditorPages := TEditorPages.Create(AOwner);
  FEditorPages.Align := alClient;
  FEditorPages.Parent := self;
  FEditorPage := TEditorsList.Create;
  FEditPage := TObjectList.Create;
end;

destructor TEditorPagesContainer.Destroy;
begin
  if FEditPage<>nil then FreeAndNil(FEditPage);
  if FEditorPage<>nil then FreeAndNil(FEditorPage);
  if FEditorPages<>nil then FreeAndNil(FEditorPages);
  inherited Destroy;
end;

procedure TEditorPagesContainer.Save;
begin
  TEditorPage(FEditorPages.ActivePage).Save;
end;

procedure TEditorPagesContainer.SaveAs(AFilename: ShortString);
begin
  TEditorPage(FEditorPages.ActivePage).SaveAs(AFilename);
  //TEditorPage(FEditorPages.ActivePage).Caption := ExtractFileName(AFilename);
end;

procedure TEditorPagesContainer.SaveAll;
var Index: Integer;
begin
  for Index := IdeEditor.PageCount - 1 downto 0 do
  TEditorPage(FEditorPages.Pages[Index]).Save;
end;


{ TEditorWindow }

procedure TEditorWindow.SetDefaultExt(value: ShortString);
begin
  if FDefaultExt<> value then FDefaultExt := value;
end;

function TEditorWindow.HighlighterEquivalentToFileExt(AFileExt: ShortString
  ): Integer;
begin
  if AFileExt = 'pas'   then
  begin
    FEditor.Highlighter := TSynPasSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 0;
  end;
  if AFileExt = 'pp'    then
  begin
    FEditor.Highlighter := TSynPasSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 1;
  end;
  if AFileExt = 'cpp'   then
  begin
    FEditor.Highlighter := TSynCppSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 2;
  end;
  if (AFileExt = 'lfm') or (AFileExt = 'dfm') then
  begin
    FEditor.Highlighter := TSynDfmSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 3;
  end;
  if AFileExt = 'java'  then
  begin
    FEditor.Highlighter := TSynJavaSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 4;
  end;
  if AFileExt = 'perl'  then
  begin
    FEditor.Highlighter := TSynPerlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 5;
  end;
  if AFileExt = 'html'  then
  begin
    FEditor.Highlighter := TSynHtmlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 6;
  end;
  if AFileExt = 'xml'   then
  begin
    FEditor.Highlighter := TSynXmlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 7;
  end;
  if AFileExt = 'css'   then
  begin
    FEditor.Highlighter := TSynCssSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 8;
  end;
  if AFileExt = 'php'   then
  begin
    FEditor.Highlighter := TSynPhpSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 9;
  end;
  if AFileExt = 'sql'   then
  begin
    FEditor.Highlighter := TSynSqlSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 10;
  end;
  if AFileExt = 'python' then
  begin
    FEditor.Highlighter := TSynPythonSyn.Create(self);
    FHighlighter := FEditor.Highlighter;
    Result := 11;
  end;
end;

function TEditorWindow.GetHighlighter: Integer;
begin
  Result := FHighlighterIX;
end;

procedure TEditorWindow.SetFilename(AFilename: ShortString);
begin
  LoadFromFile(AFilename);
end;

procedure TEditorWindow.SetHighlighter(AHighlighter: Integer);
begin
  if FHighlighterIX >= FHighlighters.Count then ShowMessage('Diese Syntax wird vom Editor nicht unterstützt!');
  if FHighlighterIX < FHighlighters.Count then
  if FHighlighterIX <> AHighlighter then
  begin
    FHighlighterIX := AHighlighter;
    FEditor.Highlighter := TSynCustomHighlighter(FHighlighters.Highlighters[FHighlighterIX]);
    Highlighter := FHighlighterIX;
  end;
end;

procedure TEditorWindow.Compile;
begin

end;

procedure TEditorWindow.CompileSource(AFilename: ShortString);
begin

end;

constructor TEditorWindow.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FormStyle := fsMDIChild;
  FHighlighters := THighlighters.Create;
  //nur UnixShellScript fehlt aus dem Repertoire der Lazarus Synedit-Highlighter
  FHighlighters.Add(TSynPasSyn.Create(self));
  FHighlighters.Add(TSynCppSyn.Create(self));
  FHighlighters.Add(TSynDfmSyn.Create(self));
  FHighlighters.Add(TSynJavaSyn.Create(self));
  FHighlighters.Add(TSynPerlSyn.Create(self));
  FHighlighters.Add(TSynHtmlSyn.Create(self));
  FHighlighters.Add(TSynXmlSyn.Create(self));
  FHighlighters.Add(TSynCssSyn.Create(self));
  FHighlighters.Add(TSynPHPSyn.Create(self));
  FHighlighters.Add(TSynSQLSyn.Create(self));
  FHighlighters.Add(TSynPythonSyn.Create(self));
  FEmptyFileNames := TStringList.Create;
  FEmptyFileNames.Add('Noname.pas');
  FEmptyFileNames.Add('Noname.cpp');
  FEmptyFileNames.Add('Noname.lfm');
  FEmptyFileNames.Add('Noname.java');
  FEmptyFileNames.Add('Noname.Perl');
  FEmptyFileNames.Add('Noname.Html');
  FEmptyFileNames.Add('Noname.xml');
  FEmptyFileNames.Add('Noname.css');
  FEmptyFileNames.Add('Noname.php');
  FEmptyFileNames.Add('Noname.sql');
  FEmptyFileNames.Add('Noname.python');
  FStatusBar:= TStatusBar.Create(self);
  FStatusBar.Parent := self;
  FEditor  := TSynEdit.Create(self);
  FEditor.Parent := self;
  FEditor.WordWrap := false;
  FEditor.WantTabs := true;
  FEditor.WantReturns := true;
  FEditor.Align := alClient;
  FDefaultExt := 'pas';
end;

destructor TEditorWindow.Destroy;
begin
  //FEditor.Free;
  //FStatusBar.Free;
  FEmptyFileNames.Free;
  FHighlighters.Free;
  inherited Destroy;
end;

procedure TEditorWindow.NewFile;
begin
  LoadFromFile('');
end;

procedure TEditorWindow.LoadFromFile(AFilename: ShortString);
var Ext: ShortString;
begin
  if (AFilename<>'') then
  begin
    Ext := ExtractFileExt(AFilename);
    System.Delete(Ext, 1, 1);
    //SetHighlighter(HighlighterEquivalentToFileExt(Ext));
    FHighlighterIX := HighlighterEquivalentToFileExt(Ext);
    FEditor.Lines.LoadFromFile(AFilename);
    FFilename := AFilename;
    Caption := ExtractFilename(FFilename);
  end
  else
  begin
    Ext := FDefaultExt;
    FHighlighterIX := HighlighterEquivalentToFileExt(Ext);
    if (FHighlighterIX >= 0) and (FHighlighterIX < FEmptyFileNames.Count)
       then Caption := FEmptyFileNames[FHighlighterIX]
    else Caption := 'Untitled';
  end;
end;

procedure TEditorWindow.Save;
begin
  SaveAs(FFilename);
end;

procedure TEditorWindow.SaveAs(AFilename: ShortString);
begin
  FEditor.Lines.SaveToFile(AFilename);
  FFilename := AFilename;
  Caption := ExtractFileName(AFilename);
end;

end.

dummzeuch 26. Sep 2019 15:20

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von DualCoreCpu (Beitrag 1447963)
Habe nun die DesignIde.pas Unit und auch die anderen (VCLEdit und StrEdit entfernt.

Wo hast Du sie entfernt? Im SynEdit-Code oder in Deinem Programm?

Wenn Du sie aus dem SynEdit-Code entfernst, compiliert das Designtime-Package von SynEdit nicht mehr. Das stört zwar aktuell nicht, aber beim nächsten Versuch es zu compilieren oder installieren wirst Du dich dann nicht mehr an diese Änderung erinnern und ewig nach dem Grund suchen.

Zitat:

Zitat von DualCoreCpu (Beitrag 1447963)
Nun kommt Fehlermeldung:

"DesignIde260 wird benötigt, kann aber nicht gefunden werden"!

Du hattest irgendwo früher im Thread geschrieben, dass Du dieses Package hinzugefügt hattest. Wo genau hast Du es hinzugefügt?

Wenn das in diesem Programm war, wirf es dort auch wieder raus. Es hat in einem Programm nichts zu suchen.

Stevie 26. Sep 2019 15:27

AW: DesignIntf nicht gefunden
 
Einfach stumpf alle pas Dateien ins uses der dpr zu packen, war der Fehler, denn dort stehen nun auch Units drin, die nur für das SynEdit Designtime package da sind!

dummzeuch 26. Sep 2019 16:08

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von Stevie (Beitrag 1448029)
Einfach stumpf alle pas Dateien ins uses der dpr zu packen, war der Fehler, denn dort stehen nun auch Units drin, die nur für das SynEdit Designtime package da sind!

Hatte ich ganz übersehen. Vermutlich war das der Auslöser für das ganze Problem. Die gehören da definitiv nicht rein.

jziersch 26. Sep 2019 18:00

AW: DesignIntf nicht gefunden
 
Zitat:

Zitat von dummzeuch (Beitrag 1448035)
Zitat:

Zitat von Stevie (Beitrag 1448029)
Einfach stumpf alle pas Dateien ins uses der dpr zu packen, war der Fehler, denn dort stehen nun auch Units drin, die nur für das SynEdit Designtime package da sind!

Hatte ich ganz übersehen. Vermutlich war das der Auslöser für das ganze Problem. Die gehören da definitiv nicht rein.

Wenn Du Synedit\Source\ in Deinen Bibliothekspfad aufnimmst (Tools/Options/Sprache/Bibliothek) kannst Du dir das Reinpacken sowieso sparen. Delphi holt sich dann die units aus der "uses" und die, die von denen eingebunden werden.

DualCoreCpu 26. Sep 2019 18:52

AW: DesignIntf nicht gefunden
 
Danke Euch allen! :cheers: Ich musste wirklich die Synedit(s) aus der .dpr entfernen und dann noch den Namen meiner Form anpassen.

Form2 statt SynEditKeyStrokeEditorForm. Und natürlich Begin End Klammer ergänzen.

Warum macht das Delphi nicht mehr automatisch?

Delphi-Quellcode:
program Edit;

uses
  Vcl.Forms,
  UFrame in 'UFrame.pas' {Frame1: TFrame},
  UEditor in 'UEditor.pas' {Form2: TForm2};
  //Synedit(s) entfernt, dafür Suchpfad ergänzt

begin //Begin und
  Application.CreateForm(TForm2, Form2);
  Application.Initialize; // Diese beiden Zeilen
  Application.Run;       // händisch hinzugefügt, früher hat das Delphi automatisch erledigt
end. //End. hinzugefügt
Hatte mich schon gewundert, warum de Begin End- Klammer gefehlt hat.
Werde mal testen wie sich Delphi diesbezüglich bei anderen Projekten verhält.

Aber nun kann ich mein Projekt übersetzen und auch ausführen.


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