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

📄 mainform.pas

📁 delphi 写的delphi的程序 Handel is a free, standalone development tool created with Delphi 3 that enable
💻 PAS
📖 第 1 页 / 共 5 页
字号:
   // ReadClass;
   Result:= TComponentClass(GetClass(SelectedComponentName));
   if not ShiftKeyed then SelectedComponentName:= '';
end;

function TFMainForm.GetLinkForm:TForm;
// Return form linked with active unit
var
   I:Integer;
begin
   Result:= nil;
   for I:=0 to Screen.FormCount-1 do
   begin
      if Screen.Forms[I] is TProxyForm then
         if TProxyForm(Screen.Forms[I]).FileName = ActiveUnit then
         begin
            Result:=Screen.Forms[I];
            Break;
         end;
   end;
end;

procedure TFMainForm.ProxyFormShow(Sender: TObject);
begin
   if ProxyDesigner = nil then Exit;
   ObjectInspector.GetPropertyInfo(ProxyDesigner.Form);
   ProxyDesigner.GetComponentList;
   ObjectInspector.ComponentList.Text:= ProxyDesigner.Form.Name+':TForm';
end;

procedure TFMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
   SaveResp:Integer;
begin
   if (ProjectInfo.ProjectState = psChange) then
   begin
      SaveResp := MessageDlg(Format('Save Change to %s?',
             [ExtractFileName(ProjectInfo.ProjectName)]), mtWarning, mbYesNoCancel, 0);
      if  SaveResp = idYes then SaveProject(ProjectInfo.ProjectName)
      else if SaveResp = idCancel then Action:= caNone;
   end;
   CodeCompletionList.Free;
   //SaveHistory(ProjectInfo.ProjectName);
end;

function TFmainForm.TryName(const Test:string;Comp:TComponent):Boolean;
{哪欺惩飘 捞抚捞 蜡老茄瘤 抛胶飘 秦焊绊, 父老 蜡老窍促搁 True甫 府畔窍绊, 酒聪搁
 False甫 府畔茄促.}
var
   I:Integer;
begin
   Result:=False;
   for I:=0 to Comp.ComponentCount-1 do
       if CompareText(Comp.Components[I].Name,Test) =0 then Exit;
   Result:=True;
end;

function TFMainForm.UniqueName(Comp:TComponent):string;
{钎霖 胆颇捞狼 盔蘑阑 荤侩窍咯 哪欺惩飘俊 措茄 蜡老茄 捞抚阑 积己茄促. 溜 <鸥涝><箭磊>
 屈侥阑 荤侩窍绰单, <鸥涝>篮 哪欺惩飘狼 努贰胶 捞抚俊辑 'T'甫 猾 巴捞绊, <箭磊>绰
 捞抚阑 窜老窍霸 父甸扁 困茄 沥荐捞促.}
var
   I:Integer;
   Fmt:string;
begin
   if Comp.ClassName[1] in ['t','T'] then
       Fmt:=Copy(Comp.ClassName,2,255)+'%d'
   else Fmt:=Comp.ClassName+'%d';
   if Comp.Owner = nil then
   begin
      {家蜡磊啊 绝栏骨肺 葛电 捞抚捞 悼老窍促. 1阑 荤侩茄促.}
      Result:=Format(Fmt,[1]);
      Exit;
   end
   else
   begin
      {蜡老茄 捞抚捞 唱棵 锭鳖瘤 , 啊瓷茄 箭磊甫 葛滴 矫氰茄促.}
      for I:=1 to High(Integer) do
      begin
          Result:=Format(Fmt,[I]);
          if TryName(Result,Comp.Owner) then Exit;
      end;
   end;
end;

function TFMainForm.GetUnitName(const FormName:string):string;
// Return unit name linked with FormName
var
  I:Integer;
