首页 > 其他分享 >lazarus标题栏增加显示当前project的目标CPU及OS

lazarus标题栏增加显示当前project的目标CPU及OS

时间:2024-08-24 09:05:18浏览次数:5  
标签:begin end ProjectName 标题栏 else project NewCaption lazarus Project1

lazarus编写程序特别是需要交叉编译时,不清楚当前project交叉编译的目标CPU及OS,为方便使用,可以按以下方法(红字部分)修改:
打开lazarus\ide\main.pp,找到procedure TMainIDE.UpdateCaption;

procedure TMainIDE.UpdateCaption;

  function AddToCaption(const CurrentCaption, CaptAddition: string): String;
  begin
    if EnvironmentGuiOpts.Desktop.IDETitleStartsWithProject then
      Result := CaptAddition + ' - ' + CurrentCaption
    else
      Result := CurrentCaption + ' - ' + CaptAddition;
  end;

var
  rev, NewCaption, NewTitle, ProjectName, DirName,TargetOSCPU: String;
begin
  if MainIDEBar = nil then Exit;
  if ToolStatus = itExiting then Exit;
  rev := GetLazarusRevision;
  if IsNumber(rev) then
    NewCaption := Format(lisLazarusEditorV + ' r%s',
                         [GetLazarusVersionString, rev])
  else
    NewCaption := Format(lisLazarusEditorV, [GetLazarusVersionString]);
  NewTitle := NewCaption;
  if MainBarSubTitle <> '' then
    NewCaption := AddToCaption(NewCaption, MainBarSubTitle)
  else
  begin
    if Project1 <> nil then
    begin
      ProjectName := Project1.GetTitleOrName;
      if ProjectName <> '' then
      begin
        if EnvironmentGuiOpts.Desktop.IDETitleShowsProjectDir then
        begin
          DirName := ExtractFileDir(Project1.ProjectInfoFile);
          TargetOSCPU:=' '+Project1.ActiveBuildMode.CompilerOptions.TargetOS+'-'+Project1.ActiveBuildMode.CompilerOptions.TargetCPU;
          if trim(TargetOSCPU)='-' then TargetOSCPU:=' '+lowercase({$i %FPCTARGETOS%})+'-'+lowercase({$i %FPCTARGETCPU%});
          if DirName <> '' then
            ProjectName := ProjectName + ' ('+DirName+TargetOSCPU+')';
        end;
      end
      else
        ProjectName := lisnewProject;
      NewTitle := AddToCaption(NewCaption, ProjectName);
      if EnvironmentGuiOpts.Desktop.IDETitleShowsBuildMode
      and (Project1.BuildModes.Count > 1) then
        ProjectName:= ProjectName + ' - ' +Project1.ActiveBuildMode.GetCaption;
      NewCaption := AddToCaption(NewCaption, ProjectName);
    end;
  end;
  case ToolStatus of
    itBuilder: NewCaption := Format(liscompiling, [NewCaption]);
    itDebugger:
    begin
      if DebugBoss.Commands - [dcRun, dcStop, dcEnvironment] <> [] then
        NewCaption := Format(lisDebugging, [NewCaption])
      else
        NewCaption := Format(lisRunning, [NewCaption]);
    end;
  else
  end;
  MainIDEBar.Caption := NewCaption;
  Application.Title := NewTitle;
end;

修改后重新编译lazarus就可以在标题栏显示目标OS/CPU:

 

标签:begin,end,ProjectName,标题栏,else,project,NewCaption,lazarus,Project1
From: https://www.cnblogs.com/qiufeng2014/p/18377352

