products/Sources/formale Sprachen/Delphi/Elbe 1.0/Sources image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

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

Datei: minipick.ML   Sprache: Cobol

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;
    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;
    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;
    PopupMenu3:TPopupMenu;
    drucken2:TMenuItem;
    N19:TMenuItem;
    drucken3:TMenuItem;
    PopupMenu4:TPopupMenu;
    drucken11:TMenuItem;
    N20:TMenuItem;
    verallgemeinern:TMenuItem;
    insDetail1:TMenuItem;
    drucken4:TMenuItem;
    PopupMenu5:TPopupMenu;
    drucken5:TMenuItem;
    Zoomin:TToolButton;
    Zoomout:TToolButton;
    ZoomNormal: TToolButton;
    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 SetWindowFonts;
    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 ZoomChange(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;
    firsthistory:boolean;
  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:='';
  firsthistory:=true;
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;
//------------------------------------------------------------------
//--
//SetWindowFonts                                              --
//--
//------------------------------------------------------------------
procedure TModelFrame.SetWindowFonts;
var
  F:TFont;
begin
  F:=TFont.Create;
  with F do begin
    Name:=Opt.R.FontName;
    Style:=Opt.R.FontStyle;
    Size:=Opt.R.FontSize;
    Color:=Opt.R.FontColor;
  end;
  //fonts and colors
  Frame11.Navigator.Font.Assign(F);
  Frame11.Semantik.Font.Assign(F);
  Frame11.Explorer.Font.Assign(F);
  Frame11.Inspector.Font.Assign(F);
  Frame21.Source.Font.Assign(F);
  Frame21.Source.DefAttributes.Assign(F);
  if Frame21.CFA<>nil then
    Frame21.CFA.Canvas.Font.Assign(F);
  if Frame21.DFA<>nil then
    Frame21.DFA.Canvas.Font.Assign(F);
  Frame21.measures.SelectAll;
  Frame21.measures.Font.Assign(F);
  Frame21.measures.DefAttributes.Assign(F);
  Frame21.measures.SelLength:=0;
  Frame21.Funktion.SelectAll;
  Frame21.Funktion.Font.Assign(F);
  Frame21.Funktion.DefAttributes.Assign(F);
  Frame21.Funktion.SelLength:=0;
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;
  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;
  Horizontalratio:=(100*SplitterVertical.left)div width;
  Verticalratio:=(100*SplitterHorizontal.Top)div height;
  Inspector1.Checked:=Opt.R.InspectorVisible;
  //setFrame11Ratio();
  //
  SetWindowColors;
  SetWindowFonts;
  //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;
  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;
  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;
  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);
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;
          LanguageProcessor(Fn,extensions[i].LexOnly,ord(Opt.R.Sourceformat),
            Ft);
          TimeSet:=Now;
          Frame11.Loader(Fn,IconImageList);
          proctime(Opt.R.Timeper1000forFrame1,MDI.TFrame1,TimeSet,
            MDI.filelength);
          SplashForm1.Progress(2);
          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;
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;
    SetWindowFonts;
    Frame21.Source.CreateHighlited(MDI.fnr);
    Frame21.measures.markLinepos(1,1);
    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;
    if Frame31.height>0 then
      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,
      ofAllowMultiSelect];
    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:Integer;
  //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 firsthistory and (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();
  firsthistory:=false;
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)  then begin
    Auf.enabled:=(MDI.GC.Map<>nil);
    Ab.enabled:=(MDI.GC.Map=nil);
  end else if InSight(Opt.R.DFA) then begin
    Auf.enabled:=(MDI.GD.Map<>nil);
    Ab.enabled:=(MDI.GD.Map=nil);
  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:=Auf.enabled or (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
--> --------------------

--> maximum size reached

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

¤ Dauer der Verarbeitung: 0.123 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

Eigene Datei ansehen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff