Äquivalente Funktion zu MessageDlg?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Äquivalente Funktion zu MessageDlg?
Gibt es in der msegui eine zu Delphi/Lazarus äquivalente Funktion zu MessageDlg?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
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
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
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
das ist immer das gleiche in msegui. Es gibt alles in allen Variationen aber unter anderem Namen und man findet es nicht
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
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?
In Lazarus gibt es eine Variable Screen vom Typ TScreen mit z.B. der property PixelsPerInch. Wo stehen diese Information bei msegui?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
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.
Informationen zur Bildschirmgrösse sind in der "application" Instanz vorhanden:
PixelsPerInch ist (noch) nicht implementiert. Vermutlich könnte xrandr die Info unter Linux liefern.
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.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
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?
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?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
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.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
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.
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.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
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.
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
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
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Äquivalente Funktion zu MessageDlg?
Gibt es auch eine Entsprechung für InputQuery/InputQueryEx um den Anwender einen Text eingeben lassen zu können?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
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
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
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.