products/Sources/formale Sprachen/VDM/VDMPP/diet2japanPP image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: hahn_kolmogorov.prf   Sprache: XML

unit Modeler;
//-----------------------------------------------------------------
//
//1. Bracketing ausgeschaltet
//...
//
//-----------------------------------------------------------------
interface
//-----------------------------------------------------------------
//
//-----------------------------------------------------------------
uses
  //-----------------------------------------------------------------
  //local
  //-----------------------------------------------------------------
  GenDefs,OwnUtils,Frame11,Frame22,Frame33,Graphs,StatusThread,Command,
  OptionClass,SearchReplace,AboutBox,Sample,ThreadExecute,Lizenz,
  Utilities,Splash,Language,Natural,ColorDialog,MDIClass,Editor,FullScreen,
  //-----------------------------------------------------------------
  //global
  //-----------------------------------------------------------------
  Forms,Menus,Dialogs,Extctrls,Controls,ComCtrls,StdCtrls,Classes,
  Types,Messages,Graphics,ImgList,ToolWin;
//-------------------------------------------------------
//Types
//-------------------------------------------------------
type
  TModelFrame= class(TForm)
    MainMenu1:TMainMenu;
    File1:TMenuItem;
    Exit1:TMenuItem;
    FontDialog:TFontDialog;
    View1:TMenuItem;
    Font2:TMenuItem;
    Oeffne:TMenuItem;
    Hilfe1:TMenuItem;
    Hilfe2:TMenuItem;
    ber1:TMenuItem;
    Frame11:TFrame1;
    Frame21:TFrame2;
    Frame31:TFrame3;
    SplitterVertical:TSplitter;
    Farben:TMenuItem;
    Speichere:TMenuItem;
    Speichernunter:TMenuItem;
    Syntaxhervorhebung1:TMenuItem;
    Zeilennummern1:TMenuItem;
    N2:TMenuItem;
    N3:TMenuItem;
    N4:TMenuItem;
    N5:TMenuItem;
    NeueVersion1:TMenuItem;
    Druckvorschau:TMenuItem;
    Edit1:TMenuItem;
    Kopieren:TMenuItem;
    Suchen1:TMenuItem;
    Ausschneiden1:TMenuItem;
    Einfuegen1:TMenuItem;
    N6:TMenuItem;
    Ersetzen1:TMenuItem;
    N7:TMenuItem;
    Allesauswhlen1:TMenuItem;
    IconImageList:TImageList;
    Default1:TMenuItem;
    Navigation1:TMenuItem;
    Vor1:TMenuItem;
    Zur1:TMenuItem;
    Home1:TMenuItem;
    ToolBar1:TToolBar;
    Oeffnen:TToolButton;
    Template:TToolButton;
    Speichern:TToolButton;
    Zur:TToolButton;
    Vor:TToolButton;
    Home:TToolButton;
    Split:TToolButton;
    Previewbutton:TToolButton;
    SaveDialog:TSaveDialog;
    Optionen1:TMenuItem;
    Simulation:TMenuItem;
    Auf:TToolButton;
    Ab:TToolButton;
    Inspector1:TMenuItem;
    Split1:TMenuItem;
    N12:TMenuItem;
    Neu1:TMenuItem;
    N13:TMenuItem;
    Blocknummern:TMenuItem;
    SplitterHorizontal:TSplitter;
    Auf1:TMenuItem;
    Ab1:TMenuItem;
    Ersetzenwiederholt1:TMenuItem;
    Simulation1:TToolButton;
    Exportieren1:TMenuItem;
    Undo:TMenuItem;
    N1:TMenuItem;
    Aktivierung1:TMenuItem;
    Execute1:TMenuItem;
    Execute:TToolButton;
    ZoomComboBox:TComboBox;
    Hochformat:TToolButton;
    Querformat:TToolButton;
    PrintButton:TToolButton;
    PDFButton:TToolButton;
    Drucken1:TMenuItem;
    Importieren1:TMenuItem;
    N9:TMenuItem;
    Leerzeichen1:TMenuItem;
    ToolBar2:TToolBar;
    Panel1:TPanel;
    SwitchIDEPrint:TToolButton;
    Sprache1:TMenuItem;
    N8:TMenuItem;
    Vollbild1:TMenuItem;
    Suchen:TToolButton;
    Ersetzen:TToolButton;
    Zeilennummern:TToolButton;
    SyntaxHighLite:TToolButton;
    ToolButton1:TToolButton;
    ToolButton2:TToolButton;
    ToolButton3:TToolButton;
    ToolButton4:TToolButton;
    ApplicationIcons:TImageList;
    ToolButton5:TToolButton;
    ToolButton6:TToolButton;
    ToolButton7:TToolButton;
    ToolButton8:TToolButton;
    ToolButton9:TToolButton;
    PopupMenu1:TPopupMenu;
    rckgngig2:TMenuItem;
    ausschneiden2:TMenuItem;
    kopieren22:TMenuItem;
    einfgen2:TMenuItem;
    N11:TMenuItem;
    allesauswhlen2:TMenuItem;
    N14:TMenuItem;
    PopupMenu2:TPopupMenu;
    allesauswhlen3:TMenuItem;
    kopieren3:TMenuItem;
    Kopieren2:TToolButton;
    Ausschneiden:TToolButton;
    Einfuegen:TToolButton;
    ToolButton15:TToolButton;
    UndoButton:TToolButton;
    ToolButton10:TToolButton;
    ToolButton12:TToolButton;
    ToolButton13:TToolButton;
    Lizenzerwerben1:TMenuItem;
    ToolButton11:TToolButton;
    Dateityp1:TMenuItem;
    Oeffne2:TToolButton;
    ToolButton14:TToolButton;
    Feedback1:TMenuItem;
    Indenting:TToolButton;
    Indenting2:TMenuItem;
    N15:TMenuItem;
    ContextIT1:TMenuItem;
    N16:TMenuItem;
    N17:TMenuItem;
    N10:TMenuItem;
    N18:TMenuItem;
    procedure SemantikChange(Sender:TObject;Node:TTreeNode);
    procedure NavigatorChange(Sender:TObject;Node:TTreeNode);
    procedure GraphClick(Sender:TObject);
    procedure GraphDblClick(Sender:TObject);
    procedure FormMouseWheel(Sender:TObject;Shift:TShiftState;
      WheelDelta:Integer;MousePos:TPoint;var Handled:Boolean);
    procedure Simulation1Click(Sender:TObject);
    procedure InspectorClick(Sender:TObject);
    Procedure UpDateInspector(LTP:PLongTexts;TT:TTreeNode);
    procedure AbClick(Sender:TObject);
    procedure AufClick(Sender:TObject);
    procedure SetFrameOptions;
    procedure SetWindowColors;
    procedure SetWindowFont;
    Procedure RepairHistory();
    procedure DisplayHistory();
    function findinHistory(F:JString):Integer;
    Procedure SavetoHistory(F:JString);
    procedure LoadfromHistory(Fn:JString);
    procedure sortHistory();
    procedure Setnavigation();
    procedure SaveView();
    procedure NavGetImageIndex(Sender:TObject;Node:TTreeNode);
    procedure NavGetSelectedIndex(Sender:TObject;Node:TTreeNode);
    procedure Font2Click(Sender:TObject);
    function MakeFilters(filnam:JString):Integer;
    procedure OeffnenClick(Sender:TObject);
    procedure Hilfe2Click(Sender:TObject);
    procedure AboutClick(Sender:TObject);
    procedure SplitterVerticalMoved(Sender:TObject);
    procedure ProcessFile(Fn,Ft:JString);
    procedure TreeClick(Sender:TObject);
    procedure TreeSelChange(Sender:TObject;var Key:Word;Shift:TShiftState);
    procedure FarbenClick(Sender:TObject);
    procedure Zeilennummern1Click(Sender:TObject);
    procedure SpeichernunterClick(Sender:TObject);
    procedure Syntaxhighlight1Click(Sender:TObject);
    procedure Backwards(Sender:TObject);
    procedure Walk(Prev,this:TFramestate;F:Frames);
    procedure Forwards(Sender:TObject);
    procedure Homewards(Sender:TObject);
    function Viewof(F:Frames):FrameView;
    procedure DistributeFrames;
    procedure GetFramePointers;
    procedure SplitFrames(Sender:TObject);
    procedure DrawBothImages;
    procedure ExportCSV(Outname:JString);
    procedure ExportXML(Outname:JString);
    procedure ExportText(Outname:JString);
    procedure ExportProgram(Outname:JString);
    procedure ExportImage(Outname:JString);
    procedure Importieren1Click(Sender:TObject);
    procedure TreeDblClick(Sender:TObject);
    procedure MaxFrame1(Sender:TObject);
    procedure MaxFrame2(Sender:TObject);
    procedure MaxFrame3(Sender:TObject);
    procedure Druckereinstellung1Click(Sender:TObject);
    procedure TemplateClick(Sender:TObject);
    procedure NeueVersion1Click(Sender:TObject);
    procedure KopierenClick(Sender:TObject);
    procedure Allesauswhlen1Click(Sender:TObject);
    procedure Ausschneiden1Click(Sender:TObject);
    procedure Einfuegen1Click(Sender:TObject);
    procedure SuchFunktion(Sender:TObject);
    procedure Ersetzen1Click(Sender:TObject);
    procedure ExplorerClick(Sender:TObject);
    procedure PageControlChange(Sender:TObject);
    procedure SetShortcuts;
    procedure ShowFileTypes;
    procedure getCommandLineParameters();
    procedure Optionen1Click(Sender:TObject);
    procedure PageControlDragDrop(Sender,Source:TObject;X,Y:Integer);
    procedure PageControlDragOver(Sender,Source:TObject;X,Y:Integer;
      State:TDragState;var Accept:Boolean);
    procedure SetFrameIndex(TS:TTabSheet);
    procedure SetAsParent(var Sheet:TTabSheet;F:Frames);
    function getallFiles(Files:AnsiString):Integer;
    procedure Frame11SemantikEnter(Sender:TObject);
    Procedure DllWatcher(St:Boolean);
    procedure BlocknummernClick(Sender:TObject);
    procedure FormShow(Sender:TObject);
    procedure FormCreate(Sender:TObject);
    procedure FormClose(Sender:TObject;var Action:TCloseAction);
    procedure SplitterHorizontalMoved(Sender:TObject);
    procedure FeedBackDialogack1Click(Sender:TObject);
    procedure Ersetzenwiederholt1Click(Sender:TObject);
    procedure Frame11InspectorClick(Sender:TObject);
    procedure Frame11InspectorKeyUp(Sender:TObject;var Key:Word;
      Shift:TShiftState);
    procedure Exportieren1Click(Sender:TObject);
    procedure FormResize(Sender:TObject);
    procedure SpeichernClick(Sender:TObject);
    procedure GraphMouseMove(Sender:TObject;Shift:TShiftState;X,Y:Integer);
    function GraphCoordinates(G:TGraph;var S:TTabSheet;var F:TFrame;
      P:TPoint):TPoint;
    procedure FileTypeClick(Sender:TObject);
    procedure MarkFileTypes(FTyp:JString);
    procedure Honeypot();inline;
    procedure Realcheck();inline;
    procedure undoClick(Sender:TObject);
    procedure Aktivierung1Click(Sender:TObject);
    procedure ExecuteClick(Sender:TObject);
    procedure ExecuteEnd(Sender:TObject);
    procedure LizenzzeigenClick(Sender:TObject);
    procedure Frame21SourceChange(Sender:TObject);
    procedure ProvideExecutable();
    procedure DruckvorschauClick(Sender:TObject);
    procedure HochformatClick(Sender:TObject);
    procedure QuerformatClick(Sender:TObject);
    procedure PDFButtonClick(Sender:TObject);
    procedure PrintButtonClick(Sender:TObject);
    procedure ZoomComboBoxChange(Sender:TObject);
    procedure Frame31PageNavigatorClick(Sender:TObject);
    procedure Leerzeichen1Click(Sender:TObject);
    procedure ShowPreview();
    procedure ShowIDE();
    procedure resetMDI();
    procedure setFrameStatus(Sender:TObject);
    Procedure SwitchtoEnglish();
    procedure Sprache1Click(Sender:TObject);
    procedure Vollbild1Click(Sender:TObject);
    procedure Exit1Click(Sender:TObject);
    procedure setFrame11Ratio();
    procedure setFrame3Ratio();
    procedure FormattedFile(Fn:JString);
    procedure Frame21FunktionKeyUp(Sender:TObject;var Key:Word;
      Shift:TShiftState);
    procedure Frame11ExplorerChange(Sender:TObject;Node:TTreeNode);
    procedure SourceMouseDown(Sender:TObject;Button:TMouseButton;
      Shift:TShiftState;X,Y:Integer);
    procedure SourceDblClick(Sender:TObject);
    procedure FullscreenMouseDown(Sender:TObject;Button:TMouseButton;
      Shift:TShiftState;X,Y:Integer);
    procedure Frame21FunktionMouseUp(Sender:TObject;Button:TMouseButton;
      Shift:TShiftState;X,Y:Integer);
    procedure Frame21SourceSelectionChange(Sender:TObject);
    procedure Frame11SplitterInspectorMoved(Sender:TObject);
    procedure PageControlMouseMove(Sender:TObject;Shift:TShiftState;
      X,Y:Integer);
    procedure Feedback1Click(Sender:TObject);
    procedure SetActivePage(F:Frames;V:ViewType);
    procedure LanguageProcessor(Fn:JString;LexOnly:Boolean;cols:Integer;
      forcedll:JString);
    destructor Destroy;override;
    procedure checkedition();
    function guesstime(filelen:Integer;say:Boolean):Boolean;inline;
    procedure Lizenzerwerben1Click(Sender:TObject);
    procedure inslist(S:TextString;var TS:TextStrings);
    procedure ComboBox1Change(Sender:TObject);
    procedure ComboBox1Click(Sender:TObject);
    procedure ComboBox1Notify();
    function initSearchReplace(Search,Replace:JString;regex:Boolean;
      Kind:SeaRepFun):Boolean;
    procedure AskforSearchReplace();
    procedure GuessEditortime(last:TDateTime;items:Integer;var val:Integer);
    procedure SavetoSourcestack();
    procedure LoadfromSourcestack();
    procedure IndentingClick(Sender:TObject);
    procedure ContextIT1Click(Sender:TObject);
    procedure SetEditorOptions;
  public
    //other dialogues
    SearchReplaceDialog:TSearchReplace;
    AboutDialog:TAboutBox;
    SamplesDialog:TSamples;
    ColorDialog:TColorForm;
    Fullscr:TFullScreen1;
    //machine
    WinProductId,CPU,IP,IPaddr,EthernetAddr:JString;
    //actual file infos
    CStatus,ActDLLInfo:PAnsiChar;
    //llnav,llsem,llcfa,lldfa:Integer;
    Duration:Integer;
    Sep:JString;
    //mousecontrol
    Mousepressed:Boolean;
    Horizontalratio,Verticalratio:Integer;
    //checking
    globtim:Integer;
    //drag&drop
    SizeRect:TRect;
    MouseButton:TMouseButton;
    //threads
    MyThread:TMyThread;
    LastThread:TStatusThread;
    Sourcestate:Boolean;
    Previousselstart:Integer;
    Previousfile:JString;
  end;
  //----------------------------------------------------------------------------
  //
  //----------------------------------------------------------------------------