相关文章

  • PyQt5 / PySide 2 + Pywin32 自定义标题栏窗口 + 还原 Windows 原生窗口边框特效
    Bug:当窗口不处于顶层时,如果点击窗体试图将其置于顶层,窗体自带的白边框会突然显示,最长两秒。完整性:尚未添加窗口状态的过渡动画和淡入、淡出动画。其他问题:由于Qt官方在版本6去掉了QtWin,目前暂未找到PyQt6/PySide6的解决方案。准备工作:在同目录下放四张照片:m......
  • WPF 模拟UWP原生窗口样式——亚克力|云母材质、自定义标题栏样式、原生DWM动画 (附我封
    先看一下最终效果,左图为使用亚克力材质并添加组合颜色的效果;右图为MicaAlt材质的效果。两者都自定义了标题栏并且最大限度地保留了DWM提供的原生窗口效果(最大化最小化、关闭出现的动画、窗口阴影、拖拽布局器等)。接下来把各部分的实现一个个拆开来讲讲。一、使用窗口材质特......
  • lazarus 3.4+fpc trunk编译tachart控件出错
    lazarus3.4+fpctrunk编译tachart控件出错原因:最新的fpc禁止访问private引起的修改方法:1、打开lazarus\components\tachart\tadatatools.pas将functionTDataPointDistanceTool.FindRef(APoint:TPoint;AMode:TDataPointMode;ADest:TDataPointTool.TPointRef;AOtherEndS......
  • 解决lazarus 3.xx后在linux编译为Qt出错方法
    今天用lazarus3.4在银河麒麟将应用编译为Qt5出现以下错误信息:Warning:linker:/usr/bin/ld.bfd:/home/lb/fpcupdeluxe34/lazarus/lcl/units/aarch64-linux/qt5/qtint.o:infunction`QTINT$_$TQTWIDGETSET_$__$$_CREATE$$TQTWIDGETSET':Error:qtint.pp:(.text.n_qtint$_$t......
  • lazarus 编译时切换QT5/GTK2的方法
    lazarus编译时可以随时切换QT5/GTK2,方法如下:在project菜单-->options-->compileroptions-->additionsandoverrides点Set"LCLWidgetType"选择QT5或其他然后重新编译应用就可以。带menu、combobox等控件(在银河麒麟)的应用,用GTK2时有深灰的背景,QT5编译的整体会好点。注意:fastrepor......
  • Project: Kill e
    接到上级任务,今天来暗杀\(e\)据说杀死\(e\)的方式就是把他算出来,好吧,现在我们还是来算一下考虑使用如下代数式求解\[e\\text{site:baidu.com}\]虽然我不知道这个代数式的意思是什么,但是我想他应该是某种高级的运算,特别是这个:看起来就像有什么神秘的力量考虑到我完全......
  • WPF Window窗体隐藏标题栏
    一、Window窗体隐藏标题栏1.当想弹出一个窗口的时候,一般会使用ShowDialog()方法,但是Page和UserControl页面没有ShowDialog()方法,那就只能用Window界面,但某些窗口不需要标题栏。使用以下代码隐藏标题栏,同时把标题栏高度设置为0。CaptionHeight属性不为0时,标题栏......
  • Spark MLlib 特征工程系列—特征提取LSH(BucketedRandomProjectionLSH)
    SparkMLlib特征工程系列—特征提取LSH(BucketedRandomProjectionLSH)在这篇文章中,我们将深入探讨Spark中的BucketedRandomProjectionLSH,这是一种用于近似最近邻搜索的技术。文章将覆盖其工作原理、应用场景、Scala代码示例、参数调优以及使用效果分析,确保内容全面、......
  • WPF 自定义顶部标题栏的实现方式
    感谢吕毅,本文主要全是他的思路,哈哈哈。我这里就是简单的做个归纳总结,不讲原理,不讲思路。主打一个拿来主义。感兴趣的朋友可以直接前往他的文章里看一下,讲的很细致,可以照着做一做。我应该是借鉴了很久了,但是一致都没有正经的整理过。本文主要是为了贯彻落实拿来就用,能跑就行这......
  • Lazarus在Win和Linux下的计时
    一、毫秒级Linux平台示例(毫秒)programHighPrecisionTimer;{$modeobjfpc}{$H+}usesBaseUnix,SysUtils,Linux;varStartTime,EndTime:TTimeSpec;Elapsed:Double;begin//获取开始时间clock_gettime(CLOCK_MONOTONIC,@StartTime);//你的代码块Sleep(1);//......