Äquivalente Funktion zu MessageDlg?

Forum für alles rund um die MSEide und MSEgui

Äquivalente Funktion zu MessageDlg?

Beitragvon fliegermichl » 7. Nov 2017, 13:28 Äquivalente Funktion zu MessageDlg?

Gibt es in der msegui eine zu Delphi/Lazarus äquivalente Funktion zu MessageDlg?
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 7. Nov 2017, 13:52 Re: Äquivalente Funktion zu MessageDlg?

Ja, in unit widgets:
Code: Alles auswählen
 
//following routines are thread safe and run in main thread context
//exttext will be appended for copy to clipboard
function showmessage(const atext,caption: msestring;
                     const buttons: array of modalresultty;
                     const defaultbutton: modalresultty = mr_cancel;
                     const noshortcut: modalresultsty = [];
                     const minwidth: integer = 0;
                     const exttext: msestring = '';
                     const position: messagepositionty = mepo_default): modalresultty; overload;
function showmessage(const atext,caption: msestring;
                     const buttons: array of modalresultty;
                     const defaultbutton: modalresultty;
                     const noshortcut: modalresultsty;
                     const minwidth: integer;
                     const actions: array of notifyeventty;
                     const exttext: msestring = '';
                     const position: messagepositionty = mepo_default): modalresultty; overload;
function showmessage(const atext,caption: msestring;
                     const buttons: array of modalresultty;
                     const adest: rectty; const awidget: twidget = nil;
                     //origin = awidget.clientpos, screen if awidget = nil
                     const placement: captionposty = cp_bottomleft;
                     const defaultbutton: modalresultty = mr_cancel;
                     const noshortcut: modalresultsty = [];
                     const minwidth: integer = 0;
                     const exttext: msestring = ''): modalresultty; overload;
function showmessage(const atext: msestring; const caption: msestring = '';
                     const minwidth: integer = 0;
                     const exttext: msestring = ''): modalresultty; overload;
procedure showmessage1(const atext: msestring; const caption: msestring);
            //for ps
procedure showerror(const atext: msestring; caption: msestring = 'ERROR';
                     const minwidth: integer = 0;
                     const exttext: msestring = '');
                            //no wait if not in main thread                     
function askok(const atext: msestring; const caption: msestring = '';
                     const defaultbutton: modalresultty = mr_ok; 
                     const minwidth: integer = 0): boolean;
                             //true if ok pressed
function askyesno(const atext: msestring; const caption: msestring = '';
                     const defaultbutton: modalresultty = mr_yes; 
                     const minwidth: integer = 0): boolean;
                            //true if yes pressed
function askconfirmation(const atext: msestring;
                     const defaultbutton: modalresultty = mr_yes; 
                     const minwidth: integer = 0): boolean;
                            //true if yes pressed
function askconfirmationcancel(const atext: msestring;
                     const defaultbutton: modalresultty = mr_yes; 
                     const minwidth: integer = 0): modalresultty;
function askyesnocancel(const atext: msestring; const caption: msestring = '';
                     const defaultbutton: modalresultty = mr_yes; 
                     const minwidth: integer = 0): modalresultty;
function confirmsavechangedfile(const filename: filenamety;
               out modalresult: modalresultty; multiple: boolean = false): boolean;
function showsyserrormessage(const error: syserrorty;
                            const text: msestring = ''): boolean;
                               //returns true for sye_ok
function showsyserrormessage(const error: syserrorty;
                  const sender: tobject; const text: msestring = ''): boolean;
                               //returns true for sye_ok
 
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 7. Nov 2017, 14:13 Re: Äquivalente Funktion zu MessageDlg?

Danke,

das ist immer das gleiche in msegui. Es gibt alles in allen Variationen aber unter anderem Namen und man findet es nicht :-)
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon fliegermichl » 7. Nov 2017, 14:24 Re: Äquivalente Funktion zu MessageDlg?

Dann gleich noch einer.

In Lazarus gibt es eine Variable Screen vom Typ TScreen mit z.B. der property PixelsPerInch. Wo stehen diese Information bei msegui?
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 7. Nov 2017, 14:36 Re: Äquivalente Funktion zu MessageDlg?

Die unit "widgets" ist sicher auch nicht der ideale Ort für diese Funktionen. Von den Abhängigkeiten passen sie zwar hinein und ich wollte keine eigene showmessage-unit einführen. "showmessage" in 'Search'-'Find in Files' zeigt sie auch.
In Lazarus gibt es eine Variable Screen vom Typ TScreen mit z.B. der property PixelsPerInch. Wo stehen diese Information bei msegui?

Informationen zur Bildschirmgrösse sind in der "application" Instanz vorhanden:
Code: Alles auswählen
 
   function screenrect(const awindow: twindow = nil): rectty;
                          //nil -> virtualscreeen
   function workarea(const awindow: twindow = nil): rectty;
                          //nil -> current active window
 

PixelsPerInch ist (noch) nicht implementiert. Vermutlich könnte xrandr die Info unter Linux liefern.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 7. Nov 2017, 14:52 Re: Äquivalente Funktion zu MessageDlg?

Danke.
Jetzt kommt es Schlag auf Schlag :-)