var
  ModelFrame:TModelFrame;
  //----------------------------------------------------------------------------
  //
  //----------------------------------------------------------------------------
implementation
uses
  //----------------------------------------------------------------------------
  //specific
  //----------------------------------------------------------------------------
  Windows,SysUtils,ColorGrd,Grids,ValEdit,
  Buttons,SyncObjs,Math,Jpeg,Printers,ShellApi,
  Clipbrd,StrUtils,DateUtils,WideStrings;
//----------------------------------------------------------------------------
//
//----------------------------------------------------------------------------
{$R *.dfm}
//------------------------------------------------------------------
//--
//FormCreate                                                   --
//--
//------------------------------------------------------------------
procedure TModelFrame.FormCreate(Sender:TObject);
var
  Icf:TIcon;
begin
  Closing:=false;
  Opening:=true;
  processing:=false;
  SaveDialog:=nil;
  globtim:=0;
  //FeedBackDialog:=nil;
  Sep:='-';
  LastMousePos.X:=0;
  LastMousePos.Y:=0;
  Inspectorkey:='';
  //DBAccess.password:=MidStr(DBAccess.user,2,3);
  //now create Dialogs
  AboutDialog:=TAboutBox.Create(self);
  SamplesDialog:=TSamples.Create(self);
  SearchReplaceDialog:=TSearchReplace.Create(self);
  ColorDialog:=TColorForm.Create(self);
  Fullscr:=TFullScreen1.Create(self);
  Fullscr.Image1.OnMouseDown:=FullscreenMouseDown;
  Fullscr.Hide();
  //licensing
  Lizenz1.checklicense();
  getCommandLineParameters();
  //find file with license
  lang:=Opt.R.Language;
  Horizontalratio:=(100*SplitterVertical.left)div width;
  Verticalratio:=(100*SplitterHorizontal.Top)div height;
  Netflag:=false;
  //
  Caption:=Application.Title+' '+Version_IDE;
  //get Icon
  Icf:=TIcon.Create;
  if Application.Title=Title_Elbe then
    ApplicationIcons.GetIcon(1,Icf)
  else
    ApplicationIcons.GetIcon(0,Icf);
  self.Icon.Assign(Icf);
  AboutDialog.Icon.Assign(Icf);
  Opt.Icon.Assign(Icf);
  ColorDialog.Icon.Assign(Icf);
  //
  MDI:=TDocument.Create;
  MDI.GC:=TGraph.Create(Opt.R.FontSize,Opt.R.LineThickness,Opt.R.FontColor,
    Opt.R.BackgroundColor,Opt.R.FontName,Opt.R.FontStyle,17,
    trans(lang,145,'Kontrollflu�'));
  MDI.GD:=TGraph.Create(Opt.R.FontSize,Opt.R.LineThickness,Opt.R.FontColor,
    Opt.R.BackgroundColor,Opt.R.FontName,Opt.R.FontStyle,18,
    trans(lang,146,'Datenflu�'));
  //
  GetFramePointers;
  SetFrameOptions;
  RepairHistory();
  MakeFilters(Opt.R.Infile);
  //Resize Splash
  Opt.R.Activationstart:=Opt.R.Activated;
  Frame21.Source.CreateBackup:=Opt.R.CreateBackup;
  Frame21.Source.OnDblClick:=SourceDblClick;
  //language
  Undo.Hint:='r�ckg�ngig machen';
  Indenting.Hint:='CodeFormatierung';
  with Opt do begin
    ValueList.TitleCaptions[0]:='Prozessor';
    ValueList.TitleCaptions[1]:='Erweiterungen';
    //get extensions
    getValueList();
    getfileassociations();
  end;
  if Opt.R.Language=english then begin
    SwitchtoEnglish();
    lang:=english;
  end;
  //
  Frame11.Navigator.OnKeyUp:=TreeSelChange;
  Frame11.Semantik.OnKeyUp:=TreeSelChange;
  //
  Filelist:=nil;
  Previewselected:=false;
  Presentationdone:=false;
  Indenting2.OnClick:=IndentingClick;
  Previousselstart:=0;
  Previousfile:='';
