Difference between revisions of "Mac Show Application Title, Version, and Company"
From Lazarus wiki
Jump to navigationJump to searchCringer000 (talk | contribs) (New Page about "Mac Show Application Title, Version, and Company") |
Jwdietrich (talk | contribs) |
||
Line 54: | Line 54: | ||
[[File:About1.png]] | [[File:About1.png]] | ||
|} | |} | ||
+ | |||
+ | [[Category:Mac OS X]] |
Revision as of 18:46, 7 April 2013
For those who want to show the Application Title, Version, and Company for an application on the Mac, this can be done using the following method:
CODE FOR SHOWING APPLICATION TITLE, VERSION, AND COMPANY |
---|
uses MacOSAll, CarbonProc, StrUtils; var BundleID: String; BundleName: String; BundleRef: CFBundleRef; BundleVer: String; CompanyName: String; KeyRef: CFStringRef; ValueRef: CFTypeRef; function GetInfoPlistString(const KeyName : string) : string; begin try Result := ; BundleRef := CFBundleGetMainBundle; if BundleRef = nil then Exit; {Executable not in an app bundle?} KeyRef := CFStringCreateWithPascalString(nil,KeyName,kCFStringEncodingUTF8); ValueRef := CFBundleGetValueForInfoDictionaryKey(BundleRef, KeyRef); if CFGetTypeID(ValueRef) <> CFStringGetTypeID then Exit; {Value not a string?} Result := CFStringToStr(ValueRef); except on E : Exception do ShowMessage(E.Message); end; FreeCFString(KeyRef); end; procedure TForm1.FormCreate(Sender: TObject); begin try Form1.Caption := 'About '+Application.Title; StaticTextAppTitle.Caption := Application.Title; BundleID := GetInfoPlistString('CFBundleIdentifier'); // CompanyName is presumed to be in the form of: com.Company.AppName CompanyName := AnsiMidStr(BundleID,AnsiPos('.',BundleID)+1,Length(BundleID)); CompanyName := AnsiMidStr(CompanyName,0,AnsiPos('.',CompanyName)-1); BundleVer := GetInfoPlistString('CFBundleVersion'); StaticTextAppVer.Caption := Application.Title+' version '+BundleVer; StaticTextCompany.Caption := CompanyName; except on E : Exception do ShowMessage(E.Message); end; end; |