![]() |
Ich brauch eine Mischung zwischen Show und ShowModal
Hi DPler
Also ich hab in meinem projekt ein Hauptfenster und wenn man da jetzt eine aktion ausführt dann will ich das ein zweites kleines Fenster angezeigt wird wo der fortschritt von der Aktion dargestellt wird. Nun hab ich aber das Problem das man wenn ich das Formular mit schow anzeige man zur Hauptform zurück klicken kann und unter umständen fehler verursachen könnte, aber wenn ich es mit ShowModal aufrufe dann wartet er solange bis ich es wieder schliesse und das ist auch sehr ungut. Also brauch ich einen Mittelweg das der code zwar weiter ausgeführt wird man aber nicht zum Hauptformular zurück klicken kann. PS: Die ganze Aktion in einen Thread auszulagern wäre sehr komplitziert und aufwändig |
Re: Ich brauch eine Mischung zwischen Show und ShowModal
Geht nicht Hauptformular.Enabled := False?
|
Re: Ich brauch eine Mischung zwischen Show und ShowModal
Reicht es, wenn das 2. Formular StayOnTop ist?
Aber ansonsten wäre ein Thread wirklich die Lösung und so umständlich ist das echt nicht. Flare |
Re: Ich brauch eine Mischung zwischen Show und ShowModal
Zitat:
Hab des jetzt so gelöst und des funkt super:
Delphi-Quellcode:
procedure TfrmFortschritt.FormClose(Sender: TObject; var Action: TCloseAction);
begin frmHaupt.Enabled := true; end; procedure TfrmFortschritt.FormShow(Sender: TObject); begin frmHaupt.Enabled := false; end; Zitat:
und in meinem Fall ist des ganze in einem Thread bzw. in mehere Threads einzubauen eher schwieriger gewesen Trotzdem danke :cheers: |
Re: Ich brauch eine Mischung zwischen Show und ShowModal
Zitat:
Flare |
Re: Ich brauch eine Mischung zwischen Show und ShowModal
Zitat:
|
Re: Ich brauch eine Mischung zwischen Show und ShowModal
Hallo
Delphi-Quellcode:
Heiko
function TForm_PEP__Main.LoadData: Boolean;
var FrmStatus : TForm_Status; WindowList : Pointer; begin Result:= False; try FrmStatus:= CreateStatusForm; try { to make form "semimodal" } WindowList:= DisableTaskWindows(frmStatus.Handle); try // Formular anzeigen FrmStatus.Show; // Schleifenverarbeitung Repeat { 6957, "Daten werden geladen" 6958, "Bitte haben Sie einen Moment Geduld" } FrmStatus.iCaption := 6957; FrmStatus.iInfo := 6958; // Nachrichtenverarbeitung zulassen Application.ProcessMessages; // hier passiert das wichtige Result:= InternalLoad(FrmStatus); break; // bis Verarbeitung fertig oder Benutzerabbruch until False; finally // Semi-Modalität aufheben EnableTaskWindows(WindowList); // Fenster verstecken FrmStatus.Hide; end; finally // Fenster wieder freigeben FrmStatus.Free; end; except end; end; { LoadData } |
Re: Ich brauch eine Mischung zwischen Show und ShowModal
wie genau muss ich das genza verwenden?!
Habe eine procedure die ca. 5-10 sec läuft, in der Zeit würde ich gerne einen wait-screen anzeigen lassen! Bei der function kommen bei mir Fehler: Undefinierter Bezeichner: 'CreateStatusForm' Undefinierter Bezeichner: 'iCaption' usw |
Re: Ich brauch eine Mischung zwischen Show und ShowModal
Hallo,
ahhhh, meins !!! FrmStatus:= CreateStatusForm; einfach nen FrmStatus:= TFrmStatus.Create(Self) oder FrmStatus:= TFrmStatus.Create(NIL) TFrmStatusist das "Info"-Form. Das kann z.B. auch sowas wie nen Progressbar haben ... iCaption ist ein property property iCaption: Integer write SetCaption SetCaption Caption:= LoadString(XXX) das macht es einfacher, eine Info als String-Ressource im Caption anzuzeigen. Es kapselt nur das LoadString Heiko |
Re: Ich brauch eine Mischung zwischen Show und ShowModal
hmm ich verstehe nur Bahnhof :D
Ich habe eine procedure die einige listviews mit Werten füllt, dauert einige Sekunden! In der Zeit würde ich gerne ein Ladescreen anzeigen, ist das mit deiner function möglich und wenn ja wie genau :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 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