![]() |
Neuer Ärger mit Vista TaskDialog
Hallo Leute,
ich brauche nochmal eure Hilfe. Ich will den Vista Taskdialog benutzen und muss feststellen, dass modales Öffnen von TaskDialogen nicht immer möglich ist:
Delphi-Quellcode:
hier werden 2 neue Fenster aus einer Anwendung geöffnet (eines statisch und eines dynamisch), auf denen heraus jeweils ein TaskDialog geöffnet werden soll. Also 3 Ebenen Form1/Form2 bzw. Form3/TaskDialog.
procedure TForm1.Button1Click(Sender: TObject);
begin Form2.ShowModal; end; procedure TForm1.Button2Click(Sender: TObject); var Form3: TForm3; begin Form3:=TForm3.Create(Form1); try Form3.ShowModal; finally Form3.Free end; end; Bei dem statischen Fenster klappt das modale Öffnen, wenn ich TASKDIALOGCONFIG hwndParent den Handle von Form2 zuweise. Bei dem dynamischen Fenster führt das modale Öffnen zu einem Zugriffsfehler, wenn ich TASKDIALOGCONFIG hwndParent den Handle von Form3 zuweise!!! Diese TaskDialoge werden doch fast immer modal geöffnet, sonst machen sie doch keinen Sinn. Das an sich hilfreiche Demo-Programm von Luckie hilft nicht weiter, er öffnet kein Fenster modal. MfG Willie1. |
Re: Neuer Ärger mit Vista TaskDialog
Hi,
es tut sich nichts. Ist meine Frage zu schwer oder habe ich meine Frage falsch formuliert? Meldet euch doch mal. W. |
Re: Neuer Ärger mit Vista TaskDialog
Delphi-Quellcode:
So klappt es: Innerhalb von Form3 auf ActivHandle zugreifen. Ob das eine unverselle Lösung ist ... ?
procedure TForm1.Button6Click(Sender: TObject);
var Form3: TForm3; begin Form3:=TForm3.Create(Form1); try ActivHandle:=Form3.Handle; //globale Variable Form3.ShowModal; finally Form3.Free end; end; Schönes Wochenende Willie1 |
Re: Neuer Ärger mit Vista TaskDialog
Delphi-Quellcode:
bitteschön ;)
procedure TForm1.Button1Click(Sender: TObject);
begin if not form2.visible then Form2.ShowModal; end; procedure TForm1.Button2Click(Sender: TObject); var Form3: TForm3; begin Form3:=TForm3.Create(Form1); try if not Form3.visible then Form3.ShowModal; finally Form3.Free end; end; |
Re: Neuer Ärger mit Vista TaskDialog
Das hilft überhaupt nicht. Wenn ich versuche, den Handle von Form3 (dynamisch) zu benutzen, gibt es eine Zugriffsverletzung. Meine eigene Lösung funktioniert auch nicht richtig. Kann jeder mit ein paar Zeilen Code ausprobieren (Delphi 2005 und Turbo-Delphi)
Willie |
Re: Neuer Ärger mit Vista TaskDialog
Liste der Anhänge anzeigen (Anzahl: 1)
Da du leider nicht dazu geschrieben hast welchen Quelltext du eigentlich benutzt, habe ich den Quelltext aus dem Artikel
![]() |
Re: Neuer Ärger mit Vista TaskDialog
Hallo Jaenicke, danke,
es klappt. Der entscheidene Punkt: ich benutzte Form3.Handle in dem Demo steht self.Handle. Du hat mir sehr geholfen! Gruß und schönen Abend an die Delphianer Willie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 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-2025 by Thomas Breitkreuz