Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MessageDlg - Aktionen werden nicht ausgeführt (https://www.delphipraxis.net/64558-messagedlg-aktionen-werden-nicht-ausgefuehrt.html)

Alexander Roth 5. Mär 2006 10:36


MessageDlg - Aktionen werden nicht ausgeführt
 
Hi,

könnt ihr mir vielleicht sagen wieso keine der meldungen ausgeführt wird? :gruebel:
Delphi-Quellcode:
case MessageDlg('wähle', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of
  mrYes: showmessage('jo');
  mrNo: showmessage('nein');
  mrCancel:showmessage('cancel') ;
end;

Noch seltsamer wird das ganze, wenn man anstadt showmessage einfach exit verwendet. Exit klappt nämlich.:gruebel:

mirage228 5. Mär 2006 10:40

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Hi,

Ich kann keine Problem mit dem Code feststellen, funktioniert alles wie es soll :gruebel:

mfG
mirage228

Alexander Roth 5. Mär 2006 10:43

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Auch nach einem Delphin neustart klappt es nicht. ich bin ratlos. :gruebel:

Auch einen eigenen Button zu kreieren und zu testen bringt nix.


Ui. Bei einem neuen Projekt klappts wie es soll.
was kann denn an einem Projekt nicht stimmen, das er es nicht richtig macht?
Liegt das vielleicht an den Projekt-Einstellungen?

mirage228 5. Mär 2006 10:45

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Zitat von Alexander Roth
Auch nach einem Delphin neustart klappt es nicht. ich bin ratlos. :gruebel:

Hm, in welchem Zusammenhang benutzt Du den Code? Was passiert wenn Du einfach ein neues, leeres Formular erstellst und den Code von oben dort ausführst?

mfG
mirage228

inherited 5. Mär 2006 11:01

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Zitat von Alexander Roth
Auch nach einem Delphin neustart klappt es nicht. ich bin ratlos. :gruebel:

Auch einen eigenen Button zu kreieren und zu testen bringt nix.


Ui. Bei einem neuen Projekt klappts wie es soll.
was kann denn an einem Projekt nicht stimmen, das er es nicht richtig macht?
Liegt das vielleicht an den Projekt-Einstellungen?

Meine Kristallkugel ist grad in reperatur, tut mir leid, wie wärs wenn du den ganzen code einfach mal postest?

Alexander Roth 5. Mär 2006 11:23

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Also meine Projekt (Primfaktoren) besteht aus 10 Units und ich benutzte DEC. Außerdem verwende ich ein paar Jedi Components.
Eigentlich sollte es ein Freeware und noch kein Open-Source sein.

Wie ich schon erwähnt habe, kann ich einen neuen Button erstellen den obrigen Code einfügen und es klappt nicht.

Habt ihr vielleicht eine Idee wie man in einem Code solch gravierende veränderungen des Compilers vornehmen kann? Oder in den Einstellungen?

Ach ja wenn man an die Stellen mit showmessage einen haltepunkt setzt wird nicht angehalten. Wenn da aber exit steht wird angehalten.


Ohh ich habe eben etwas entdeckt.
Wenn ich den gleichen Code in eine andere Unit einfüge (und nicht mehr in unti1), klappt es.

Ich probiere mal aus ob es an den benutzten Units liegen kann.

Flocke 5. Mär 2006 14:11

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Möglichkeit 1: Du hast die Konstanten mrYes, mrNo usw. irgendwo neu definiert. Spring mal über die rechte Maustaste zur Deklaration der Konstanten.

Möglichkeit 2: Du hast ShowMessage irgendwo neu definiert. Versuche dort mal das gleiche.

Alexander Roth 5. Mär 2006 17:40

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Möglichkeit 1: Du hast die Konstanten mrYes, mrNo usw. irgendwo neu definiert. Spring mal über die rechte Maustaste zur Deklaration der Konstanten.
Möglichkeit 2: Du hast ShowMessage irgendwo neu definiert. Versuche dort mal das gleiche.
Nein. Daran liegt es nicht.

inherited 5. Mär 2006 18:35

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
ehlich gesagt bin ih jetzt etwas ratlos. Wie wäre es wenn du mal den gesamten code postest oder per pm schickst

Alexander Roth 5. Mär 2006 18:45

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Soo...
Delphi-Quellcode:
case 2 of
  1: showmessage('jo');
  2: showmessage('nein');
end;
Das klappt seltsamerweise.

Alexander Roth 5. Mär 2006 19:05

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
:wall: :wall: :wall:

Hier Hier habe ich endlich was gefunden.
Und es löst das Problem.

Das erklärt auch wieso es in einer anderen Unit (in der QDialogs nicht eingebunden war) geklappt hat.
:dancer: :dancer: :dancer:



So klappts (auch wenn qdialogs eingebunden ist):
Delphi-Quellcode:
case dialogs.MessageDlg('xrh', dialogs.mtConfirmation, dialogs.mbYesNoCancel, 0) of
  mrYes: showmessage('yes');
  mrNo: showmessage('no');
  mrCancel: showmessage('concel');
end;
Danke für eure Mühe.

Schwedenbitter 9. Sep 2008 17:56

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Gibt es auch eine/mehrere andere Möglichkeit/en?

Ich frage deshalb, weil ich die Dialoge (MessageDlg aus Dialogs) üblicherweise über z.B. [mbCancel,mbRetry] zusammenstelle und auch über die definierten Rückgabewerte wie z.B. mrOK abfrage. Bei der Aufruf-Variante Dialogs.MessageDlg habe ich nur Möglichkeiten wie z.B. mbYesNoCancel gefunden. Was mir nichts nützt.

Ich brauche QDialogs im übrigen ausschließlich für die Funktion SelectDirectory() und überlege daher schon, den Quelltext entsprechend zu übernehmen und mir eine separate Unit dafür zu basteln.

Bitte bitte sagt mir, dass es einfacher geht. :wall:

Schwedenbitter 9. Sep 2008 18:05

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Zitat von Schwedenbitter
Gibt es auch eine/mehrere andere Möglichkeit/en?
...
Bitte bitte sagt mir, dass es einfacher geht. :wall:

Habe es selber herausgefunden. Wie so oft im Leben gilt auch bei Delphi offenbar der Grundsatz: "Wer zuletzt lacht, lacht am besten." Es hat bei mir geholfen, die Reihenfolge bei der Uses-Anweisung so zu ändern, das erst QDialogs und dann Dialogs eingebunden wird. Ich vermute, dass Dialogs dadurch QDialogs wieder (teilweise ) überschreibt.

uligerhardt 9. Sep 2008 18:31

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Zitat von Schwedenbitter
Ich brauche QDialogs im übrigen ausschließlich für die Funktion SelectDirectory() und überlege daher schon, den Quelltext entsprechend zu übernehmen und mir eine separate Unit dafür zu basteln.

Bitte bitte sagt mir, dass es einfacher geht. :wall:

Es geht einfacher. Setze im Delphi-Editor den Cursor auf SelectDirectory, drücke F1 und lies. :mrgreen:

Die ganzen Q-Units (QDialogs, QForms, ...) nimmt man nur, wenn man ein CLX-Programm (zwecks Linux-Tauglichkeit) schreiben will. Und das will man nicht. :twisted:

Uli.

uligerhardt 9. Sep 2008 18:32

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Zitat von Schwedenbitter
Habe es selber herausgefunden. Wie so oft im Leben gilt auch bei Delphi offenbar der Grundsatz: "Wer zuletzt lacht, lacht am besten." Es hat bei mir geholfen, die Reihenfolge bei der Uses-Anweisung so zu ändern, das erst QDialogs und dann Dialogs eingebunden wird. Ich vermute, dass Dialogs dadurch QDialogs wieder (teilweise ) überschreibt.

Hast du das exe schon mal auf einem Rechner ohne Delphi ausprobiert?

Schwedenbitter 9. Sep 2008 22:19

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Zitat von uligerhardt
Hast du das exe schon mal auf einem Rechner ohne Delphi ausprobiert?

Nein! Was erwartet mich dann?

uligerhardt 10. Sep 2008 09:04

Re: MessageDlg - Aktionen werden nicht ausgeführt
 
Zitat:

Zitat von Schwedenbitter
Nein! Was erwartet mich dann?

Ich hab's selber noch nicht ausprobiert, aber ich vermute, dass er diverse DLLs vermisst, deren Namen mit q (wie Qt) beginnen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz