lazarus
跨平台free pascal语言ide工具,社区 http://www.fpccn.com/

下载 ftp://freepascal.dfmk.hu/pub/lazarus/

https://sourceforge.net/projects/lazarus/files/

号称一次编码,到处编译,window linux macos 等各种平台都可用。borland的windows下的delphi也是pascal开发工具但是收费,开源的lazarus免费用用挺好

大的项目不说,小的工具还是值得一用,今天整了一段跨平台代码到macos环境试一下

首先要安装,体验结果ftp下载网址网速不快,晚上的时候http网址也不快到了早上没人用http网址还算比较快

安装完成,根据教程先整合分体式ide为1体式,谁知安装了anchordockingdsgn.lpk相关dock搜索出来的3个包之后,重新构建重启后还是没变化?

原来是重新构建的文件不在系统路径,没权限写进去,在~/.lazarus/bin/lazarus,自己手动复制到/Library/Lazarus/目录下覆盖下即可,修改sourceeditor.pp和sourceeditor.lfm解决源代码编辑器不能输入中文也是注意提前给权限写文件否则只读文件不能编辑


procedure TForm1.FormCreate(Sender: TObject);
varIniFile: TIniFile;
beginif FileExists(ExtractFilePath(ParamStr(0)) + 'Test.ini') thenbeginIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Test.ini');Edit1.Text := IniFile.readString('item', 'browser', '');IniFile.Free;end;StatusBar1.SimpleText := '已经加载:' + ExtractFilePath(ParamStr(0)) + 'Test.ini';
end;procedure TForm1.Button1Click(Sender: TObject);
varIniFile: TIniFile;
beginIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Test.ini');IniFile.writeString('item', 'browser', Edit1.Text);IniFile.Free;
end;procedure TForm1.Button2Click(Sender: TObject);
beginif OpenDialog1.Execute thenEdit1.Text := OpenDialog1.FileName;
end;procedure TForm1.correctBtnClick(Sender: TObject);
varIniFile: TIniFile;
beginif FileExists(Edit1.Text) thenif '.desktop' = ExtractFileExt(Edit1.Text) thenbeginIniFile := TIniFile.Create(Edit1.Text);Edit1.Text := IniFile.ReadString('Desktop Entry', 'Exec', '');IniFile.Free;end;if '.app' = ExtractFileExt(Edit1.Text) thenbeginOpenDialog1.InitialDir := Edit1.Text;if OpenDialog1.Execute thenEdit1.Text := OpenDialog1.FileName;end;
end;procedure TForm1.Edit1Change(Sender: TObject);
beginif pos(' ', Edit1.Text) > 0 thenStatusBar1.SimpleText :='请检查是否存在空格,请把空格和之后的参数去掉';if '.desktop' = ExtractFileExt(Edit1.Text) thenStatusBar1.SimpleText :='linux环境请检查是否是.desktop文件,是的话需要修正';if '.app' = ExtractFileExt(Edit1.Text) thenStatusBar1.SimpleText :='macos环境请检查是否是.app目录, 是的话需要修正';if FileExists(Edit1.Text) thenbeginattr := FileGetAttr(Edit1.Text);if (attr and faSymLink) > 0 thenStatusBar1.SimpleText :='如果不能正常运行,请检查是否是链接,尝试原文件.文件属性:'+IntToStr(attr);end;
end;//x-www-browser     http://www.baidu.com
procedure TForm1.testBtnClick(Sender: TObject);
varProcess: TProcess;
beginif pos(' ', Edit1.Text) > 0 thenStatusBar1.SimpleText := '请检查可执行文件路径是否存在空格';Process := TProcess.Create(nil);try//ExecuteProcess The calling process runs synchronously: it 'hangs' until the external program has finished//ExecuteProcess(MarshaledAString(UTF8String(Edit1.Text)),'https://blog.csdn.net/qiaozhangchi',[ExecInheritsHandles]);// if RunCommand(Edit1.Text,['https://blog.csdn.net/qiaozhangchi'],s) thenProcess.InheritHandles := False;Process.Options := [];Process.ShowWindow := swoShow;Process.Executable := Edit1.Text;Process.Parameters.Add('https://blog.csdn.net/qiaozhangchi');Process.Execute;StatusBar1.SimpleText := '已经执行';excepton E: EOSError doStatusBar1.SimpleText :='请检查文件路径是否有空格或不能直接执行的后缀名,请修正';end;Process.Free;
end;  

跨平台代码就是好,这一段代码包含几个知识点

  • ini文件读写
  • TProcess启动另外程序
  • 打开文件对话框
  • 状态栏控件

lazarus在macos里调用外部浏览器打开一个网址相关推荐

  1. 分享!如何实现微信扫二维码调用外部浏览器打开指定页面的功能

    需求概述 分享链接已经成为手机应用一个非常重要的推广传播形式.为了提高转化率,就需要让用户不管是在微信中直接打开链接还是扫描二维码都能直接下载app. 由于微信对第三方应用管的非常严格,故目前的大环境 ...

  2. 微信扫二维码调用外部浏览器打开指定页面

    场景分析 很多朋友都已经习惯在微信内分享网页链接和二维码了,通过扫描二维码下载APP或打开网页也成为大家惯用且非常方便的方式了.如此微信就成为了扫描二维码重要的工具,说到二维码大家第一反应就是打开微信 ...

  3. 如何实现微信扫二维码调用外部浏览器打开指定页面的功能

    ​需求分析 目前的APP基本都支持二维码扫描下载.由于微信现在是主流的聊天软件,90%的用户都是通过微信分享APP的,再从分享的链接下载apk/ios包. 但是微信会自动屏蔽含安装包文件下载的链接,导 ...

  4. 微信内浏览器不支持下载APK文件的解决方案 微信中点击链接调用外部浏览器打开

    需求:在微信h5页面中下载第三方app -- 安卓, 直接下载apk文件包:iphone,跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX ...

  5. 分享!如何分分钟实现微信扫二维码调用外部浏览器打开指定页面的功能

    需求分析 现在微信分享二维码进行推广的方式已经成为大家常用且便捷的方法了.但是经常会有分享出去的链接或二维码都无法正常打开指定页面,提示"已停止访问网页",故导致无法下载app. ...

  6. 5调用外部浏览器打开代码_浏览器事件循环

    浏览器运行过程中会同时面对多种任务,用户交互事件(鼠标.键盘).网络请求.页面渲染等.而这些任务不能是无序的,必须有个先来后到,浏览器内部需要一套预定的逻辑来有序处理这些任务,因此浏览器事件循环诞生了 ...

  7. 微信扫一扫功能扫描二维码调用外部浏览器打开指定页面实现微信中下载APP的功能

    需求分析 分享链接已经成为手机应用一个非常重要的推广传播形式.为了提高转化率,就需要用户不管是在微信内直接打开链接还是扫描二维码都能直接打下载app. 但由于微信对第三方应用管的非常严格,故目前的大环 ...

  8. 微信朋友圈分享链接调用外部浏览器打开指定URL链接是如何实现的

    做微信营销活动或者APK下载推广时候,域名被经常被封,做到微信中正常使用呢?这就要借助一些工具来实现有效的操作. 先来认识一下微信屏蔽的原理.按原理逐个攻破,本人做防封一年来自认为得心应手,整理如下: ...

  9. java调用指定浏览器打开指定网址

    利用java.lang.ProcessBuilder类创建系统进程的能力,通过浏览器地址启动浏览器,并将网址作为参数传送给浏览器. ProcessBuilder类是J2SE 1.5在java.lang ...

最新文章

  1. 基于OpenCV的简单人脸识别系统
  2. 31天重构学习笔记19. 提取工厂类
  3. Oracle plsql 月历
  4. 无苹果,怎么编写内置 iOS 应用?
  5. C99的新关键字_Bool
  6. 鸿蒙应用开发在线体验,鸿蒙应用开发-DevEco Studio 模板体验(二)
  7. Packet Tracer 思科模拟器入门教程 之十 路由器单臂路由配置
  8. 浅析《数据安全能力成熟度模型》
  9. 设计模式-word版
  10. 薪资16K,进华为外包怎么样?
  11. 《人人都在说谎:赤裸裸的数据真相》读书笔记1
  12. 深度Linux声卡驱动安装,Deepin Linux 的声卡驱动有点小问题
  13. 浅夏,盈一眸清凉,捻一指馨香
  14. 零基础零起步,三周带你重塑《钢铁侠》之路
  15. TestOpenWriter
  16. java 转化罗马数字._Java刷LeetCode:整数转罗马数字
  17. python控制qq群_Python3 selenium 实现QQ群接龙自动化功能
  18. Windows 10安全指南
  19. laravel tcg/voyager 安装问题记录
  20. 在RSS服务器上订阅网站,快速服务器上的RSS订阅实现

热门文章

  1. CSS3动画属性总结
  2. 多暂估的库存如何调整_库存是多暂估的如何冲销?
  3. 牢记使命让你的公司走的更远
  4. Chrome插件:拦截页面请求
  5. 磊科762虚拟服务器,实测NW762无线传速的平台、方法_netcore NW762_网络设备评测-中关村在线...
  6. Ruby 教程(一)
  7. 极坐标格式算法MATLAB,极坐标格式算法,polar format algorithm,音标,读音,翻译,英文例句,英语词典...
  8. 智能手机是计算机的一种吗,智能手机是什么
  9. 生鲜配送系统开发解决方案
  10. 未来计算机发展四大趋势,仪器仪表