begin
   Result:= '';
   for I:=0 to ProjectInfo.FormItems.Count-1 do
   begin
      if Pos(FormName,ProjectInfo.FormItems[I])>0 then
      begin
         Result:= ProjectInfo.UnitItems[I];
         Exit;
      end;
   end;
end;

procedure TFMainForm.ProjectAddItemClick(Sender: TObject);
begin
   OpenDialog1.FileName:='';
   OpenDialog1.FilterIndex:=3;
   if OpenDialog1.Execute then
   begin
      ProjectInfo.UnitItems.Add(GetNetFileName(OpenDialog1.FileName));
      ProjectInfo.FormItems.Add('Test');
      ProjectInfo.InsertProjectCode(GetNetFileName(OpenDialog1.FileName),'Test');
   end;
end;

procedure TFMainForm.ProjectRemoveItemClick(Sender: TObject);
begin
   CreateShowModal(TRemoveProject);
end;

procedure TFMainForm.SaveProjectHistory(const Project:string);
// Save project information to ini file
var
   LastNum,I:Integer;
   List:TStringList;
begin
   List:=TStringList.Create;
   IniFile.ReadSectionValues('Closed Projects',List);
   for I:=0 to List.Count-1 do
       if List.Values[IntToStr(I)]=Project then
       begin
          List.Free;
          Exit;
       end;
   LastNum:=IniFile.ReadInteger('Closed Projects','Last',0);
   if LastNum < 5 then
   begin
      IniFile.WriteInteger('Closed Projects','Last',LastNum+1);
      IniFile.WriteString('Closed Projects',IntToStr(LastNum+1),Project);
   end
   else  IniFile.WriteInteger('Closed Projects','Last',0);
end;

procedure TFMainForm.SaveFileHistory(const Filename:string);
var
   LastNum,I:Integer;
   List:TStringList;
begin
   List:=TStringList.Create;
   IniFile.ReadSectionValues('Closed Files',List);
   for I:=0 to List.Count-1 do
       if List.Values[IntToStr(I)]= Filename then
       begin
          List.Free;
          Exit;
       end;
   LastNum:=IniFile.ReadInteger('Closed Files','Last',0);
   if LastNum<15 then
   begin
      IniFile.WriteInteger('Closed Files','Last',LastNum+1);
      IniFile.WriteString('Closed Files',IntToStr(LastNum+1),Filename);
   end
   else  IniFile.WriteInteger('ProjectHistory','Last',0);
end;

procedure TFMainForm.OpenHistory;
// 傈俊 佬菌带 橇肺璃飘客 蜡聪飘甫 皋春俊 眠啊茄促.
var
   I:Integer;
   NewMenuItem:TMenuItem;
   List:TStringList;
begin
   List:=TStringList.Create;
   IniFile.ReadSectionValues('Closed Projects',List);
   for I:=0 to List.Count-1 do
   begin
      if FileExistOnPath(List.Values[IntToStr(I)]) then
      begin
         NewMenuItem:=TMenuItem.Create(Self);
         NewMenuItem.Caption:=List.Values[IntToStr(I)];
         NewMenuItem.OnClick:= OpenHistoryFile;
         FileReOpenItem.Add(NewMenuItem);
      end;
   end;
   NewMenuItem:=TMenuItem.Create(Self);
   NewMenuItem.Caption:= '-';
   NewMenuItem.OnClick:= nil;
   FileReOpenItem.Add(NewMenuItem);
   IniFile.ReadSectionValues('Closed Files',List);
   for I:=0 to List.Count-1 do
   begin
      if FileExistOnPath(List.Values[IntToStr(I)]) then
      begin
         NewMenuItem:= TMenuItem.Create(Self);
         NewMenuItem.Caption:= List.Values[IntToStr(I)];
         NewMenuItem.OnClick:= OpenHistoryFile;
         FileReOpenItem.Add(NewMenuItem);
      end;
   end;
   List.Free;
end;

