⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.pas

📁 IDE开发环境
💻 PAS
📖 第 1 页 / 共 5 页
字号:
        MainForm.Next;
      DosCommand1.Execute; //Do it!
      Run := True;
{    End;
  if (RQ1.Checked = True) Then
    Begin
      Save1Click(Sender);
      Form1.Panel1.Height := 100;
      Form1.Memo1.Text := '';
      SetCurrentDir(ExtractFilePath(OptionsFrm.CompileCommand.Text));
      BPCName := ChangeFileExt(ProjectName, '.BPC');
      DosCommand1.CommandLine := OptionsFrm.CompileCommand.Text + ' "' + BPCName+'"';      if ActiveMDIChild.Handle <> Form1.Handle then
        MainForm.Next;
      DosCommand1.Execute;
      Run := True;
      DosCommand1.CommandLine := ChangeFileExt(ProjectName, '.EXE');
      DosCommand1.Execute;
      Exit;
    End;}
  INIFile.Free;
end;

procedure TMainForm.Run2Click(Sender: TObject);
var IniFile : TINIFile;
begin
INIFile := TINIFile.Create(ProjectName);
      Save1Click(Sender);
      Form1.Panel1.Height := 100;
      Form1.Memo1.Text := '';

      //Do some special things for RQ:
      DeleteFile(PChar(ChangeFileExt(ProjectName, '.EXE'))); //In RQ, the compile will stop if the EXE already exists?
      SetCurrentDir(ExtractFilePath(INIFile.ReadString('Project', 'CompileCommand-Long', '')));

      //Set the compile command:
      DosCommand1.CommandLine := Format(INIFile.ReadString('Project', 'CompileCommand-8.3', ''), [INIFile.ReadString('Project', 'CompileFile-8.3', '')]);      if ActiveMDIChild.Handle <> Form1.Handle then

      if ActiveMDIChild.Handle <> Form1.Handle then
        MainForm.Next;
      DosCommand1.Execute; //Do it!

      Run := False; //Make sure the program doesn't run
{
  if (KB1.Checked = True) Then
    Begin
      Save1Click(Sender);
      Form1.Panel1.Height := 100;
      Form1.Memo1.Text := '';
      SetCurrentDir(PChar(ExtractFilePath(Application.ExeName) + 'KoolBASIC\'));
      DosCommand1.CommandLine := 'KoolB.exe -Windows "' + ChangeFileExt(FileName, '.bas"');
      if ActiveMDIChild.Handle <> Form1.Handle then
        MainForm.Next;
      DosCommand1.Execute;
      Run := False;
      Exit;
    End;
  if (RQ1.Checked = True) Then
    Begin
      Save1Click(Sender);
      Form1.Panel1.Height := 100;
      Form1.Memo1.Text := '';
      MoveFile(PChar(FileName), PChar(ExtractFilePath(Application.ExeName) + 'Rapid-Q\' + ExtractFileName(FileName)));
      SetCurrentDir(PChar(ExtractFilePath(Application.ExeName) + 'Rapid-Q\'));
//      DosCommand1.CommandLine := 'RC.exe "' + ExtractFileName(BASICFile) + '"';
      if ActiveMDIChild.Handle <> Form1.Handle then
        MainForm.Next;
      DosCommand1.Execute;
      Run := False;
      Exit;
    End;
//  ShellExecute(Handle,nil,PChar('KoolB.exe'), PChar(' > Results.txt'), nil,SW_SHOWNORMAL);
//  ShellExecute(Handle,nil,PChar('KoolB.exe'), PChar(' > Results.txt'), nil,SW_SHOWNORMAL);
}
INIFile.Free;
end;

procedure TMainForm.DosCommand1NewLine(Sender: TObject; NewLine: String;
  OutputType: TOutputType);
begin
  Form1.Memo1.Lines.Add(NewLine);
end;

procedure TMainForm.DosCommand1Terminated(Sender: TObject);
var Results : String; INIFile : TINIFile;
begin
INIFile := TINIFile.Create(ProjectName);
IF Run = True then
begin
  Results := Form1.Memo1.Text;
  ShellExecute(Handle, nil, PChar(ChangeFileExt(INIFile.ReadString('Project', 'CompileFile-Long', ''), '.EXE ')), PChar(INIFile.ReadString('Project', 'ParamsToPass', '')), nil, SW_SHOWNORMAL);
 { if Pos('Compile Time:',Results) <> 0 Or Pos('Compile time:', Results) then
    begin
      Form1.Panel1.Height := 3;
      if Run = True then
        begin
          if (Language = 'KoolBASIC') Then
            Begin
              ShellExecute(Handle, nil, PChar(ChangeFileExt(FileName, '.exe')), nil, nil, SW_SHOWNORMAL);
              Run := False;
              Exit;
            End;
          If (RQ1.Checked = True) Then
            Begin
              ShellExecute(Handle, nil, PChar(ChangeFileExt(FileName,'.exe')), nil, nil, SW_SHOWNORMAL);
              Run := False;
              Exit;
            End;
        end;
    end
  else
    begin}
      Form1.Memo1.SelStart := 0;
      Form1.Memo1.SelLength := 0;
  //  end;
end;
end;

procedure TMainForm.PropertiesSetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
var temp : Integer;
begin
    try
      temp := StrToInt(Properties.Cells[1,1]);
    except
      on EConvertError do temp := 0;
    end;
  RTDesigner1.Control[0].Top := temp;
  RTDesigner1.UpdateSelection;
end;

procedure TMainForm.TreeView2GetSelectedIndex(Sender: TObject;
  Node: TTreeNode);
begin
  if (TreeView2.Selected.Text = 'BASIC Project') Then Exit;
  if (TreeView2.Selected.Text = 'Form Designer') Then
    begin
      if (MainForm.ActiveMDIChild.Handle = Form1.Handle) Then
        MainForm.Next;
        RTDesigner1.SelectNone;
        Exit;
    end;
  if (TreeView2.Selected.Text = 'Code View') Then
    begin
      if (MainForm.ActiveMDIChild.Handle <> Form1.Handle) Then
        MainForm.Next;
        Exit;
    end;
  RTDesigner1.SelectNone;
  with ComboBox1 do
  RTDesigner1.AddToSelection(TControl(TreeView2.Selected.Data));
  RTDesigner1.ShowSelection(True);
end;

procedure TMainForm.TreeView2Click(Sender: TObject);
var Forms : Integer;
begin

  IF (RTDesigner1.BaseControl = nil) Then exit;
  If (RTDesigner1.EditMode = False) Then Exit;
  if (TreeView2.Selected.Text = 'BASIC Project') Then Exit;
  if (TreeView2.Selected.Text = 'Form Designer') Then
    begin
      if (MainForm.ActiveMDIChild.Handle = Form1.Handle) Then
        MainForm.Next;
        Exit;
    end;
  if (TreeView2.Selected.Text = 'Code View') Then
    begin
      if (MainForm.ActiveMDIChild.Handle <> Form1.Handle) Then
        MainForm.Next;
        Exit;
    end;
  if (TreeView2.Selected.Parent.Text = 'Code View') Then Begin
    if (MainForm.ActiveMDIChild.Handle <> Form1.Handle) Then
      MainForm.Next;
    Form1.Tabs.ActivePage:= Form1.Tabs.Pages[TTabSheet(TreeView2.Selected.Data).TabIndex];
    Exit;
  End;
  if (TreeView2.Selected.Parent.Text = 'Form Designer') Then Begin
    For Forms := 0 To MainForm.MDIChildCount-1 Do
      Begin
        if (MainForm.MDIChildren[Forms].Handle <> Form1.Handle) Then
          ShowWindow(MainForm.MDIChildren[Forms].Handle, SW_HIDE);
      End;
//    ShowWindow(MainForm.ActiveMDIChild.Handle, SW_HIDE);
    ShowWindow(TMDIChild(TreeView2.Selected.Data).Handle, SW_SHOW);
    TMDIChild(TreeView2.Selected.Data).BringToFront;
    RTDesigner1.BaseControl := TMDIChild(TreeView2.Selected.Data);
    SelectAt(FindString(TForm(TreeView2.Selected.Data).Caption));
    Properties.Cells[1,0]:= 'None';
    Properties.Cells[1,1]:= IntToStr(ActiveMDIChild.Top);
    Properties.Cells[1,2]:= IntToStr(ActiveMDIChild.Left);
    Properties.Cells[1,3]:= IntToStr(ActiveMDIChild.Height);
    Properties.Cells[1,4]:= IntToStr(ActiveMDIChild.Width);
    Exit;
  End;
  RTDesigner1.SelectNone;
  with ComboBox1 do
  RTDesigner1.AddToSelection(TControl(TreeView2.Selected.Data));
  RTDesigner1.ShowSelection(True);
end;

procedure TMainForm.TreeView2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var TempNode : TTabSheet;
begin
  If (RTDesigner1.EditMode = False) Then Exit;
  if (Key = VK_DELETE) Then
    begin
      if (TreeView2.Selected.Text = 'BASIC Project') Or (TreeView2.Selected.Text = 'Form Designer') Or (TreeView2.Selected.Text = 'Code View') Then Exit;
      if (TreeView2.Selected.Parent.Text = 'Code View') Then Begin
         if (TTabSheet(TreeView2.Selected.Data).Tag = 1) Then Exit;
         if (MessageDlg('Are you sure you want to delete this file from the project?', mtWarning, [mbYes, mbNo], 0) <> mrYes) Then Exit;
         TempNode := TTabSheet(TreeView2.Selected.Data);
         TreeView2.Selected.Data := nil;
         Form1.Tabs.Pages[TempNode.TabIndex].TabVisible := False;
         TempNode.Free;
         TreeView2.Items.Delete(TreeView2.Selected);
         Exit;
      End;
      TreeView2.Items.Delete(TreeView2.Selected);
      RTDesigner1.DeleteSelection;
    end;

  if (TreeView2.Selected.Text = 'BASIC Project') Then Exit;
  if (TreeView2.Selected.Text = 'Form Designer') Or (TreeView2.Selected.Text = 'Form1') Then
    begin
      if (MainForm.ActiveMDIChild.Handle = Form1.Handle) Then
        MainForm.Next;
        Exit;
    end;
  if (TreeView2.Selected.Text = 'Code View') Then
    begin
      if (MainForm.ActiveMDIChild.Handle <> Form1.Handle) Then
        MainForm.Next;
        Exit;
    end;
  if (TreeView2.Selected.Parent.Text = 'Code View') Then Begin
    if (MainForm.ActiveMDIChild.Handle <> Form1.Handle) Then
      MainForm.Next;
    Form1.Tabs.ActivePage:= Form1.Tabs.Pages[TTabSheet(TreeView2.Selected.Data).TabIndex];
    Exit
  End;
  RTDesigner1.SelectNone;
  with ComboBox1 do
  RTDesigner1.AddToSelection(TControl(TreeView2.Selected.Data));
  RTDesigner1.ShowSelection(True);
  TreeView2.SetFocus;
end;

procedure TMainForm.RTDesigner1RemoveControl(Sender: TObject;
  aControl: TControl);
var Items : Integer;
begin
  For Items := 0 To TreeView2.Items.Count-1 Do
    begin
      if TreeView2.Items[Items].Data = aControl Then
        begin
          TreeView2.Items.Delete(TreeView2.Items[Items]);
          Exit;
        end;
    End;
end;

procedure TMainForm.TreeView2DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  Accept := False;
//  if (Sender = TTreeView) Then
    if (TTreeView(Sender) = TreeView2) Then
      Accept := True;
end;

procedure TMainForm.TreeView2DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var   TargetNode : TTreeNode;
      SourceNode : TTreeNode;
      CurrentControl : TControl;
begin
  With TreeView2 Do
    Begin
      TargetNode := GetNodeAt(X,Y);
      SourceNode := Selected;
      if (TargetNode = nil) Or (TargetNode = Selected.Parent) Then
        Begin
          EndDrag(False);
          Exit;
        End;
      if (SourceNode.Level = 0) Or (SourceNode.Level = 1) Or (TargetNode.Level = 0) Or (TargetNode.Text = 'Code View') Then
        Begin
          EndDrag(False);
          Exit;
        End;
      if (IsAParentNode(Selected, TargetNode)) Then
        Begin
          EndDrag(False);
          Exit;
        End;
     if (TControl(TargetNode.Data).ClassName = 'TGroupBox') Or (TControl(TargetNode.Data).ClassName = 'TPanel') Or (TControl(TargetNode.Data).ClassName = 'TMDIChild') Then
        Begin
          MoveTreeNode(TreeView2, SourceNode, TargetNode);
          SourceNode.Delete;
          TargetNode.Expand(True);
          TWinControl(SourceNode.Data).Parent := TWinControl(TargetNode.Data);
          TWinControl(SourceNode.Data).Left := 5;
          TWinControl(SourceNode.Data).Top := 5;
          CurrentControl := RTDesigner1.Control[0];
          RTDesigner1.SelectNone;
          RTDesigner1.AddToSelection(CurrentControl);
          RTDesigner1.ShowSelection(True);
        End
      Else
        Begin
          ShowMessage('Cannot put a control on a ' + TControl(TargetNode.Data).ClassName + '.');
          EndDrag(False);
          Exit;
        End;
    End;
end;

procedure TMainForm.RTDesigner1BaseControlClick(Sender: TObject;
  var ClearSelection, DrawSelectionFrame: Boolean; Shift: TShiftState; X,
  Y: Integer);
Var Items : Integer;
begin
  For Items := 0 To TreeView2.Items.Count-1 Do
    begin
      if TreeView2.Items[Items].Data = ActiveMDIChild Then
        begin
          TreeView2.Select(TreeView2.Items[Items]);
          //TreeView2.Select(TreeView2.Items.AddChildObject(TreeView2.Items[Items], Control.Name, TObject(Control)));
        end;
    End;
  SelectAt(FindString(TMDIChild(TreeView2.Selected.Data).Caption));
  Properties.Cells[1,0]:= 'None';
  Properties.Cells[1,1]:= IntToStr(ActiveMDIChild.Top);
  Properties.Cells[1,2]:= IntToStr(ActiveMDIChild.Left);
  Properties.Cells[1,3]:= IntToStr(ActiveMDIChild.Height);
  Properties.Cells[1,4]:= IntToStr(ActiveMDIChild.Width);
end;

procedure TMainForm.TBXItem8Click(Sender: TObject);
begin
  If (ActiveMDIChild.Handle <> Form1.Handle) Then
    MainForm.Next;
//  Form1.CodeSense1.ExecuteCmd(178, 0); //178=cmCmdFind
Unit1.CodeSense[Form1.Tabs.ActivePageIndex].ExecuteCmd(cmCmdFind, 0)
end;

procedure TMainForm.TBXItem9Click(Sender: TObject);
begin
  If (ActiveMDIChild.Handle <> Form1.Handle) Then
    MainForm.Next;
//  Form1.CodeSense1.ExecuteCmd(169, 0);      //aka. Find & Replace
    Unit1.CodeSense[Form1.Tabs.ActivePageIndex].ExecuteCmd(169, 0)

end;

procedure TMainForm.TBXItem10Click(Sender: TObject);
begin
  If (ActiveMDIChild.Handle <> Form1.Handle) Then
    MainForm.Next;
//  Form1.CodeSense1.ExecuteCmd(168, -1); //aka. Goto Line
Unit1.CodeSense[Form1.Tabs.ActivePageIndex].ExecuteCmd(168, -1);
end;

procedure TMainForm.TBXItem20Click(Sender: TObject);
begin
  If ActiveMDIChild.Handle = Form1.Handle Then
    MainForm.Next;
//  RTDesigner1.ShowSelection(True);
  RTDesigner1.SendToBack;
end;

procedure TMainForm.TBXItem21Click(Sender: TObject);
begin
  If ActiveMDIChild.Handle = Form1.Handle Then
    MainForm.Next;
//  RTDesigner1.ShowSelection(True);
  RTDesigner1.SendToBack;
end;

procedure TMainForm.TBXItem31Click(Sender: TObject);
begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -