Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Eingabeinterface kurzeitig sperren (Maus+Tastatur) (https://www.delphipraxis.net/131472-eingabeinterface-kurzeitig-sperren-maus-tastatur.html)

Meflin 25. Mär 2009 15:17

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
Zitat:

Zitat von mr_emre_d
[Dann soll er alles auf n Panel packen und Panel1.Enabled := False - setzen

Gut, dass dus NOCHMAL widerholt hast :lol:

mleyen 25. Mär 2009 15:18

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
Nennt man sowas nicht auch "schmuddelprogrammierung"? :smile2:

Hier hatte ich mir damals auch was zusammengeschrieben:
Delphi-Quellcode:
{*----------------------------------------------------------------------------------------
De/-aktiviert alle Controls im übergebenem TWinControl

@Comment Aufgrund der Darstellung geh ich rekursiv durch alle Untercontrols durch
@Param Win Alles hierdrin wird disabled
       Enable Aktivieren/Deaktivieren
----------------------------------------------------------------------------------------*}
procedure EnableCntrls(const Win: TWinControl; const Enable: Boolean = true);
var
  i: Integer;
begin
  for i := 0 to Win.ControlCount - 1 do
  begin
    Win.Controls[i].Enabled := Enable;
    if Win.Controls[i] is TWinControl then
      EnableCntrls(TWinControl(Win.Controls[i]), Enable);
  end;
end;
Jetzt brauchst du nur noch wiefolgt aufufen:
Delphi-Quellcode:
EnableCntrls(Self, false);

mr_emre_d 25. Mär 2009 16:17

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
Zitat:

Zitat von Meflin
Zitat:

Zitat von mr_emre_d
[Dann soll er alles auf n Panel packen und Panel1.Enabled := False - setzen

Gut, dass dus NOCHMAL widerholt hast :lol:

xD hab ja nicht alles gelesen :) bin bis zu der Aussage gekommen, dann dacht ich mir, dass ich gleich antworte :P

MfG und sorry

mirage228 25. Mär 2009 17:30

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
Ich packe da mal noch meine Funktion aus der Code-Library zu ;-)
Alle Subcontrols eines Controls dis- / enablen

Viele Grüße

Whookie 25. Mär 2009 18:33

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Erst mal danke für die vielen Hinweise!

Ich habe mir natürlich auch einige Gedanken darüber gemacht, wie sowas umgesetzt werden könnte.

Disablen aller Controls (= Menü, Toolbars, Hauptform) ist eine Möglichkeit, die ich nicht Erwägung gezogen hatte, sie hat halt den Nachteil, das dann alles "grau" wird, was unschön sein könnte.

Ein Programm das eben mal verschwindet, weil das Speichern länger dauert (und dann eventuell auch noch selber wieder aus der Versenkung auftaucht) finde ich allerdings noch viel schlimmer. Ein Bild von meinem Programm Design habe ich angehängt.

Vorstellen könnte ich mir auch, einen Dialog der Modal über dem Programm liegt und ähnlich dem Kopieren-Dialog in Windows eine Animation + Fortschrittsbalken bietet und so das Programm "legal" sperrt. Ist aber auch ned so schön, wenn sowas nach dem "Speichern"-Dialog aufpoppt ...

Eine weitere Option wäre es einen "Screenshot" vom aktuellen Programm zu machen, die eigentliche Form zu verstecken und eine "Dummy-Form" mit dem Bild + Fortschrittsbalken anzuzeigen (so macht Windows das mit Programmen die sich nicht mehr melden)... naja ... irgendwie auch nicht schön?

Gibt es dazu noch Meinungen?

LG
Whookie

mr_emre_d 25. Mär 2009 19:06

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Whookie
Disablen aller Controls (= Menü, Toolbars, Hauptform) ist eine Möglichkeit, die ich nicht Erwägung gezogen hatte, sie hat halt den Nachteil, das dann alles "grau" wird, was unschön sein könnte.

wenn du alles auf ein panel klatscht und es disablest, werden die Controls nicht grau angezeigt

Demodino im Anhang

MfG

Whookie 25. Mär 2009 19:30

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
Das mit dem Panel sieht nicht schlecht aus, nur das Hauptmenü bleibt davon leider ausgeschlossen ...

_frank_ 25. Mär 2009 22:41

Re: Eingabeinterface kurzeitig sperren (Maus+Tastatur)
 
du könntest das Hauptmenü zeitweise entfernen (form.menu:=nil;) und danach wieder zuweisen.

für den rest wäre evtl auch noch eine Möglichkeit, wie vorher gesagt alles auf ein Panel, dieses aber verstecken (panel.Visible:=false;). hätte den vorteil, dass man das fenster noch normal bedienen kann, aber die Aktionscontrols nicht bedienbar sind. an der Stelle wo das Panel war kannst du ein anderes Panel einblenden, was deinen Fortschrittsbalken und ggf. weitere Infos, eine Grafik oder Animation anzeigt.

Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.
Seite 2 von 2     12   

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