procedure TFMainForm.OpenHistoryFile(Sender: TObject);
// 傈俊 佬菌带 橇肺璃飘甫 角青茄促.(促矫 凯扁 皋春俊辑 急琶窍绰 版快)
begin
   if ExtractFileExt((Sender as TMenuItem).Caption)='.dpr' then
      OpenProject((Sender as TMenuItem).Caption)
   else OpenFile((Sender as TMenuItem).Caption);
end;

procedure TFMainForm.ToggleFormAndUnit;
// Toggle form/unit
var
  I:Integer;
  FileName:string;
begin
   if not ToggleFormUnit then
   begin
      for I:=0 to Screen.FormCount - 1 do
         if Screen.Forms[I] is TProxyForm then
         begin
            FileName:= ExtractFileName(TProxyForm(Screen.Forms[I]).FileName);
            if FileName  = EditorForm.Caption then
            begin
               Screen.Forms[I].SetFocus;
               Break;
            end;
         end;
   end
   else if EditorForm.Visible then EditorForm.SetFocus;
end;

procedure TFMainForm.ExecuteTool(Sender: TObject);
var
  ExeName:string;
begin
   ExeName:=IniFile.ReadString('Tools',(Sender as TMenuItem).Caption,'');
   WinExec(PChar(ExeName),SW_SHOWNORMAL);
end;

procedure TFMainForm.OpenTools;
var
   I:Integer;
   NewMenuItem:TMenuItem;
   List:TStringList;
begin
   List:=TStringList.Create;
   IniFile.ReadSection('Tools',List);
   for I:=0 to List.Count-1 do
   begin
     NewMenuItem:= TMenuItem.Create(Self);
     NewMenuItem.Caption:= List[I];
     NewMenuItem.OnClick:= ExecuteTool;
     ToolsMenu.Add(NewMenuItem);
   end;
   List.Free;
end;

procedure TFMainForm.ViewWindowListItemClick(Sender: TObject);
begin
   CreateShowModal(TWindowList);
end;

procedure TFMainForm.ViewComponentListItemClick(Sender: TObject);
begin
   CreateShowModal(TComponentList);
end;

procedure TFMainForm.ToolsToolsItemClick(Sender: TObject);
begin
   CreateShowModal(TTools);
end;

procedure TFMainForm.UpdateControl(State:TProjectState);
begin
   case State of
      psOpen:
      begin
          ProjectInfo.ProjectState := psOpen;
          sbSaveAll.Enabled        := False;
          FileSaveAllItem.Enabled  := False;
      end;
      psSave:
      begin
          ProjectInfo.ProjectState := psSave;
          sbSaveAll.Enabled        := False;
          FileSaveAllItem.Enabled  := False;
      end;
      psChange:
      begin
          ProjectInfo.ProjectState := psChange;
          sbSaveAll.Enabled        := True;
          FileSaveAllItem.Enabled  := True;
      end;
      psNew:
      begin
          ProjectInfo.ProjectState := psNew;
          sbSaveAll.Enabled        := True;
          FileSaveAllItem.Enabled  := True;
      end;
   end;
end;

function TFMainForm.SearchingText(SearchStr:string;Options:TmwSearchOptions):Boolean;
// 巩磊凯阑 八祸茄促.
begin
   Result:= True;
   if ActivePasEditor.SearchReplace(SearchStr, '', Options) = 0 then
   begin
      Beep;
      MessageDlg('"'+SearchStr+'"'+' finished finding.', mtInformation , [mbOK], 0);
      ActivePasEditor.SetFocus;
      Result:= False;
   end;
end;

procedure TFMainForm.SearchFindInFilesItemClick(Sender: TObject);
begin
   CreateShowModal(TFindInFile);
end;

procedure TFMainForm.ReplacingText(FindText,ReplaceText:string;Options:TmwSearchOptions);
// 巩磊凯阑 促弗 巩磊凯肺 官槽促.
begin
   ActivePasEditor.SearchReplace(FindText, ReplaceText, Options);