end;
//------------------------------------------------------------------
//--
//destroy                                    --
//--
//------------------------------------------------------------------
destructor TModelFrame.Destroy;
var
  i:Integer;
begin
  //----------------------------------------------------------------------
  //free frames
  //----------------------------------------------------------------------
  Closing:=true;
  //----------------------------------------------------------------------
  for i:=0 to length(ADHAndle)-1 do
    FreeLibrary(ADHAndle[i]);
end;
//------------------------------------------------------------------
//--
//parameters from command line
//--
//------------------------------------------------------------------
procedure TModelFrame.getCommandLineParameters();
var
  PS:JString;
  i:Integer;
begin
  //------------------------------------------------
  //look for parameters and catenate them
  //------------------------------------------------
  if ParamStr(1)<>'' then begin //it must be a filename
    PS:='';
    for i:=1 to ParamCount do begin
      if PS>'' then
        PS:=PS+' ';
      PS:=PS+ParamStr(i);
    end;
    setl(Opt.R.Infile,PS);
  end;
end;
//------------------------------------------------------------------
//--
//ProvideExecutable                                            --
//--
//------------------------------------------------------------------
procedure TModelFrame.ProvideExecutable();
var
  isf,isc:Boolean;
begin
  isf:=(LowerCase(ExtractFileExt(Frame21.Source.LoadedFile))='.bat')or
    (LowerCase(ExtractFileExt(Frame21.Source.LoadedFile))='.cmd');
  isc:=(Opt.R.CommandFile>'');
  if isf then
    Execute1.Hint:=trans(lang,38,'Diese Datei ausf�hren')
  else if isc then
    Execute1.Hint:=trans(lang,39,'das vordefinierte Stapel-Kommando ausf�hren');
  Execute.Hint:=Execute1.Hint;
  Execute.enabled:=isf or isc;
  Execute1.enabled:=Execute.enabled;
end;
//------------------------------------------------------------------
//--
//SetWindowColors                                              --
//--
//------------------------------------------------------------------
procedure TModelFrame.SetWindowColors;
begin
  //fonts and colors
  Frame11.Navigator.Color:=Opt.R.BackgroundColor;
  Frame11.Semantik.Color:=Opt.R.BackgroundColor;
  Frame11.Explorer.Color:=Opt.R.BackgroundColor;
  Frame21.Source.Color:=Opt.R.BackgroundColor;
  Frame21.measures.Color:=Opt.R.BackgroundColor;
  Frame21.Funktion.Color:=Opt.R.BackgroundColor;
  Frame11.Inspector.Color:=Opt.R.BackgroundColor;
  Frame31.ThumbnailPreview1.Color:=Opt.R.BackgroundColor;
  Frame31.PrintPreview1.Color:=Opt.R.BackgroundColor;
end;
//------------------------------------------------------------------
//--
//SetWindowFont                                              --
//--
//------------------------------------------------------------------
procedure TModelFrame.SetWindowFont;
begin
  //fonts and colors
  Frame11.Navigator.Font.Name:=Opt.R.FontName;
  Frame11.Navigator.Font.Style:=Opt.R.FontStyle;
  Frame11.Navigator.Font.Size:=Opt.R.FontSize;
  Frame11.Semantik.Font.Name:=Opt.R.FontName;
  Frame11.Semantik.Font.Style:=Opt.R.FontStyle;
  Frame11.Semantik.Font.Size:=Opt.R.FontSize;
  Frame11.Explorer.Font.Name:=Opt.R.FontName;
  Frame11.Explorer.Font.Style:=Opt.R.FontStyle;
  Frame11.Explorer.Font.Size:=Opt.R.FontSize;
  Frame21.Source.Font.Name:=Opt.R.FontName;
  Frame21.Source.Font.Size:=Opt.R.FontSize;
  Frame21.Source.DefAttributes.Name:=Opt.R.FontName;
  Frame21.Source.DefAttributes.Size:=Opt.R.FontSize;
  Frame21.Source.DefAttributes.Color:=clLtGray;
  //
  with Frame21.measures.DefAttributes do begin
    Name:=Opt.R.FontName;
    Style:=Opt.R.FontStyle;
    Size:=Opt.R.FontSize;
  end;
  with Frame21.Funktion.DefAttributes do begin
    Name:=Opt.R.FontName;
    Style:=Opt.R.FontStyle;
    Size:=Opt.R.FontSize;
  end;
end;
//------------------------------------------------------------------
//--
//SetWinShow File Types                                           --
//--
//------------------------------------------------------------------
procedure TModelFrame.ShowFileTypes;
var
  i,j:Integer;
  M:TMenuItem;
  Temp:JString;
  Ft: array of JString;
begin
  setlength(Ft,length(extensions));
  For i:=0 to length(extensions)-1 do
    Ft[i]:=extensions[i].dllname;
  For i:=0 to length(extensions)-2 do
    For j:=i+1 to length(extensions)-1 do
      if Ft[i]>Ft[j] then begin
        Temp:=Ft[j];
        Ft[j]:=Ft[i];
        Ft[i]:=Temp
      end;
  //create entries from history
  For i:=0 to length(extensions)-1 do begin
    M:=TMenuItem.Create(Dateityp1);
    M.Caption:=Ft[i];
    M.ImageIndex:=-1;
    M.OnClick:=FileTypeClick;
    Dateityp1.Add(M);
  end;
  //plain
  M:=TMenuItem.Create(Dateityp1);
  M.Caption:='-';
  M.ImageIndex:=-1;
  M.OnClick:=FileTypeClick;
  Dateityp1.Add(M);
  //plain
  M:=TMenuItem.Create(Dateityp1);
  M.Caption:=trans(lang,172,'Rohtext');
  M.ImageIndex:=-1;
  M.OnClick:=FileTypeClick;
  Dateityp1.Add(M);
end;
//------------------------------------------------------------------
//--
//Mark File Types                                                 --
//--
//------------------------------------------------------------------
procedure TModelFrame.MarkFileTypes(FTyp:JString);
var
  i,ll:Integer;
  M:TMenuItem;
begin
  //create entries from history
  ll:=length(extensions)-1;
  For i:=1 to ll do begin
    M:=Dateityp1.items[i-1];
    M.Checked:=LowerCase(M.Caption)=LowerCase(FTyp);
  end;
  if pos('text',FTyp)>0 then begin
    M:=Dateityp1.items[ll+1];
    M.Checked:=true
  end;
end;
//------------------------------------------------------------------
//Function FileType                                             --
//--
//------------------------------------------------------------------
procedure TModelFrame.FileTypeClick(Sender:TObject);
var
  M:TMenuItem;
  FileTyp:JString;
begin
  M:=(Sender as TMenuItem);
  FileTyp:=M.Caption;
  if Frame21.Source.Modified then
    Frame21.Source.Save(true);
  ProcessFile(Opt.R.Infile,FileTyp);
end;
//------------------------------------------------------------------
//Function Oeffnen                                             --
//--
//------------------------------------------------------------------
procedure TModelFrame.IndentingClick(Sender:TObject);
begin
  if Frame21.Source.Indentingpossible then
    with Frame21.Source do begin
      doindent:=true;
      CreateHighlited(LoadedFileNumber);
      doindent:=false;
      setFrameStatus(Sender)
    end;
end;
//------------------------------------------------------------------
//--
//SetEditorOptions                                             --
//--
//------------------------------------------------------------------
procedure TModelFrame.SetEditorOptions;
begin
  Frame21.Source.casesensitive:=Opt.R.casesensitive;
  Frame21.Source.doWordWrap:=Opt.R.wordwrap;
  Frame21.Source.regexpsearch:=Opt.R.regularexp;
  Frame21.Source.CreateBackup:=Opt.R.CreateBackup;
  Frame21.Source.ShowURL:=Opt.R.ShowURL;
  Frame21.Source.Indentchars:=Opt.R.Indentchars;
  Frame21.Source.Artificiallines:=Opt.R.Artificiallines;
end;
//------------------------------------------------------------------
//--
//SetFrameOptions                                                 --
//--
//------------------------------------------------------------------
procedure TModelFrame.SetFrameOptions;
begin
  //set buttons + controls
  Frame31.PrintButton:=PrintButton;
  Frame31.Hochformat:=Hochformat;
  Frame31.Querformat:=Querformat;
  Frame31.ZoomComboBox:=ZoomComboBox;
  if Opt.R.UserName='' then
    Opt.R.UserName:='unbekannter Benutzer';
  //Size of Modelframe
  Top:=Opt.R.Top;
  left:=Opt.R.left;
  width:=Opt.R.width;
  height:=Opt.R.height;
  if Application.Title=Title_Elbe then begin
    Opt.R.InspectorVisible:=false;
    Opt.R.Blocknumbers:=false;
    Opt.R.InspectorVisible:=false;
    Inspector1.Checked:=false;
    Inspector1.Visible:=false;
    Split.Hide();
    Split1.Visible:=false;
    N5.Visible:=false;
    Blocknummern.Visible:=false;
    Importieren1.Visible:=false;
    Exportieren1.Visible:=false;
    N2.Visible:=false;
    Leerzeichen1.Visible:=false;
  end;
  //Splitter and Print and Inspector
  Frame11.width:=Opt.R.Frame1Width;
  Inspector1.Checked:=Opt.R.InspectorVisible;
  //setFrame11Ratio();
  //
  SetWindowColors;
  SetWindowFont;
  //menu and toolbar
  Zeilennummern1.Checked:=Opt.R.Linenumbers;
  Blocknummern.Checked:=Opt.R.Blocknumbers;
  Syntaxhervorhebung1.Checked:=Opt.R.SyntaxHighlight;
  Leerzeichen1.Checked:=Opt.R.ShowSpaces;
  SetEditorOptions();
  //clear drag drop
  Frame11.PageControl1.EndDrag(false);
  Frame21.PageControl1.EndDrag(false);
  Frame31.PageControl1.EndDrag(false);
  //set keys and activation menu item
  SetShortcuts;
  if Opt.R.Activated then begin
    Aktivierung1.Visible:=false;
    Lizenzerwerben1.Visible:=false;
    N10.Visible:=false;
  end;
  //-------------------------------------------------
  //Limnitations of Standard Edition
  //-------------------------------------------------
  if not Opt.R.ExportEnabled then begin
    if Exportieren1<>nil then
      Exportieren1.enabled:=false;
    if Importieren1<>nil then
      Importieren1.enabled:=false;
  end;
  Opt.R.Frame1Page1Max:=false;
  Opt.R.Frame2Page1Max:=false;
  Opt.R.Frame3Page1Max:=false;
  //
  ShowFileTypes();
