AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Eingabeinterface kurzeitig sperren (Maus+Tastatur)
Thema durchsuchen
Ansicht
Themen-Optionen

Eingabeinterface kurzeitig sperren (Maus+Tastatur)

Ein Thema von Whookie · begonnen am 25. Mär 2009 · letzter Beitrag vom 25. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
441 Beiträge
 
Delphi 10.3 Rio
 
#1

Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 11:23
Ich habe ein Programm, das eine große Menge Daten auf Platte schreiben muss. Das kann zwischen 30sec und 10min dauern und während dieser Zeit soll der Anwender nur einen Fortschrittsbalken in der Statuszeile sehen, aber das Programm nicht mehr bedienen können (ausser das Fenster verschieben, minimieren, maximieren, beenden).

Leider habe ich bisher keine Möglichkeit gefunden das einfach umzusetzen.

Was ich jetzt mache ist eine eigene Form in der ein TProgressBar liegt. Die Form hat keine Border und wird zur Laufzeit an der Position der Statusbar mit ShowModal ausgegeben. Das kommt dem was ich machen will schon recht nahe hat aber den Nachteil, dass ich das Fenster der Applikation nicht mehr verschieben/minimieren kann.

Gibt es sonst eine Möglichkeit die Eingabe an mein Programm für diesen Zeitraum zu sperren?

TIA
Whookie
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 12:03
Du könntest in einer Schleife alle Controls disablen.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 12:46
Wenn es um so lange Zeitspannen geht, gehört sich das Programmfenster m.E. komplett ausgeblendet. Die Fortschrittsanzeige packst du in eine extra Form (zusammen mit der Abbrechen-Funktion ) und die wird angezeigt während der Vorgang läuft und sonst nix.

Nur so als Anregung.
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 12:48
Zitat von Sherlock:
Du könntest in einer Schleife alle Controls disablen.
oder alle controls auf ein panel (align=alClient) und dieses disablen.
spart die Schleife

Gruß Frank
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#5

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 12:53
Form1.Enabled := False; ??
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#6

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 12:54
Zitat von mr_emre_d:
Form1.Enabled := False; ??
dann kannst das form nicht mehr verschieben/minimieren

Gruß Frank
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#7

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 13:27
Lass dir per findcomponent alle Controls geben und deaktiviere sie!

Oder einfacher: alle Controls auf ein Panel legen, dass sich über die gesamte form erstreckt und dann das Panel Enabled := False setzen, nicht die Form!
Christian
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#8

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 13:59
Zitat von Cyberbob:
Lass dir per findcomponent alle Controls geben und deaktiviere sie!

Oder einfacher: alle Controls auf ein Panel legen, dass sich über die gesamte form erstreckt und dann das Panel Enabled := False setzen, nicht die Form!
Öh.. nette Zusammenfassung aller bisherigen Postings


@Threadersteller: Würde es als Anwender auch bevorzugen, wenn die Anwendung dann von sich aus komplett verschwindet ... ich käme wohl auch gar nicht auf die Idee, eine arbeitende Anwendung zu minimieren, weil das in 90% der Fälle ja eh nicht möglich ist :/
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#9

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 14:10
Zitat von Cyberbob:
Lass dir per findcomponent alle Controls geben und deaktiviere sie!
zumal findcomponent dafür bisschen ungünstig ist...warum nicht das Controls-Property des forms zu nehmen (ggf. rekursiv).

Gruß Frank
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#10

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)

  Alt 25. Mär 2009, 14:44
Zitat von _frank_:
Zitat von mr_emre_d:
Form1.Enabled := False; ??
dann kannst das form nicht mehr verschieben/minimieren

Gruß Frank
Dann soll er alles auf n Panel packen und Panel1.Enabled := False - setzen

MfG
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz