Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form/Komponenten mit halbtransparenter Oberfläche überdecken (https://www.delphipraxis.net/87860-form-komponenten-mit-halbtransparenter-oberflaeche-ueberdecken.html)

s.h.a.r.k 6. Mär 2007 13:55


Form/Komponenten mit halbtransparenter Oberfläche überdecken
 
Hallo,

und zwar habe ich zurzeit folgende Idee: Ich habe eine Form mit der ich Daten bearbeiten kann. Dort gibt es mehrere Eingabefelder etc. Nun ist es so, dass nicht immer Daten zur Bearbeitung geladen sind. Ich will auch nicht jede Komponente nun disablen, sondern hab da eine andere Idee: eine Oberfläche (in welcher Art und weise zunächst auch immer), welche halbtransparent ist, darüber zu legen, d.h. dass ich praktisch über den Eingabeteil ein Viereck legen will, das diesen Bereich abdunkelt und somit keine Komponente anklickbar bzw. nutzbar ist. (die Tab-Taste hier mal außen vorgelassen, da werde ich separat unterbinden)

Soweit so gut: ich habe bisher daran gedacht eine PNG-Datei zu erstellen, die halbtransparent ist und ich dann über den Eingabebereich mit einer TImage-Komponente legen -> Pustekuchen... Das TImage ist leider immer im Hintergrund und ich kann es einfach nicht vor die anderen Komponenten bringen. Ein Panel oder sonstige andere Komponenten gehen leider auch nicht, bzw. ich habe bisher leider nix gefunden (im Forum ebenfalls nix).
Nun ist es so, dass ich auch die Idee hatte eine zweite Form aufzumachen, dort mit dem Alpha-Dings (genauer Name gerade leider entfallen :wall: ) arbeite und das dann darüber lege. Das Problem hierbei ist, dass ich die Form, dann immer an die richtige Position rücken muss und immer vor der Hauptform, aber nicht vor allen anderen Fenstern halten muss. Und irgendwie bekomme ich das nicht gebacken.

Ich hoffe, ihr versteht was ich meine, sonst hänge ich noch einen Screenshot an (hab gerade leider keinen da und ich arbeite an einem anderen Rechner).

Mit freundlichen Grüßen
Pfäffle Armin

s.h.a.r.k 8. Mär 2007 12:09

Re: Form/Komponenten mit halbtransparenter Oberfläche überde
 
*push* :oops:

himitsu 8. Mär 2007 12:28

Re: Form/Komponenten mit halbtransparenter Oberfläche überde
 
Sowas hab ich auch mal gesucht und keinen Weg gefunden,
aber wenn du mal andersrum denkst, dann gibt's 'ne Lösung. :mrgreen:

Es war zwar recht einfach möglich ein Formular nach vorne zu bekommen, nur bekam es dann oftmals auch den Focus mit, oder ist nach ganz vorn gewandert :wall:


Also warum dann nicht ein Formular hinter das andere zu setzen? :zwinker:


Bei mir sieht der Code dann so aus und befindet sich in der Form, welche oben ist:
Delphi-Quellcode:
SetWindowPos(MainForm.Handle, Handle, 0, 0, 0, 0,
  SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOOWNERZORDER);
Dieses muß dann halt immer aufgerufen werden, wenn z.B. die Form nicht hinter der Gewünschten liegt.


Hier im Forum suchenhSync du wirst merken die ProgressForms sind vor der MainForm,
wobei ich da eher den Wunsch hatte, daß die MainForm bediehnbar bleibt,
also ShowModal nicht ging :?



[add]
Aber eigentlich wäre es besser, wenn du solche Tricks in diesem Zusammenhang läßt und lieber selber Komponenten erstellst, welche sowas können ... also z.B. selberzeichnen

SirThornberry 8. Mär 2007 12:46

Re: Form/Komponenten mit halbtransparenter Oberfläche überde
 
du kannst auch alle Editfelder auf ein Panel legen und dieses Panel dann disablen. Somit kommt man auch nicht mehr an eines der Edits ran. Zu deiner halbtransparenten Oberfläche: Das hatten wir schon des öfteren (transparente Panels) und eine wirklich gute Lösung wurde nie gefunden.

s.h.a.r.k 9. Mär 2007 10:12

Re: Form/Komponenten mit halbtransparenter Oberfläche überde
 
Die Idee mit dem Panel kenne ich schon, mag ich aber nicht wirklich, da der Benutzer dabei nicht auf Anhieb sieht, dass die Eingabebereiche für Ihn gesperrt bzw. nicht fokusiertbar sind.

Bzgl dem Effekt: Bei immer mehr Websiten finde ich diese Idee, den Benutzer sinnvoll zu leiten ohne mehrere Zwischenseiten einzublenden. Microsoft macht das im Moment eigentlich recht geschickt, muss ich zugeben. Und eben diesen Effekt wollte ich auch nutzen, da er sehr intuitiv und selbsterklärend ist! (meiner Meinung nach)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 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