Delphi-PRAXiS
Seite 3 von 4     123 4      

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/)
-   -   VCL - spezielles Edit gesucht (https://www.delphipraxis.net/200803-vcl-spezielles-edit-gesucht.html)

TurboMagic 29. Mai 2019 07:58

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von Aviator (Beitrag 1433318)
Oh oh. Ich bin noch nicht alt. Bei weitem nicht. Aber ich nutze STRG+Einfg, SHIFT+Einfg und SHIFT+Delete fast ausschließlich. Selten einmal, dass ich STRG+C, STRG+V und STRG+X nutze.

Zitat:

Zitat von TurboMagic (Beitrag 1433315)
Zitat:

Zitat von Aviator (Beitrag 1433314)
Der Unterschied von TCustomEdit und TEdit ist nur, dass bei TEdit bereits alle benötigten Properties published wurden. Das kannst du ja bei der eigens abgeleiteten Komponente noch machen.

Hallo,

danke ja. Erst Quellcode lesen, dann hier posten ;-)
Er hat da ja auch eine Klasse für drin ;-)

Ich hoffe mal, das bezog sich auf dich. :|

Ja!!!

peterbelow 29. Mai 2019 11:39

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von TurboMagic (Beitrag 1433335)

Naja, ich hab's noch etwas hin bis zur Rente! ;-)
Noch etwas ist mir aufgefallen: im Kontextmenü des Edits gibt es noch AUsschneiden, das geht aber nach meinen Tests ja nicht mehr.

Das Kontextmenu eines TEdits ist quasi eingebaut, das wird von Windows erzeugt. Leider kann man das Menu nur komplett ersetzen, nicht einfach nur modifizieren um z. B. den "ausschneiden"-Punkt zu deaktivieren. Die Funktion ist aber einfach zu blockieren, da die Menueinträge nur Messages (in diesem Fall WM_CUT) an das Control schicken.

Ich habe halt nicht so viel Arbeit in den Kode investieren wollen (daher auch die Radikallösung für die klassischen Clipboard-Shortcuts), schließlich sind die French Open im Gange und da gibt es gute Spiele zu sehen :-D

TurboMagic 29. Mai 2019 20:24

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von peterbelow (Beitrag 1433365)
Das Kontextmenu eines TEdits ist quasi eingebaut, das wird von Windows erzeugt. Leider kann man das Menu nur komplett ersetzen, nicht einfach nur modifizieren um z. B. den "ausschneiden"-Punkt zu deaktivieren. Die Funktion ist aber einfach zu blockieren, da die Menueinträge nur Messages (in diesem Fall WM_CUT) an das Control schicken.

Ich habe halt nicht so viel Arbeit in den Kode investieren wollen (daher auch die Radikallösung für die klassischen Clipboard-Shortcuts), schließlich sind die French Open im Gange und da gibt es gute Spiele zu sehen :-D

Ok, verstehe ich natürlich. Diem klassischen SHortcuts sollten glaube ich nicht zu schwierig nachzurüsten sein.
Blöder ist die Ausschneiden Geschichte. Wie bekommt man mit, dass jemand den Punkt ausgewählt hat? Dann könnte
man das nämlich als alternative in "Kopieren" ummünzen... ;-)

Dann täte sich da wenigstens was und da man ja im Dauer Überschreiben Modus ist, haben viele Benutzer ja
hoffentlich Verständnis dafür.

Was ich noch geändert habe ist, dass ein Einfügen eines Textes der länger ist als der Text von der aktuellen
Cursor Position bis zum Ende des Edit auch geht. Der wird halt abgeschnitten.

Grüße
TurboMagic

Luckie 29. Mai 2019 20:36

AW: VCL - spezielles Edit gesucht
 
Zitat:

Das Kontextmenu eines TEdits ist quasi eingebaut, das wird von Windows erzeugt. Leider kann man das Menu nur komplett ersetzen, nicht einfach nur modifizieren um z. B. den "ausschneiden"-Punkt zu deaktivieren.
Doch, das müsste gehen. Bei OnPopUp das Handle ses Menüs holen und dann mittels einen Windows Message den entsprechenden Menüeintrag deaktivieren oder ganz entfernen.

TurboMagic 29. Mai 2019 20:38

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von Luckie (Beitrag 1433423)
Zitat:

Das Kontextmenu eines TEdits ist quasi eingebaut, das wird von Windows erzeugt. Leider kann man das Menu nur komplett ersetzen, nicht einfach nur modifizieren um z. B. den "ausschneiden"-Punkt zu deaktivieren.
Doch, das müsste gehen. Bei OnPopUp das Handle ses Menüs holen und dann mittels einen Windows Message den entsprechenden Menüeintrag deaktivieren oder ganz entfernen.

Ein beispiel dafür wäre echt super! Dann wär's ein Stückchen perfekter... ;-)

Aviator 29. Mai 2019 22:44

AW: VCL - spezielles Edit gesucht
 
Alternativ kannst du auch ein eigenes PopupMenu dran hängen in dem es bspw. nur Kopieren und Ausschneiden gibt. Das Menü ersetzt dann das Windows eigene Menü.

TurboMagic 29. Mai 2019 23:44

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von Aviator (Beitrag 1433436)
Alternativ kannst du auch ein eigenes PopupMenu dran hängen in dem es bspw. nur Kopieren und Ausschneiden gibt. Das Menü ersetzt dann das Windows eigene Menü.

Hast du dafür mal ein Beispiel?

Aviator 30. Mai 2019 09:02

AW: VCL - spezielles Edit gesucht
 
Zieh dir einfach ein neues TPopupMenu auf die Form und setz die PopupMenu Eigenschaft des TEdit auf das neue TPopupMenu. Im Designer (Doppelklick auf das TPopupMenu) kannst du dir dann die Schaltflächen einfach definieren und den Code hinterlegen der ausgeführt wird.

Dafür braucht es nun wirklich kein Beispiel. Zumal ich gerade am Smartphone schreibe ;)

peterbelow 30. Mai 2019 12:40

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von Luckie (Beitrag 1433423)
Zitat:

Das Kontextmenu eines TEdits ist quasi eingebaut, das wird von Windows erzeugt. Leider kann man das Menu nur komplett ersetzen, nicht einfach nur modifizieren um z. B. den "ausschneiden"-Punkt zu deaktivieren.
Doch, das müsste gehen. Bei OnPopUp das Handle ses Menüs holen und dann mittels einen Windows Message den entsprechenden Menüeintrag deaktivieren oder ganz entfernen.

Es geht schon, aber nicht so. Das Default-Menu eines Tedits ist kein Delphi TPopupMenu, und es ist alles andere als einfach, das Menuhandle zu bekommen. Das Control erzeugt das Menu, wenn es die WM_CONTEXTMENU-Meldung weitergereicht bekommt (die VCL macht das, wenn das Control kein PopupMenu zugewiesen bekommen hat). Danach bekommt die Anwendung aber die Kontrolle erst wieder zurück, wenn der Benutzer das Menu geschlossen hat. Man hat also keinen guten Interventionspunkt, um an das Menuhandle zu kommen und muss sich daher einiger übler Klimmzüge bedienen. Der Aufwand lohnt einfach nicht, das Menu zu ersetzen ist viel einfacher.

peterbelow 30. Mai 2019 12:42

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von TurboMagic (Beitrag 1433421)
Zitat:

Zitat von peterbelow (Beitrag 1433365)
Das Kontextmenu eines TEdits ist quasi eingebaut, das wird von Windows erzeugt. Leider kann man das Menu nur komplett ersetzen, nicht einfach nur modifizieren um z. B. den "ausschneiden"-Punkt zu deaktivieren. Die Funktion ist aber einfach zu blockieren, da die Menueinträge nur Messages (in diesem Fall WM_CUT) an das Control schicken.

Ich habe halt nicht so viel Arbeit in den Kode investieren wollen (daher auch die Radikallösung für die klassischen Clipboard-Shortcuts), schließlich sind die French Open im Gange und da gibt es gute Spiele zu sehen :-D

Ok, verstehe ich natürlich. Diem klassischen SHortcuts sollten glaube ich nicht zu schwierig nachzurüsten sein.
Blöder ist die Ausschneiden Geschichte. Wie bekommt man mit, dass jemand den Punkt ausgewählt hat?

Mach das im Message-Handler für wm_cut.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr.
Seite 3 von 4     123 4      

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