AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VCL - spezielles Edit gesucht

Ein Thema von TurboMagic · begonnen am 27. Mai 2019 · letzter Beitrag vom 30. Mai 2019
Antwort Antwort
Seite 1 von 2  1 2      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#1

AW: VCL - spezielles Edit gesucht

  Alt 28. Mai 2019, 21:53
OK, hier ist das Ergebnis meiner Bemühungen, allerdings nur oberflächlich getestet.
MaxLength wird auf 32 initialisiert, OvertypeMode ist true by default. Wenn man OvertypeMode auf false setzt sollte man Zeichen löschen können, wie bei einem normalen Tedit, allerdings wird das Filtern angewendet.

Delphi-Quellcode:
type
  TPBCustomFilteredEdit = class(TCustomEdit)
Ich schaue mir gerade das Edit an, frage mich aber, warum es von TCustomEdit und nicht TEdit abgeleitet ist.
An die Font Eigenschaft zum Beispiel scheine ich nicht heran zu kommen (bräuchte ich aber).
Auch MaxLength kann ich so nicht erreichen, muss das aber ggf. zu Laufzeit ändern.
Ok, muss mir das noch genauer anschauen, aber so passt es noch nicht zu 100% und daher frage ich mich eben,
warum von einer Komponente mit weniger Möglichkeiten abgeleitet wurde.

Gäbe es irgendwelche Probleme bei der Ableitung von TEdit?
Geht dann was nicht richtig oder nur mit hohem Aufwand?

Grüße und Danke trotzdem mal für diese Umsetzung!
TurboMagick
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#2

AW: VCL - spezielles Edit gesucht

  Alt 28. Mai 2019, 22:01
In den Custom Controls liegt die gesamte Logik. In den "normalen" Controls werden nur die Eigenschaften veröffentlicht.

Das kann man sehen, wenn man sich den Quellcode von TCustomEdit und TEdit anschaut.

Manchmal möchte man eine ganz bestimmte Eigenschaft nicht veröffentlichen, wenn der Vorgänger diese aber schon veröffentlichst hat, dann wird da nix von.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: VCL - spezielles Edit gesucht

  Alt 28. Mai 2019, 22:01
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL - spezielles Edit gesucht

  Alt 28. Mai 2019, 22:14
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

Seine Unit funktioniert schon recht gut, ich habe aber trotzdem noch
etwas verändert. Ich habe die Längenprüfung in der ClipboardContentIsAcceptable Methode ausgebaut,
weil man dann an beliebiger Stelle den Clipboard Inhalt überschreibend einfügen kann, auch wenn
dann ggf. ein teil davon abgeschnitten wird, weil MaxLength überschritten würde.

Dafür habe ich die WM_Paste abgeändert:
Delphi-Quellcode:
procedure TPBCustomFilteredEdit.WMPaste(var Message: TWMPaste);
begin
  if ClipboardContentIsAcceptable then begin
    if PasteReplacesAll then
      SelectAll
    else
    begin
      // This allows to select only parts of the text in the edit. That selected
      // part only will be replaced by the text pasted.
      if SelLength <= 1 then
        SelLength := Clipboard.AsText.Length;
    end;
    inherited;
  end;
end;
Damit kann ich auch Teile des Edit textes die selektiert sind überschreiben, wobei dann
nur der selektierte Teil überschrieben wird.

Man könnte überlegen, ob man diese Komponente (natürlich nach Zustimmung von Peter Below)
nicht bei der JVCL einbringt.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#5

AW: VCL - spezielles Edit gesucht

  Alt 28. Mai 2019, 22:22
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.
Nur eines noch festgestellt was alte Hasen an Peter's Unit stören könnte:
Einfügen mittels Shift-Einf geht nicht mehr.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
724 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL - spezielles Edit gesucht

  Alt 28. Mai 2019, 23:22
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.
Nur eines noch festgestellt was alte Hasen an Peter's Unit stören könnte:
Einfügen mittels Shift-Einf geht nicht mehr.

Grüße
TurboMagic
Ja, das habe ich explizit (in KeyDown) abgestellt, damit der Kode nicht zu komplex wird. Die Leute, die diese alten Windows 1.0 Shortcuts noch kennen sind eine aussterbende Spezies .
Peter Below
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: VCL - spezielles Edit gesucht

  Alt 28. Mai 2019, 23:28
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.

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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#8

AW: VCL - spezielles Edit gesucht

  Alt 29. Mai 2019, 07:58
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.

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!!!
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#9

AW: VCL - spezielles Edit gesucht

  Alt 29. Mai 2019, 07:58
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.
Nur eines noch festgestellt was alte Hasen an Peter's Unit stören könnte:
Einfügen mittels Shift-Einf geht nicht mehr.

Grüße
TurboMagic
Ja, das habe ich explizit (in KeyDown) abgestellt, damit der Kode nicht zu komplex wird. Die Leute, die diese alten Windows 1.0 Shortcuts noch kennen sind eine aussterbende Spezies .
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.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
724 Beiträge
 
Delphi 12 Athens
 
#10

AW: VCL - spezielles Edit gesucht

  Alt 29. Mai 2019, 11:39

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
Peter Below
  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 03:59 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