In Lazarus kann man mit Screen.Cursor := crHourGlass then Mauszeiger zur Eieruhr machen. (Ja ich hab mit find in files nach crHourGlass gesucht).
Wie kann ich den Cursor in msegui ändern?
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 7. Nov 2017, 15:29 Re: Äquivalente Funktion zu MessageDlg?

Code: Alles auswählen
 
application.mouse.shape:= cr_wait;
 
Oder besser:
application.beginwait();
application.endwait();
 

Nach "application.beginwait()" kann man mit "application.waitescaped()" prüfen, ob Esc gedrückt wurde und die Operation entsprechend abbrechen.
Es gibt auch "application.waitdialog()", dabei wird ein Dialogfenster mit cancel-button angezeigt.
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon tukimati839 » 8. Nov 2017, 04:28

[url="https://xuhuongdongphuc.vn/dong-phuc-benh-vien-ao-blouse/"]áo blouse[/url]
[url="https://xuhuongdongphuc.vn/dong-phuc-bep/ao-bep/"]áo bếp[/url]
[url="https://xuhuongdongphuc.vn/dong-phuc-bep/non-bep/"]nón bếp[/url]
[url="https://xuhuongdongphuc.vn/dong-phuc-bep/tap-de/"]tạp dề[/url]
tukimati839
 
Beiträge: 1
Registriert: 1. Nov 2016, 17:25
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon fliegermichl » 8. Nov 2017, 09:22 Re: Äquivalente Funktion zu MessageDlg?

Wieder mal alles da und zwar perfekt nur eben leider nicht dokumentiert.

Ups, da war ich zu schnell. Wenn ich Application.mouse.Shape := cr_wait; eintippsele dann hat der Compiler gemeckert "identifier idents no member "mouse". Darauf hin habe ich mittels "git pull" mseide+msegui aktualisiert aber keine Änderung.

... und schon wieder zu schnell. Wenn man msegui.pas nach mseapplication.pas einbindet, dann kennt er die Property mouse.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 8. Nov 2017, 09:57 Re: Äquivalente Funktion zu MessageDlg?

fliegermichl hat geschrieben:Wieder mal alles da und zwar perfekt nur eben leider nicht dokumentiert.

Ein Crowdfunding Projekt oder viele Donationen könnten helfen. ;-)
http://msegui.com/?q=node/7
Ups, da war ich zu schnell. Wenn ich Application.mouse.Shape := cr_wait; eintippsele dann hat der Compiler gemeckert "identifier idents no member "mouse". Darauf hin habe ich mittels "git pull" mseide+msegui aktualisiert aber keine Änderung.

Vermutlich greifst du auf mseapplication.application statt msegui.application zu. In uses sollte "msegui" nach "mseapplication" stehen. Oder:
Code: Alles auswählen
 
 msegui.application.mouse.shape:= cr_wait;
 

cr_wait ist in unit "msepointer".
Ich empfehle stattdessen application.beginwait()/endwait() zu verwenden.
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon mse » 8. Nov 2017, 18:50 Re: Äquivalente Funktion zu MessageDlg?

mse hat geschrieben:PixelsPerInch ist (noch) nicht implementiert. Vermutlich könnte xrandr die Info unter Linux liefern.

Git master ce1a04378dab872feda3b9cc2a37ff7ce7fcceed hat:
Code: Alles auswählen
 
 tguiapplication = class(tcustomapplication)
[...]
   function ppmm(const awindow: twindow = nil): complexty;
         //nil -> current active window, pixel per mm,
         //result.re -> horizontal
         //result.im -> vertical
 
 
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 5. Dez 2017, 11:51 Re: Äquivalente Funktion zu MessageDlg?

Gibt es auch eine Entsprechung für InputQuery/InputQueryEx um den Anwender einen Text eingeben lassen zu können?
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

Beitragvon mse » 5. Dez 2017, 12:22 Re: Äquivalente Funktion zu MessageDlg?

lib/common/dialogs/

Code: Alles auswählen
 
unit msestringenter;
[...]
//functions below are threadsave
function stringenter(var avalue: msestring; const text: msestring = '';
                               const acaption: msestring = ''): modalresultty;
 
function checkpassword(const password: msestring): boolean; overload;
function checkpassword(const password: msestring; var modalresult: modalresultty): boolean; overload;
 
unit mseintegerenter;
[...]
function integerenter(var avalue: integer; const amin,amax: integer;
         const text: msestring = ''; const acaption: msestring = ''): modalresultty;
//threadsave
 
unit mserealenter;
[...]
function realenter(var avalue: realty; const amin,amax: realty; const text: msestring = '';
                     const acaption: msestring = ''): modalresultty;
//threadsave
 
mse
 
Beiträge: 1713
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon fliegermichl » 5. Dez 2017, 12:39 Re: Äquivalente Funktion zu MessageDlg?

Danke, so ganz langsam wird meine Arbeit mit MSEgui produktiver. Ich komme ganz gut voran. Manchmal hängt es eben noch an solchen Kleinigkeiten.
fliegermichl
 
Beiträge: 145
Registriert: 9. Jun 2011, 08:42

• Themenende •

Zurück zu MSEide und MSEgui



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron
porpoises-institution
accuracy-worried