Ohne es explizit ausprobiert zu haben, würde ich bei dieser Konstellation:
Delphi-Quellcode:
procedure foo;
begin
ConfirmAction( 'Willst du Drucken?', PrintFoo );
ConfirmAction( 'Willst du Speichern?', SaveFoo );
end;
erwarten, dass der Druck-Dialog erscheint und darüber der Speicher-Dialog.
Ich habe - ohne zu fragen - Dein Beispiel genutzt. Es ist genau anders herum. Erst kommt der zweite Dialog (hier das Speichern), danach dann der erste Dialog (hier das Drucken).
Dann habe ich mich unglücklich ausgedrückt: Wenn der Speicher-Dialog
über dem Drucken-Dialog liegt, dann muss
erst der Speicher-Dialog und
dann der Drucken-Dialog bearbeitet werden.
Das Handling ist also ein Stack (Last In First Out) und genau das ist auch zu erwarten gewesen.
Und ich wette dass zuerst der Drucken-Dialog erzeugt und angezeigt wird, dann der Speicher-Dialog erzeugt und angezeigt wird - da aber der Speicher-Dialog die gleiche Größe wie der Drucken-Dialog hat und der exakt an der gleichen Stelle liegt ist der Drucken-Dialog nicht sichtbar, denn der Speicher-Dialog liegt eben
darüber. Er ist also da aber
nicht sichtbar weil ja eben verdeckt.
Und da zwischen dem Anzeigen der beiden Dialoge eben keine Stunden vergehen, sondern eher Millisekunden ist das Auge einfach zu träge um dieses zu bemerken.