end;
//------------------------------------------------------------------
//--
//Change File                                                  --
//--
//------------------------------------------------------------------
procedure TModelFrame.UpDateInspector(LTP:PLongTexts;TT:TTreeNode);
var
  ListItem:TListItem;
  SN:JString;
  function wof(X:JString):JString;
  var
    ii:JString;
  begin
    ii:=StringReplace(X,'-','',[rfReplaceAll]);
    ii:=StringReplace(ii,'=','',[rfReplaceAll]);
    wof:=ii
  end;
  procedure addi(L:JString);
  var
    zz:JString;
    i:Integer;
  begin
    with Frame11.Inspector do begin
      zz:=getpar(L,SN);
      if L=S_Fil then begin
        i:=StrToInt(zz);
        zz:=ExtractFileName(MDI.Source[i].Name);
      end;
      if (zz>''then begin
        ListItem:=items.Add;
        ListItem.Caption:=wof(L);
        ListItem.SubItems.Add(zz)
      end
    end;
  end;
begin
  if not Opening then begin
    if Inspector1.Checked and(LTP<>nil)and(TT<>nil)and(TT.Text>' 'then begin
      with Frame11.Inspector do begin
        ViewStyle:=vsReport;
        SN:=Longeur(LTP,TT);
        Inspectorkey:=SN;
        if SN>'' then begin
          //while items.Count>0 do
          items.clear;
          addi(S_Lab);
          addi(S_Id);
          addi(S_Typ);
          addi(S_Bas);
          addi(S_Fmt);
          addi(S_Ref);
          addi(S_Pos);
          addi(S_Lin);
          addi(S_Col);
          addi(S_Fil);
        end;
        Columns[1].width:=Frame11.width-Columns[0].width-10;
      end;
      Frame11.Inspector.Hint:='Inspector '+HintBox(getpar(S_Lab,SN));
    end;
  end;
end;
//--------------------------------------------------------------
//Page Navigator
//--------------------------------------------------------------
procedure TModelFrame.Frame31PageNavigatorClick(Sender:TObject);
begin
  Frame31.PageNavigatorClick(Sender);
end;
//--------------------------------------------------------------
//splitter moved
//--------------------------------------------------------------
procedure TModelFrame.setFrameStatus(Sender:TObject);
const
  hexen: array [0..15] of char='0123456789ABCDEF';
var
  St,c,hex,RP,sst:JString;
  dur:real;
  P:TPoint;
  Li,Co,Ch:Integer;
  Insertmode:Boolean;
begin
  Caption:=Application.Title+' '+Version_IDE+' - '+ExtractFileName
    (MDI.Source[MDI.fnr].Name);
  St:='';
  if Frame21.Source.LoadedFile<>Opt.R.Infile then
    St:=Frame21.Source.LoadedFile;
  if not Frame31.Visible then begin
    dur:=(Duration div 1000)/1;
    if dur>3 then
      St:=MDI.Processor+' ['+FloatToStr(dur)+'sec] - '
    else
      St:=MDI.Processor+' - ';
    with Frame21 do begin
      Insertmode:=true;
      P:=Frame21.Source.getPos();
      Li:=P.Y;
      Co:=P.X;
      sst:='';
      if IsDebuggerPresent then
        with Source do
          sst:=' st='+inttostr(SelStart)+' cp='+inttostr(caretpos.X)
            +','+inttostr(caretpos.Y);
      St:=St+'['+inttostr(Li)+':'+inttostr(Co)+sst+']';
      if Source.Modified then
        St:=St+' '+trans(lang,173,'ge�ndert')
      else if Source.ReadOnly then
        St:=St+' '+trans(lang,174,'schreibgesch�tzt');
      if Insertmode then
        c:=' '+trans(lang,175,'Einf�gen')
      else
        c:=' '+trans(lang,176,'Ersetzen');
    end;
    with Frame21.Source do
      if length(SelText)=1 then begin
        hex:=SelText[1];
        Ch:=ord(hex[1]);
        hex:=' X'''+hexen[Ch div 16]+hexen[Ch mod 16]+'''';
        St:=St+hex
      end;
  end;
  if IsDebuggerPresent then begin
    RP:=' P/F1/F2=/'+inttostr(MDI.TProc)+'/'+inttostr(MDI.TFrame1)+'/'+inttostr
      (MDI.TFrame2);
    St:=St+RP+Frame21.TimeRatio;
  end;
  Speichern.enabled:=Frame21.Source.Modified;
  Split.enabled:=PageCount(Frame21.PageControl1)>1;
  Simulation1.enabled:=Opt.R.Cfa.Sheet.Visible or Opt.R.Dfa.Sheet.Visible;
  with Frame11 do
    Opt.Statusline(PageControl1,statusbar1,'');
  with Frame21 do
    Opt.Statusline(PageControl1,statusbar1,St);
  with Frame31 do
    Opt.Statusline(PageControl1,statusbar1,'');
  Setnavigation();
end;
//--------------------------------------------------------------
//Inspectir
//--------------------------------------------------------------
procedure TModelFrame.InspectorClick(Sender:TObject);
begin
  if Application.Title=Title_Columbo then begin
    Inspector1.Checked:=not Inspector1.Checked;
    Frame11.Inspector.Visible:=Inspector1.Checked;
    Frame11.SplitterInspector.Visible:=Inspector1.Checked;
  end;
  setFrame11Ratio();
  UpDateInspector(MDI.NavL,Frame11.Navigator.Selected);
end;
//------------------------------------------------------------------
//--
//get the files of a compilation/analysis                      --
//--
//------------------------------------------------------------------
function TModelFrame.getallFiles(Files:AnsiString):Integer;
var
  tthis:JString;
  i,P,len:Integer;
begin
  P:=0;
  if length(Files)>0 then begin
    i:=1;
    P:=0;
    len:=length(Files);
    while i<=len do begin
      if Files[i]=chr(Key_Linefeed) then begin
        P:=P+1;
        tthis:='';
      end;
      i:=i+1;
    end;
    if P=0 then
      errorn(68,'Dateien korrupt, '+Files)
    else begin
      setlength(MDI.Source,P);
      i:=1;
      P:=0;
      tthis:='';
      while i<=len do begin
        if Files[i]<>chr(Key_Linefeed) then begin
          tthis:=tthis+Files[i]
        end
        else begin
          MDI.Source[P].Name:=tthis;//bug im Delphi??
          MDI.Source[P].Typ:=RTF;
          P:=P+1;
          tthis:='';
        end;
        i:=i+1;
      end;
    end;
  end;
  getallFiles:=P
end;
//--------------------------------------------------------------
//Inspectir
//--------------------------------------------------------------
procedure TModelFrame.resetMDI();
begin
  with MDI do begin
    CNav:=nil;
    KeyVerbs:='';
    MDI.GC.CStream:=nil;
    MDI.GD.CStream:=nil;
    CSem:=nil;
    CMes:=nil;
    CFun:=nil;
    Cattr:=nil;
    CStatus:=nil;
    NavL:=nil;
    SEML:=nil;
  end;
end;
//--------------------------------------------------------------
//Inspectir
//--------------------------------------------------------------
function TModelFrame.guesstime(filelen:Integer;say:Boolean):Boolean;
var
  calctime1,calctime2,totaltime:Integer;
  Stat:JString;
  allow:Boolean;
begin
  allow:=true;
  //look at size
  calctime1:=(filelen div unitofbytes)*Opt.R.Timeper1000forProcessing;
  calctime2:=(filelen div unitofbytes)*
    (Opt.R.Timeper1000forFrame1+Opt.R.Timeper1000forFrame2);
  totaltime:=(calctime1+calctime2)div 10;
  if totaltime>3 then begin
    Stat:='[~'+inttostr(totaltime)+' sec]';
    with Frame21 do
      Opt.Statusline(PageControl1,statusbar1,Stat);
  end;
  //--------------------------------------------------
  //check for limitations
  //--------------------------------------------------
  if (not Opt.R.Activated)and(filelen>maxfilesize) then begin
    if say then
      inform(162,'Datei gr��er als '+inttostr(maxfilesize div 1024)+' kB.'+crlf+
          'Dieses ist eine eingeschr�nkte Version von '+Application.Title+'.'+
          crlf+
          ' Eine vollst�ndige Lizenz bekommen Sie unter Hilfe:Lizenz erwerben.',
        '');
    allow:=false
  end;
  result:=allow;
end;
//--------------------------------------------------------------
//Inspectir
//--------------------------------------------------------------
procedure TModelFrame.LanguageProcessor(Fn:JString;LexOnly:Boolean;cols:Integer;
  forcedll:JString);
var
  warntime:Integer;
  TimeSet:TDateTime;
  FilePath,FileName:JString;
  Libraries:AnsiString;
  DllEdition:JString;
  LexLang:Integer;
  PKeyVerbs,PNav,PGCStream,PGDStream,PSem,PMes,PFun,Pattr:PAnsiChar;
  procedure snil(var V:PAnsiChar);
  begin
    if (V<>nilthen
      if length(V)=0 then
        V:=nil;
  end;
  procedure settonorm();
  begin
    with MDI do begin
      KeyVerbs:=PKeyVerbs;
      CNav:=PNav;
      GC.CStream:=PGCStream;
      GD.CStream:=PGDStream;
      CSem:=PSem;
      CMes:=PMes;
      CFun:=PFun;
      Cattr:=Pattr;
      if MDI.ReturnValue>1 then begin
        snil(CNav);
        CSem:=nil;
        MDI.GC.CStream:=nil;
        MDI.GD.CStream:=nil;
        CFun:=nil;
        CMes:=nil;
      end
      else begin
        snil(CNav);
        snil(CSem);
        snil(GC.CStream);
        snil(GD.CStream);
        snil(CMes);
        snil(CFun);
      end;
    end;
  end;
begin
  FilePath:=ExtractFilePath(Fn);
  FileName:=ExtractFileName(Fn);
  //hide other windows
  Screen.Cursor:=crHourGlass;
  //now set them to zero
  resetMDI();
  ActDLLInfo:[email protected];
  warntime:=Opt.R.Timeout*1000;
  DllEdition:=EditionStrings[Opt.R.Edition];
  Libraries:=AnsiString(String(Opt.R.Libraries[1])+chr(Key_Linefeed));
  if Opt.R.Libraries[2]<>'' then
    Libraries:=Libraries+AnsiString(Opt.R.Libraries[2])+AnsiString
      (chr(Key_Linefeed));
  if Opt.R.Libraries[3]<>'' then
    Libraries:=Libraries+AnsiString(Opt.R.Libraries[3]);
  //add language and lexonly marker
  LexLang:=ord(LexOnly);
  if Opt.R.Language<>german then
    LexLang:=LexLang+256;
  SplashForm1.Init(60);
  with MDI do
    MDI.ReturnValue:=dllcall(Opt.R.ProgramDir,Libraries,PKeyVerbs,FilePath,
      FileName,LexLang,PNav,PGCStream,PGDStream,PSem,PMes,PFun,Pattr,cols,
      DllEdition,CStatus,ActDLLInfo,warntime,forcedll);
  settonorm();
  getallFiles(Libraries);
  SplashForm1.Progress(5);
  TimeSet:=Now;
  Frame11.Loader(Fn,IconImageList);
  proctime(Opt.R.Timeper1000forFrame1,MDI.TFrame1,TimeSet,MDI.filelength);
  SplashForm1.Progress(2);
end;
//------------------------------------------------------------------
//--
//Change File                                                  --
//--
//------------------------------------------------------------------
procedure TModelFrame.ProcessFile(Fn,Ft:JString);
var
  Filex:JString;
  i,ll:Integer;
  found,isit:Boolean;
  TimeSet:TDateTime;
begin
  Previousselstart:=Frame21.Source.SelStart;
  Screen.Cursor:=crHourGlass;
  Indenting.Visible:=false;
  Indenting2.Visible:=false;
  N15.Visible:=Indenting.Visible;
  processing:=true;
  //show Splash
  if Opening then
    SplashForm1.SetInfo(Version_IDE)
  else
    SplashForm1.SetInfo(trans(lang,23,'analysiere Datei'));
  Filex:=LowerCase(ExtractFileExt(Fn));
  errorcount:=0;
  Lizenz1.checklicense();
  //
  with MDI do begin
    Processor:=trans(lang,142,'Text');
    TProc:=0;
    TFrame1:=0;
    TFrame2:=0;
    NavL:=nil;
    SEML:=nil;
    filelength:=0;
  end;
  //wait for windows
  Frame21.Source.clearstreams();
  //now process file
  if not FileExists(Fn) then begin
    MDI.GC.CStream:=nil;
    MDI.GD.CStream:=nil;
    MDI.CMes:=nil;
    //
    setlength(MDI.Source,1);
    MDI.Source[0].Name:='0';
    MDI.Source[0].Typ:=PLAIN;
    MDI.Source[0].Age:='';
    Frame21.Source.CreateDummyFile();
    Homewards(nil);
    errorn(71,'Eingabedatei nicht gefunden');
  end
  //check if in use by another process
  else if (Fn<>Frame21.Source.LoadedFile)and FileIsInUse(Fn) then begin
    MDI.GC.CStream:=nil;
    MDI.GD.CStream:=nil;
    MDI.CMes:=nil;
    //
    setlength(MDI.Source,1);
    MDI.Source[0].Name:='0';
    MDI.Source[0].Typ:=PLAIN;
    MDI.Source[0].Age:='';
    Frame21.Source.CreateDummyFile();
    Homewards(nil);
    errorn(225,'Eingabedatei wird von einem anderem Proze� benutzt');
  end
  else begin
    //
    if length(MDI.Source)>0 then
      SavetoHistory(Opt.R.Infile);
    ll:=length(extensions)-1;
    found:=false;
    i:=0;
    while not found and(i<=ll) do begin
      isit:=(ispartof(Filex,extensions[i].ext)and(Ft=''))or
        (Ft=extensions[i].dllname);
      if not found and isit then begin
        //get content of file
        MDI.filelength:=getFileLength(Fn);
        if guesstime(MDI.filelength,true) then begin
          found:=true;
          //process
          MDI.Processor:=extensions[i].dllname;
          globtim:=MDI.filelength div 60;
          TimeSet:=Now;
          LanguageProcessor(Fn,extensions[i].LexOnly,ord(Opt.R.Sourceformat),
            Ft);
          proctime(Opt.R.Timeper1000forProcessing,MDI.TProc,TimeSet,
            MDI.filelength);
          TimeSet:=Now;
          errorcount:=abs(MDI.ReturnValue);
          MDI.Previewrepresentation:=extensions[i].Prettyprint;
          Frame21.Loader(0,SplashForm1);
          proctime(Opt.R.Timeper1000forFrame2,MDI.TFrame2,TimeSet,
            MDI.filelength);
          Blocknummern.enabled:=MDI.ReturnValue<=1;
          Duration:=Frame21.SourceDuration+Frame21.CFADuration+
            Frame21.DFADuration;
          Indenting.Visible:=Frame21.Source.Indentingpossible;
          Indenting2.Visible:=Indenting.Visible;
          N15.Visible:=Indenting.Visible;
        end;
      end;
      i:=i+1
    end;
    if found then begin
      Syntaxhervorhebung1.enabled:=true;
      SyntaxHighLite.enabled:=true;
      setl(Opt.R.Infile,Fn);
    end
    else if Filex='.rtf' then begin
      Frame21.Source.Linenumbers:=Opt.R.Linenumbers;
      Frame21.Source.Blocknumbers:=Opt.R.Blocknumbers;
      Frame21.Source.LoadHighLites(Opt.R.Highlites);
      FormattedFile(Fn);
    end
    else begin
      SplashForm1.Init(10);
      SplashForm1.Progress(5);
      resetMDI();
      setlength(MDI.Source,1);
      MDI.Source[0].Name:=Fn;
      MDI.Source[0].Typ:=PLAIN;
      Frame21.SourceNames(MDI);
      Frame21.Source.casesensitive:=Opt.R.casesensitive;
      Frame21.Source.doWordWrap:=Opt.R.wordwrap;
      Frame21.Source.Linenumbers:=Opt.R.Linenumbers;
      Frame21.Source.Blocknumbers:=Opt.R.Blocknumbers;
      Frame21.Source.LoadHighLites(Opt.R.Highlites);
      Frame21.Source.CreatePlain(0);
      if Frame21.Source.LoadedFormat=BIN then
        MDI.Processor:=trans(lang,165,'Bin�rdaten');
      Syntaxhervorhebung1.enabled:=false;
      SyntaxHighLite.enabled:=false;
      setl(Opt.R.Infile,Fn);
    end
  end;
  //Finished
  Screen.Cursor:=crDefault; { Revient toujours � normal }
  MarkFileTypes(MDI.Processor);
  ShowIDE();
  SplashForm1.Finish();
  SplashForm1.SetMini();
  processing:=false;
  //note file
  Previousfile:=Opt.R.Infile;
end;
//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
procedure TModelFrame.PrintButtonClick(Sender:TObject);
begin
  if not InSight(Opt.R.Druckvorschau) then
    DruckvorschauClick(Sender)
  else
    Frame31.PrintButtonClick(Sender);
end;
//------------------------------------------------------------------
//Procedure GetImageIndex                                      --
//--
//------------------------------------------------------------------
procedure TModelFrame.NavGetImageIndex(Sender:TObject;Node:TTreeNode);
begin
  if Node.HasChildren then
    if Node.Expanded then
      Node.ImageIndex:=ExpandedImage
    else
      Node.ImageIndex:=CollapsedImage
    else
      Node.ImageIndex:=HasChildrenImage;
end;
//------------------------------------------------------------------
//Procedure GetSelectedIndex                                   --
//--
//------------------------------------------------------------------
procedure TModelFrame.NavGetSelectedIndex(Sender:TObject;Node:TTreeNode);
begin
  Node.SelectedIndex:=Node.ImageIndex;
end;
//------------------------------------------------------------------
//--
//FeedBackDialogack                                                      --
//--
//------------------------------------------------------------------
procedure TModelFrame.Feedback1Click(Sender:TObject);
begin
  if netallowed then
    Browser(Handle,
      'https://cococo.de/Context_IT_GmbH/index.jsp?content=contact&topic='+
        Application.Title+' '+Version_IDE);
end;
//------------------------------------------------------------------
//--
//FeedBackDialogack                                                      --
//--
//------------------------------------------------------------------
procedure TModelFrame.FeedBackDialogack1Click(Sender:TObject);
begin
  Feedback1Click(Sender);
end;
//------------------------------------------------------------------
//Procedure Font2Click                                         --
//--
//------------------------------------------------------------------
procedure TModelFrame.Font2Click(Sender:TObject);
var
  modi:Boolean;
  F:TFont;
begin
  FontDialog.Font.Name:=Opt.R.FontName;
  FontDialog.Font.Color:=Opt.R.FontColor;
  FontDialog.Font.Style:=Opt.R.FontStyle;
  FontDialog.Font.Size:=Opt.R.FontSize;
  //nur proportionale Schriften zulassen
  FontDialog.Options:=[fdFixedPitchOnly];
  if FontDialog.Execute then begin
    setl(Opt.R.FontName,FontDialog.Font.Name);
    Opt.R.FontSize:=FontDialog.Font.Size;
    Opt.R.FontStyle:=FontDialog.Font.Style;
    Opt.R.FontColor:=FontDialog.Font.Color;
    modi:=Frame21.Source.Modified;
    SetWindowFont;
    Frame21.Source.CreateHighlited(MDI.fnr);
    Frame21.Source.Modified:=modi;
    F:=TFont.Create();
    F.Name:=Opt.R.FontName;
    F.Size:=Opt.R.FontSize;
    F.Style:=Opt.R.FontStyle;
    F.Color:=Opt.R.FontColor;
    Frame21.measures.RichAttributes(F);
    Frame21.measures.markLinepos(1,1);
    Frame21.Funktion.RichAttributes(F);
    Frame21.Funktion.markLinepos(1,1);
    DrawBothImages;
    Frame21.Source.Modified:=modi;
  end
end;
//------------------------------------------------------------------
//Function LastView                                            --
//--
//------------------------------------------------------------------
function LastView(i:Frames):ViewType;
var
  S:ViewType;
begin
  S:=NoView;
  if Opt.R.Navigator.Frame=i then
    S:=ViewNav;
  if Opt.R.Semantik.Frame=i then
    S:=ViewSem;
  if Opt.R.Explorer.Frame=i then
    S:=ViewExplorer;
  if Opt.R.Source.Frame=i then
    S:=ViewSource;
  if Opt.R.Cfa.Frame=i then
    S:=ViewCFA;
  if Opt.R.Dfa.Frame=i then
    S:=ViewDFA;
  if Opt.R.measures.Frame=i then
    S:=ViewMeasures;
  if Opt.R.Funktion.Frame=i then
    S:=ViewFunktion;
  if Opt.R.Miniatur.Frame=i then
    S:=ViewMiniatur;
  if Opt.R.Druckvorschau.Frame=i then
    S:=ViewDruckvorschau;
  LastView:=S
end;
//------------------------------------------------------------------
//Function DrawBothImages                                      --
//--
//------------------------------------------------------------------
procedure TModelFrame.DrawBothImages;
begin
  if not(errorcount>0)and(Opt<>nil)and not Closing and not Opening then begin
    with MDI.GC do
      if CStream<>nil then begin
        width:=Opt.R.Cfa.Sheet.width;
        height:=Opt.R.Cfa.Sheet.height;
        VWidth:=0;
        VHeight:=0;
        ReDraw();
      end;
    with MDI.GD do
      if CStream<>nil then begin
        width:=Opt.R.Dfa.Sheet.width;
        height:=Opt.R.Dfa.Sheet.height;
        VWidth:=0;
        VHeight:=0;
        ReDraw();
      end;
  end;
end;
//------------------------------------------------------------------
//Function CanClose                                            --
//--
//------------------------------------------------------------------
procedure TModelFrame.FormClose(Sender:TObject;var Action:TCloseAction);
begin
  //save source if necessary
  Action:=caNone;
  if Frame21.Source.Save(true)<>mrCancel then begin
    //remember perspective
    if length(MDI.Source)>0 then
      SavetoHistory(MDI.Source[0].Name);
    //remember Size
    if not Opt.R.ismax then begin
      Opt.R.width:=width;
      Opt.R.height:=height;
      Opt.R.Top:=Top;
      Opt.R.left:=left;
      Opt.R.ismax:=false;
    end;
    Opt.R.inited:='J';
    if Opt.R.Cfa.Sheet.Visible then
      with MDI.GC do begin
        Opt.R.Cfa.Sheet.width:=VWidth;
        Opt.R.Cfa.Sheet.height:=VHeight;
      end;
    if Opt.R.Dfa.Sheet.Visible then
      with MDI.GD do begin
        Opt.R.Dfa.Sheet.width:=VWidth;
        Opt.R.Dfa.Sheet.height:=VHeight;
      end;
    //
    Opt.R.casesensitive:=Frame21.Source.casesensitive;
    Opt.R.regularexp:=Frame21.Source.regexpsearch;
    //
    Opt.R.Frame1Width:=SplitterVertical.left;
    Opt.R.Frame3Height:=Frame31.height;
    Opt.R.InspectorVisible:=Inspector1.Checked;
    if Inspector1.Checked then
      Opt.R.InspectorHeight:=Frame11.Inspector.height;
    //
    sortHistory();
    Frame21.Source.flushstreams();
    Action:=caFree;
  end;
end;
//------------------------------------------------------------------
//Function Filters                                             --
//--
//------------------------------------------------------------------
function TModelFrame.MakeFilters(filnam:JString):Integer;
var
  i,ll:Integer;
  A,Allfiles,ext,App:JString;
  first:Boolean;
begin
  Filters:='';
  App:=trans(lang,237,' Dateien');
  result:=0;
  ext:='*'+LowerCase(ExtractFileExt(filnam));
  first:=true;
  ll:=length(extensions)-1;
  A:=trans(lang,43,'Quelldateien')+'|';
  Allfiles:=trans(lang,156,'Alle Dateien')+'|'+'*.*';
  for i:=0 to ll do begin
    if extensions[i].ext<>'*' then begin
      if ispartof(ext,extensions[i].ext) then
        result:=i+3;
      if first then
        Filters:=extensions[i].longname+App
      else
        Filters:=Filters+'|'+extensions[i].longname+App;
      Filters:=Filters+'|';
      Filters:=Filters+extensions[i].ext;
      if first then
        A:=A+extensions[i].ext
      else
        A:=A+';'+extensions[i].ext;
      first:=false;
    end;
  end;
  Filters:=A+'|'+Allfiles+'|'+Filters;
end;
//------------------------------------------------------------------
//Function Oeffnen                                             --
//--
//------------------------------------------------------------------
procedure TModelFrame.OeffnenClick(Sender:TObject);
var
  OpenDialog:TOpenDialog;
  se,sx:Integer;
  S,Filex:JString;
  MI,PA:TMenuItem;
  isok,opendone:Boolean;
begin
  If Sender=Oeffne then begin
    MakeFilters(Opt.R.Infile);
    OpenDialog:=TOpenDialog.Create(self);
    OpenDialog.FileName:='';
    OpenDialog.InitialDir:=ExtractFilePath(Frame21.Source.LoadedFile);
    if OpenDialog.InitialDir='' then
      OpenDialog.InitialDir:=GetCurrentDir;
    //OpenDialog.Options:=OpenDialog.Options-[ofNoDereferenceLinks];
    OpenDialog.Options:=OpenDialog.Options+[ofReadOnly,ofFileMustExist];
    OpenDialog.Filter:='';
    S:='';
    Filex:=ExtractFileExt(Frame21.Source.LoadedFile);
    OpenDialog.Filter:=Filters;
    if Opt.R.Openindex<0 then
      OpenDialog.FilterIndex:=0
    else
      OpenDialog.FilterIndex:=Opt.R.Openindex;
    //now follow *.lnk files
    isok:=false;
    repeat
      opendone:=OpenDialog.Execute;
      if opendone then begin
        Filex:=ExtractFileExt(OpenDialog.FileName);
        isok:=LowerCase(Filex)<>'.lnk';
        if not isok then begin
          OpenDialog.InitialDir:=GetPathFromLink(OpenDialog.FileName);
          OpenDialog.FileName:='';
          OpenDialog.Filter:=Filters;
        end;
      end;
    until isok or not opendone;
    //filename found?
    if isok then begin
      if (OpenDialog.FileName<>Frame21.Source.LoadedFile) then begin
        Opt.R.Openindex:=OpenDialog.FilterIndex;
        ProcessFile(OpenDialog.FileName,'');
        setl(Opt.R.LastFilter,OpenDialog.Filter[OpenDialog.FilterIndex]);
      end;
    end
  end
  else begin //item out of list of files
    MI:=(Sender as TMenuItem);
    PA:=MI.Parent;
    se:=PA.IndexOf(Exit1);
    sx:=PA.IndexOf(MI);
    S:='';
    if sx-se-1>0 then
      S:=Opt.R.History[sx-se-1].FileName;
    ProcessFile(S,'');
  end;
end;
//------------------------------------------------------------------
//Function RepairHistory                                          --
//--        do if file vanished
//------------------------------------------------------------------
procedure TModelFrame.RepairHistory();
var
  i,j:Integer;
begin
  //remove vanished files
  with Opt.R do begin
    for i:=1 to HistMax do
      if History[i].FileName<>'' then begin
        if not FileExists(History[i].FileName) then
          for j:=i+1 to HistMax do begin
            History[j-1].FileName:=History[j].FileName;
            History[j].FileName:='';
          end;
      end;
    //remove empty entries
    for i:=1 to HistMax-1 do
      if History[i].FileName='' then begin
        j:=i+1;
        while (j<HistMax-1)and(History[j].FileName=''do
          j:=j+1;
        if History[j].FileName<>'' then begin
          History[i].FileName:=History[j].FileName;
          History[j].FileName:='';
        end;
      end;
    //remove empty libraries
    for i:=1 to 3 do
      if ((Libraries[i]<>'')and not DirectoryExists(Libraries[i])) then
        Libraries[i]:='';
  end;
end;
//------------------------------------------------------------------
//Function LoadfromHistory                                      --
//--
//------------------------------------------------------------------
procedure TModelFrame.LoadfromHistory(Fn:JString);
var
  i:Integer;
  PP:TPoint;
  G:JString;
  nw,nh,nl,nt:Integer;
begin
  //search history
  with Opt.R do begin
    ViewList.Free;
    ViewList:=nil;
    G:=ExtractFileName(Fn);
    i:=findinHistory(Fn);
    if History[i].Per[F1].Node>=0 then
      with Frame11 do
        positbyIndex(History[i].Per[F1].Node);
    if History[i].Per[F2].pos.Y>0 then
      Frame21.positbyPoint(History[i].Per[F2].pos)
    else if History[i].Per[F2].Node<>0 then begin
      PP.X:=1;
      PP.Y:=History[i].Per[F2].Node;
      Frame21.positbyPoint(PP);
    end;
    nw:=max(History[i].Per[F1].width,History[i].Per[F2].width);
    nh:=max(History[i].Per[F1].height,History[i].Per[F2].height);
    nt:=History[i].Per[F1].Top;
    nl:=History[i].Per[F1].left;
    if (nw>0)and(nh>0) then begin
      Top:=nt;
      left:=nl;
      width:=nw;
      height:=nh;
    end;
    SaveView();
  end;
  width:=Opt.R.width;
  height:=Opt.R.height;
  Top:=Opt.R.Top;
  left:=Opt.R.left;
  DisplayHistory();
end;
//------------------------------------------------------------------
//Function DisplayHistory                                          --
//--
//------------------------------------------------------------------
procedure TModelFrame.DisplayHistory();
var
  i,se:Integer;
  M:TMenuItem;
  function Short(F:JString):JString;
  var
    S:JString;
  begin
    S:=ExtractFilePath(F);
    if length(S)>8 then
      S:=MidStr(S,1,8)+'...';
    Short:=S+ExtractFileName(F);
  end;
begin
  //remove old menuitems
  se:=File1.IndexOf(Exit1);
  for i:=File1.Count downto se+2 do
    File1.Remove(File1.items[i-1]);
  //create entries from history
  Sep:='-';
  For i:=1 to HistMax do
    if Opt.R.History[i].FileName<>'' then begin
      if Sep='-' then begin
        M:=TMenuItem.Create(File1);
        M.Caption:=Sep;
        File1.Add(M);
        Sep:='';
      end;
      M:=TMenuItem.Create(File1);
      M.Caption:=Short(Opt.R.History[i].FileName);
      if pos('.jcl',LowerCase(M.Caption))>0 then
        M.ImageIndex:=JCLImage
      else
        M.ImageIndex:=COBOLImage;
      M.OnClick:=Oeffne.OnClick;
      File1.Add(M);
    end;
end;
//------------------------------------------------------------------
//Function sortHistory                                          --
//--
//------------------------------------------------------------------
procedure TModelFrame.sortHistory();
var
  i,j:Integer;
  zz:THistory;
begin
  //sort by datetime and usage count
  For i:=1 to HistMax-1 do
    for j:=i+1 to HistMax do
      with Opt.R do
        if (History[i].DateTime<History[j].DateTime) then begin
          zz:=History[j];
          History[j]:=History[i];
          History[i]:=zz;
        end;
end;
//------------------------------------------------------------------
//Function FidinHistory                                          --
//--
//------------------------------------------------------------------
function TModelFrame.findinHistory(F:JString):Integer;
var
  i,j:Integer;
  G:JString;
begin
  i:=1;
  G:=ExtractFileName(F);
  while (Opt.R.History[i].FileName<>'')and
    (LowerCase(Opt.R.History[i].FileName)<>LowerCase(F))and(i<HistMax) do
    i:=i+1;
  if (i>HistMax) then begin
    //not found, rotate
    for j:=HistMax downto 2 do
      Opt.R.History[j]:=Opt.R.History[j-1];
    i:=1;
  end;
  findinHistory:=i
end;
//------------------------------------------------------------------
//Function SavetoHistory                                          --
//--
//------------------------------------------------------------------
procedure TModelFrame.SavetoHistory(F:JString);
var
  i:Integer;
  G:JString;
  function Short(F:JString):JString;
  var
    S:JString;
  begin
    S:=ExtractFilePath(F);
    if length(S)>8 then
      S:=MidStr(S,1,8)+'...';
    Short:=S+ExtractFileName(F);
  end;
begin
  if (F>''then begin
    SaveView();
    G:=ExtractFileName(F);
    i:=findinHistory(F);
    setl(Opt.R.History[i].FileName,F);
    Opt.R.History[i].Count:=0;
    Opt.R.History[i].DateTime:=Now;
    if (ViewList<>nilthen
      Opt.R.History[i].Per:=ViewList.Per;
  end;
  DisplayHistory();
end;
//------------------------------------------------------------------
//Function Activation                                       --
//--
//------------------------------------------------------------------
procedure TModelFrame.Aktivierung1Click(Sender:TObject);
begin
  Lizenz1.TrytoActivate(false);
end;
//------------------------------------------------------------------
//Function Hilfe2                                              --
//--
//------------------------------------------------------------------
procedure TModelFrame.Hilfe2Click(Sender:TObject);
begin
  //Achtung: *.hlp und *.cnt mitliefern
  //WinHelp(0,PChar(Application.helpfile),HELP_FINDER,0);
  HtmlHelpW(0,PChar(Application.helpfile),0,0);
end;
//------------------------------------------------------------------
//Function �berClick                                           --
//--
//------------------------------------------------------------------
procedure TModelFrame.AboutClick(Sender:TObject);
begin
  with AboutDialog do begin
    Label1.Caption:=Application.Title+' '+Version;
    DLLVersion:=String(ActDLLInfo);
    Edition.Caption:=EditionStrings[Opt.R.Edition]+' '+'Edition';
    if Opt.R.Activated then
      ProduktId.Caption:=trans(lang,166,'g�ltige Lizenz f�r')
    else begin
      Edition.Caption:='Shareware'+' '+'Edition';
      if not Opt.R.Activated then
        ProduktId.Caption:=trans(lang,163,'Dateigr��e begrenzt auf:')+inttostr
          (maxfilesize div 1024)+' kB'
    end;
    Caption:=trans(lang,167,'�ber ')+Application.Title;
    ShowModal
  end
end;
//------------------------------------------------------------------
//Function GraphMouseMove                                      --
//--
//------------------------------------------------------------------
procedure TModelFrame.GraphMouseMove(Sender:TObject;Shift:TShiftState;
  X,Y:Integer);
var
  P:TPoint;
  Frame:TFrame;
  K:JString;
begin
  P.X:=X;
  P.Y:=Y;
  if (Sender=Frame21.Cfa)and(MDI.GC.Selected<>0)and(MDI.GC.Hint<>''then begin
    if sqr(MDI.GC.hintpos.X-P.X)+sqr(MDI.GC.hintpos.Y-P.Y)<sqr
      (MDI.GC.Sidelength) then
      Frame21.Cfa.Hint:=MDI.GC.Hint
    else
      Frame21.Cfa.Hint:='';
    Frame:=(Frame21.Cfa.Parent.Parent.Parent.Parent as TFrame);
    P:=GraphCoordinates(MDI.GC,Opt.R.Cfa.Sheet,Frame,P);
    K:=Frame21.positInfo(P,Sender);
    if Frame=Frame11 then
      Frame11.statusbar1.SimpleText:=K;
    if Frame=Frame21 then
      Frame21.statusbar1.SimpleText:=K;
    if Frame=Frame31 then
      Frame31.statusbar1.SimpleText:=K;
    MDI.GC.Hint:=K;
  end
  else if (Sender=Frame21.Dfa)and(MDI.GD.Selected<>0)and(MDI.GD.Hint<>''then
    begin
    if sqr(MDI.GD.hintpos.X-P.X)+sqr(MDI.GD.hintpos.Y-P.Y)<sqr
      (MDI.GD.Sidelength) then
      Frame21.Dfa.Hint:=MDI.GD.Hint
    else
      Frame21.Dfa.Hint:='';
    Frame:=(Frame21.Dfa.Parent.Parent.Parent.Parent as TFrame);
    P:=GraphCoordinates(MDI.GD,Opt.R.Dfa.Sheet,Frame,P);
    K:=Frame21.positInfo(P,Sender);
    if Frame=Frame11 then
      Frame11.statusbar1.SimpleText:=K;
    if Frame=Frame21 then
      Frame21.statusbar1.SimpleText:=K;
    if Frame=Frame31 then
      Frame31.statusbar1.SimpleText:=K;
    MDI.GD.Hint:=K;
  end;
end;
//------------------------------------------------------------------
//Key Pressed                                                  --
//--
//------------------------------------------------------------------
procedure TModelFrame.Frame21FunktionKeyUp(Sender:TObject;var Key:Word;
  Shift:TShiftState);
begin
  if length(Frame21.Funktion.SelText)>0 then
    initSearchReplace(Frame21.Funktion.SelText,'',false,FuncSearch);
end;
//------------------------------------------------------------------
//Source Changed                                             --
//--
//------------------------------------------------------------------
procedure TModelFrame.Frame21SourceChange(Sender:TObject);
begin
  if not Opening then begin
    setFrameStatus(Sender);
    Speichern.enabled:=Frame21.Source.Modified;
  end;
end;
//------------------------------------------------------------------
//Source Changed                                             --
//--
//------------------------------------------------------------------
procedure TModelFrame.Frame21SourceSelectionChange(Sender:TObject);
begin
  if not Opening then begin
    setFrameStatus(nil);
  end;
end;
//------------------------------------------------------------------
//Function Frame11NavClick                                     --
//--
//------------------------------------------------------------------
procedure TModelFrame.TreeClick(Sender:TObject);
var
  Tree:TTreeView;
begin
  Tree:=Sender as TTreeView;
  Tree.SetFocus();
  Realcheck();
  Frame11.TreeClick(Sender);
  Frame21.positbyNode(Frame11.Key,Tree);
  UpDateInspector(MDI.NavL,Frame11.Navigator.Selected);
  Frame11.Navigator.Hint:=HintBox(Tree.Selected.Text);
  SaveView();
end;
//------------------------------------------------------------------
//Function Sem DblClick                                        --
//--
//------------------------------------------------------------------
procedure TModelFrame.TreeDblClick(Sender:TObject);
var
  PC:TPageControl;
  P:TPoint;
  TV:TTreeView;
begin
  PC:=Opt.R.Source.Sheet.PageControl;
  PC.ActivePage:=Opt.R.Source.Sheet;
  TV:=(Sender as TTreeView);
  if Opt.R.Source.Frame=F1 then
    PageControlChange(Frame11.PageControl1);
  if Opt.R.Source.Frame=F2 then
    PageControlChange(Frame21.PageControl1);
  if Opt.R.Source.Frame=F3 then
    PageControlChange(Frame31.PageControl1);
  //Frame21.Source.positbyNode(Frame11.Key)
  P:=Frame21.getPointfromNode(Frame11.Key);
  Frame21.positbyNode(Frame11.Key,TV);
end;
//------------------------------------------------------------------
//Function Frame11NavClick                                     --
//--
//------------------------------------------------------------------
procedure TModelFrame.TreeSelChange(Sender:TObject;var Key:Word;
  Shift:TShiftState);
var
  Tree:TTreeView;
  changed:Boolean;
begin
  if Sender=Frame11.Navigator then begin
    changed:=Frame11.LastNavSelected<>Frame11.Navigator.Selected;
    Frame11.Navigator.SetFocus();
  end
  else if Sender=Frame11.Semantik then begin
    changed:=Frame11.LastSemSelected<>Frame11.Semantik.Selected;
    Frame11.Semantik.SetFocus();
  end
  else
    changed:=false;
  Honeypot();
  if changed then begin
    Tree:=Sender as TTreeView;
    Frame11.TreeClick(Sender);
    Frame21.positbyNode(Frame11.Key,Tree);
    UpDateInspector(MDI.NavL,Frame11.Navigator.Selected);
    Frame11.Navigator.Hint:=HintBox(Tree.Selected.Text);
    SaveView();
  end;
  Frame11.LastNavSelected:=Frame11.Navigator.Selected;
  Frame11.LastSemSelected:=Frame11.Semantik.Selected;
end;
//------------------------------------------------------------------
//Function LineNumbers                                         --
//--
//------------------------------------------------------------------
procedure TModelFrame.Zeilennummern1Click(Sender:TObject);
var
  TP:TPageControl;
  modi:Boolean;
begin
  modi:=Frame21.Source.Modified;
  Opt.R.Linenumbers:=not Opt.R.Linenumbers;
  if Opt.R.Linenumbers then
    Opt.R.Blocknumbers:=false;
  Zeilennummern1.Checked:=Opt.R.Linenumbers;
  Blocknummern.Checked:=Opt.R.Blocknumbers;
  Frame21.Source.Linenumbers:=Opt.R.Linenumbers;
  Frame21.Source.Blocknumbers:=Opt.R.Blocknumbers;
  Frame21.Source.Mark();
  TP:=Opt.R.Source.Sheet.PageControl;
  TP.ActivePage:=Opt.R.Source.Sheet;
  Frame21.Source.Modified:=modi;
end;
//------------------------------------------------------------------
//Function BtnSaveClick                                        --
//--
//------------------------------------------------------------------
procedure TModelFrame.BlocknummernClick(Sender:TObject);
var
  TP:TPageControl;
  modi:Boolean;
begin
  if MDI.ReturnValue<=1 then begin
    modi:=Frame21.Source.Modified;
    Opt.R.Blocknumbers:=not Opt.R.Blocknumbers;
    if Opt.R.Blocknumbers then
      Opt.R.Linenumbers:=false;
    Blocknummern.Checked:=Opt.R.Blocknumbers;
    Zeilennummern1.Checked:=Opt.R.Linenumbers;
    Frame21.Source.Linenumbers:=Opt.R.Linenumbers;
    Frame21.Source.Blocknumbers:=Opt.R.Blocknumbers;
    Frame21.Source.Mark();
    TP:=Opt.R.Source.Sheet.PageControl;
    TP.ActivePage:=Opt.R.Source.Sheet;
    Frame21.Source.Modified:=modi;
  end
  else begin
    Blocknummern.Checked:=false;
  end
end;
//------------------------------------------------------------------
//Function Setnavigation                                       --
//--
//------------------------------------------------------------------
procedure TModelFrame.Setnavigation();
var
  c:Integer;
begin
  if ViewList<>nil then begin
    Vor.enabled:=(ViewList.Next<>nil);
    Zur.enabled:=ViewList.Previous<>nil;
  end
  else begin
    Vor.enabled:=false;
    Zur.enabled:=false;
  end;
  Home.enabled:=true;
  if InSight(Opt.R.Source) then begin
    Ausschneiden.enabled:=Frame21.Source.SelLength>0;
    Einfuegen1.enabled:=length(Clipboard.AsText)>0;
    UndoButton.enabled:=Frame21.Source.Modified;
  end
  else begin
    Ausschneiden.enabled:=false;
    Einfuegen1.enabled:=false;
    UndoButton.enabled:=false;
  end;
  if InSight(Opt.R.Source)or InSight(Opt.R.measures)or InSight(Opt.R.Funktion)
    then begin
    Kopieren2.enabled:=Frame21.Source.SelLength>0;
  end
  else begin
    Kopieren2.enabled:=false;
  end;
  if InSight(Opt.R.Cfa)or InSight(Opt.R.Dfa) then begin
    Auf.enabled:=true;
    Ab.enabled:=true;
  end
  else begin
    Auf.enabled:=false;
    Ab.enabled:=false;
  end;
  c:=PageCount(Frame21.PageControl1);
  Speichern.enabled:=Frame21.Source.Modified;
  Split.enabled:=(c>1)or(Frame31.Visible);
  Simulation1.enabled:=Opt.R.Cfa.Sheet.Visible or Opt.R.Dfa.Sheet.Visible;
  //
  Auf.enabled:=Filelist<>nil;
end;
//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
procedure TModelFrame.QuerformatClick(Sender:TObject);
begin
  Frame31.QuerformatClick(Sender);
end;
//------------------------------------------------------------------
//Function undo                                                --
//--
//------------------------------------------------------------------
procedure TModelFrame.undoClick(Sender:TObject);
begin
  Frame21.Source.LoadFromUndoBuffer();
  setFrameStatus(Sender);
end;
//------------------------------------------------------------------
//Function PushViews                                           --
//--
//------------------------------------------------------------------
function TModelFrame.Viewof(F:Frames):FrameView;
var
  RV:ViewType;
  pos:TPoint;
  Node:Integer;
  procedure getv(PC:TPageControl);
  begin
    pos.X:=0;
    pos.Y:=0;
    Node:=0;
    with PC do
      if ActivePage=Opt.R.Navigator.Sheet then begin
        RV:=ViewNav;
        with Frame11.Navigator do
          if Selected<>nil then
            Node:=Selected.AbsoluteIndex;
      end
      else if ActivePage=Opt.R.Semantik.Sheet then begin
        RV:=ViewSem;
        with Frame11.Semantik do
          if Selected<>nil then
--> --------------------

--> maximum size reached

--> --------------------

¤ Dauer der Verarbeitung: 0.82 Sekunden  (vorverarbeitet)  ¤





Kontakt
Drucken
Kontakt
sprechenden Kalenders

Eigene Datei ansehen




schauen Sie vor die Tür

Fenster


Die Firma ist wie angegeben erreichbar.

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff