Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!
Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.
Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.
Ik heb wat lopen prullen met "CocoaPromptUser" in de hoop wat meer macOS compliant dialoog vensters te produceren ... Het idee was een overload te maken voor MessageDlg (de laatste parameter, de form, is het verschil). (ik heb mijn code ook in het officiële Lazarus forum geplaatst)
unit Unit1;
{$mode objfpc}{$H+}
{$modeswitch objectivec1}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls
, CocoaInt, CocoaAll;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
function MessageDlg( aCaption, aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultButton: TMsgDlgBtn; const Sender:TForm): TModalResult;
var
ButtonArrayPtr : PLongint; // Pointer to the button array
ButtonCount : Integer; // Number of buttons
Counter : integer;
NSParentWindow : NSWindow; // Parent Form that the sheet is attached to
DlgTypeID : longint; // DialogType for conversion from TMsgDlgType
ButtonIDs : array of Longint; // ButtonTypes for conversion from TMsgDlgBtn array
ButtonPressed : longint; // ModalResult which gets converted to TModalResult
aButton : TMsgDlgBtn;
DefaultButtonIndex : integer;
ReversedButtons : TMsgDlgButtons;
begin
// Show regular message dialog if no form assigned or form not showing
if (not Assigned(Sender)) or (not Sender.Visible) then
begin
Result := MessageDlg(aCaption, aMsg, DlgType, Buttons, HelpCtx, DefaultButton, Sender);
exit;
end;
{ Convert array of TMsgDlgBtn to idButtonXYZ (See LCLType) and convert default button (TMsgDlgBtn) to index }
ButtonCount := 0;
DefaultButtonIndex := -1;
ReversedButtons := [];
Result := mrNone;
if Buttons<>[] then
begin
for aButton in Buttons do
ReversedButtons := [aButton] + ReversedButtons;
for aButton in ReversedButtons do
begin
SetLength(ButtonIDs,ButtonCount+1);
case aButton of
mbYes : ButtonIDs[ButtonCount]:= 4;
mbNo : ButtonIDs[ButtonCount]:= 5;
mbOK : ButtonIDs[ButtonCount]:= 1;
mbCancel : ButtonIDs[ButtonCount]:= 2;
mbAbort : ButtonIDs[ButtonCount]:= 7;
mbRetry : ButtonIDs[ButtonCount]:= 8;
mbIgnore : ButtonIDs[ButtonCount]:= 9;
mbAll : ButtonIDs[ButtonCount]:= 10;
mbNoToAll : ButtonIDs[ButtonCount]:= 12;
mbYesToAll : ButtonIDs[ButtonCount]:= 11;
mbHelp : ButtonIDs[ButtonCount]:= 3;
else ButtonIDs[ButtonCount]:= 6; // mbClose
end;
if (aButton=DefaultButton) then
DefaultButtonIndex := ButtonCount;
inc(ButtonCount);
end;
end;
if (ButtonCount>0) then
ButtonArrayPtr:=@{%H-}ButtonIDs[0]{%H+}
else
ButtonArrayPtr:=nil;
{ Convert TMsgDlgType to idDialogXYZ (See LCLType) }
case DlgType of
mtWarning : DlgTypeID := $FF +1;
mtError : DlgTypeID := $FF +2;
mtInformation : DlgTypeID := $FF +3;
mtConfirmation : DlgTypeID := $FF +4;
else DlgTypeID := $FF +5; //mtCustom:
end;
NSParentWindow := nil;
if Assigned(Sender) then
begin
if not Sender.HandleAllocated then Exit;
NSParentWindow := NSView(Sender.Handle).window;
end
else
NSParentWindow := NSApplication.sharedApplication.keyWindow;
if Assigned(NSParentWindow) then
begin
ButtonPressed := CocoaPromptUser(aCaption, aMsg ,DlgTypeID, ButtonArrayPtr, ButtonCount, DefaultButtonIndex, 0, NSParentWindow, true);
case ButtonPressed of
1 : Result := mrOK;
2 : Result := mrCancel;
//3: Result := mrHelp // Help does not return from modal;
4 : Result := mrYes;
5 : Result := mrNo;
6 : Result := mrClose;
7 : Result := mrAbort;
8 : Result := mrRetry;
9 : Result := mrIgnore;
10 : Result := mrAll;
11 : Result := mrYesToAll;
12 : Result := mrNoToAll
else Result := mrNone;
end;
end
else
Result := mrNone;
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlg('Caption','',mtInformation,[mbYes,mbNo,mbIgnore],0,mbYes,self);
end;
end.
OldApps (iTunes) Hier kun je oudere iTunes versies (Windows) vinden ...
Down For Every One or Just Me? Handig als je wilt weten dat een onbereikbare link een probleem is in jouw netwerk, of dat iedereen er last van heeft.
WhyNoPadLock Ontdek waarom jouw website geen groen slotje laat zien bij HTTPS gebruik.
AlternativeTo Geweldige website als je een alternatief zoekt voor en programma, bijvoorbeeld omdat het programma niet precies doet wat je wilt, of omdat het programma dat je in gedachten hebt niet voor jouw computer platform bestaat.
Osceola, WI Het dorp wat ik ook als "thuis" zie - Osceola Wisconsin!
0xED - Hex Editor Snel, compact en erg flexibele Hex (hexadecimaal) editor voor MacOS gebruikers.
Links Pagina Deze en meer van onze favoriete link vindt je op de Links Pagina.
New Downloads
RenameMyTVSeries-2.3.2-QT5-Linux-x64-static-ffmpeg.tar.xzDate: 2025-07-10 - Size: 78.3 MBRename My TV Series, voor Linux (64 bit QT5), een klein hulpprogramma om TV Show episode bestanden correct te hernoemen. Deze bundel bevat statisch (grote) gelinkte versies van ffmpeg en ffprobe.
RenameMyTVSeries-2.3.2-QT5-Linux-x64-shared-ffmpeg.tar.xzDate: 2025-07-10 - Size: 1.9 MBRename My TV Series, voor Linux (64 bit QT5), een klein hulpprogramma om TV Show episode bestanden correct te hernoemen. Deze bundel bevat ffmpeg en ffprobe die afhankelijk zijn van gedeelde libraries op jouw systeem.
RenameMyTVSeries-2.3.2-GTK-Linux-x64-static-ffmpeg.tar.xzDate: 2025-07-10 - Size: 78.3 MBRename My TV Series, voor Linux (64 bit GTK), een klein hulpprogramma om TV Show episode bestanden correct te hernoemen. Deze bundel bevat statisch (grote) gelinkte versies van ffmpeg en ffprobe.
RenameMyTVSeries-2.3.2-GTK-Linux-x64-shared-ffmpeg.tar.xzDate: 2025-07-10 - Size: 1.9 MBRename My TV Series, voor Linux (64 bit GTK), een klein hulpprogramma om TV Show episode bestanden correct te hernoemen. Deze bundel bevat ffmpeg en ffprobe die afhankelijk zijn van gedeelde libraries op jouw systeem.
RenameMyTVSeries-2.3.2-Windows-x64-setup.exeDate: 2025-07-10 - Size: 48.8 MBRename My TV Series, voor Windows (64 bits Intel), een klein hulpprogramma om TV Show episode bestanden correct te hernoemen. Deze bundel bevat statisch (grote) gelinkte versies van ffmpeg en ffprobe.
RenameMyTVSeries-2.3.2-macOS-Universal.dmgDate: 2025-07-10 - Size: 98.5 MBRename My TV Series, voor macOS (Universal Binary - Apple Silicon ARM en 64 bits Intel), een klein hulpprogramma om TV Show episode bestanden correct te hernoemen. Deze bundel bevat statisch (grote) gelinkte universal binary versies van ffmpeg en ffprobe.
Downloads Page Find these and more Downloads on the Downloads Page, where you will also find articles references, operating system requirements and categories.
Amazon Ads
Ondersteun ons door te winkelen bij Amazon.com, klik deze link, of klik een van de onderstaande links …
You can also sponsor us through these Amazon offerings:
Vriendelijk verzoek om te overwegen Ad Blocking uit te zetten voor onze website.We zijn afhankelijk van inkomen uit Advertenties om de website te kunnen draaien.Je kunt ons ook op andere manieren ondersteunen (zie Ondersteun ons links bovenin).