end;

procedure TFMainForm.ReadClass;
// 汽 颇老俊 乐绰 哪欺惩飘狼 努贰胶甫 殿废茄促.
begin
    RegisterClasses([TForm               , TButton           , TMainMenu,
                     TPopupMenu          , TLabel            , TEdit,
                     TMemo               , TRadioButton      , TCheckBox,
                     TListBox            , TComboBox         , TScrollBar,
                     TGroupBox           , TRadioGroup       , TPanel,
                     TBitBtn             , TSpeedButton      , TMaskEdit,
                     TStringGrid         , TImage            , TShape,
                     TBevel              , TScrollBox        , TTabControl,
                     TPageControl        , TTreeView         , TListView,
                     TImageList          , THeaderControl    , TRichEdit,
                     TStatusBar          , TTrackBar         , TProgressBar,
                     TUpDown             , THotKey           , TTable,
                     TQuery              , TDataSource       , TStoredProc,
                     TDatabase           , TSession          , TBatchMove,
                     TUpdateSQL          , TDBGrid           , TDBNavigator,
                     TDBText             , TDBEdit           , TDBMemo,
                     TDBImage            , TDBListBox        , TDBComboBox,
                     TDBCheckBox         , TDBRadioGroup     , TDBLookupListBox,
                     TDBLookupComboBox   , TDBCtrlGrid       , TDBRichedit,
                     TDBLookupList       , TDBLookupCombo    , TTimer,
                     TPaintBox           , TFileListBox      , TDirectoryListBox,
                     TDriveComboBox      , TFilterComboBox   , TMediaPlayer,
                     TGauge              , TColorGrid        , TSpinButton,
                     TSpinEdit           , TDirectoryOutline , TCalendar,
                     TWrapperControl     , TOpenDialog       , TTabSheet,
                     TSaveDialog         , TFontDialog       , TToolBar,
                     TCoolBar            , TToolButton       , TPrintDialog,
                     TAnimate            , TNotebook         , TFindDialog,
                     TReplaceDialog      , TOpenPictureDialog, TSavePictureDialog,
                     TPrinterSetupDialog , TColorDialog      , TCheckListBox,
                     TSplitter           , TStaticText       , TDatetimePicker,
                     TOleContainer       , TDdeClientConv    , TDdeClientItem,
                     TDdeServerConv      , TDdeServerItem    , TTabSet,
                     TOutline            , TTabbedNotebook   , THeader
                     ]);
end;

procedure TFMainForm.FileSaveAs(FileName:string);
var
  SaveName:string;
  LinkForm:TForm;
  SaveResp:Integer;
begin
   SaveDialog1.InitialDir:= IniFile.ReadString('system', 'LastPath',FilePath);
   SaveDialog1.FileName:= FileName;
   SaveDialog1.FilterIndex:=2;
   if SaveDialog1.Execute then
   begin
      LinkForm:= GetLinkForm;
      SaveName:=SaveDialog1.FileName;
      if FileExistOnPath(SaveName) then
      begin
         SaveResp := MessageDlg(Format('Same filename exists already! Save changes to %s?',
              [ExtractFileName(SaveName)]), mtWarning, mbYesNoCancel, 0);
         case SaveResp of
            idYes:
               EditorForm.GetLinkEditor.Lines.SaveToFile(SaveName);
            idNo: Exit;
            idCancel: Abort;
         end;
      end
      else EditorForm.GetLinkEditor.Lines.SaveToFile(SaveName);
      SaveForm(LinkForm,Copy(SaveName,1,Length(SaveName)-4)+'.dfm');
   end;
end;

procedure TFMainForm.FileSaveAsItemClick(Sender: TObject);
begin
   FileSaveAs(EditorForm.Caption);
end;

procedure TFMainForm.FileSaveAllItemClick(Sender: TObject);

⌨️ 快捷键说明

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