Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Bedienung eines Controls sperren (https://www.delphipraxis.net/213843-bedienung-eines-controls-sperren.html)

skoschke 5. Okt 2023 08:31

Bedienung eines Controls sperren
 
Hallo,

ich stehe vor einem Problem in einer Windows / Android App:

Ein Formular enthält den Gnostice DocumentViewer um PDF's anzuzeigen.
Die Dokumente enthalten Formularfelder, die aber in der Anzeige "nicht bedienbar", also readonly sein sollen.

Hierfür bietet Gnostice aber keine Einstellmöglichkeit, so dass ich mir gedacht habe, darüber ein TPanel mit Opacity = 0 zu legen, das das Tippen in das Control abfangen soll.

Leider kommen Klicks immer noch auf dem DocumentViewer darunter an!

Hat jemand bitte eine bessere Idee?

Ciao
Stefan

Gausi 5. Okt 2023 08:53

AW: Bedienung eines Controls sperren
 
Was ist, wenn du den Viewer auf ein Panel packst, und beim Panel Enabled auf False setzt?

haentschman 5. Okt 2023 09:24

AW: Bedienung eines Controls sperren
 
Zitat:

Was ist, wenn du den Viewer auf ein Panel packst, und beim Panel Enabled auf False setzt?
Sowas ähnliches habe ich mit Grids auch. Diese Lösung funktioniert nicht wirklich. Bei den Grids funktionieren dann auch die Scrollbanken nicht. Beim PDF sollte das aber bedienbar sein.

1. Gibt es etwas wie "ReadOnly"? :gruebel:
2. einen Bevel drüberlegen?
3. Kann man das mißbrauchen? https://www.delphipraxis.net/174329-...erhindern.html

Jasocul 5. Okt 2023 09:36

AW: Bedienung eines Controls sperren
 
Die Klasse TgtPDFViewer hat Ereignisse, die eventuell von dir genutzt werden können:
- OnFormFieldFocus
- OnFormFieldValueChanged

Ich kann mir vorstellen, dass du dort verhindern kannst, dass man etwas ändert.
Ganz sicher bin ich mir aber nicht, da ich keine gnostice-Komponenten habe.

himitsu 5. Okt 2023 09:39

AW: Bedienung eines Controls sperren
 
Acrobat hatte sich da auch extrem geweigert.

Wir nutzen inzwischen zur Anzeige die PDF-Komponente von DevExpress,
entweder direkt, oder in einem Thread wird die erste Seite für eine MiniVorschau auf ein Bitmap gemalt.


Es kommt auch drauf an, wie und wo die Komponenten auf die Ereignisse reagieren. (z.B. als eigenständiges Fenster, womöglich auch noch in einem anderen Thread oder gar Prozess, welches dort eingeblendet wurde)
Oder die Maus asynchron abgefragt.

Da hilft es dann auch wenig, wenn man ein durchsichtiges Control drüber legt, oder deren Control z.B. ableitet und die Maus-/Tastaturereignisse überschreibt. (beim Überschreiben könnte man aber auch leichter prüfen, ob es z.B. an eine Scrollbar geht, bzw. welcher Bereich angeklickt wurde, um das Abfangen nicht auf alles anzuwenden)

skoschke 8. Okt 2023 07:50

AW: Bedienung eines Controls sperren
 
Zitat:

Die Klasse TgtPDFViewer hat Ereignisse,
Danke

das war genau der richtige Ansatz!
OnClick hat eine var Continue, die auf false und das Ändern von Feldern ist gesperrt!

Ciao
Stefan


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