AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi OOP-TRealEdit von TEdit abgeleitet und Fähigkeiten erweitert
Thema durchsuchen
Ansicht
Themen-Optionen

OOP-TRealEdit von TEdit abgeleitet und Fähigkeiten erweitert

Ein Thema von Hansa · begonnen am 9. Apr 2003 · letzter Beitrag vom 14. Aug 2003
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1
  Alt 11. Apr 2003, 10:34
Hi Daniel B,

sonst brauche ich hier wohl niemanden zu begrüßen. Das KeyPress mußte noch etwas geändert werden. da müssen natürlich noch . und , rein, sonst ginge nur integer. Dann wurde das OnlyReals nicht berücksichtigt, die Abfrage ob true oder false muß da auch noch rein.

Dann habe ich noch taRightJustify in den Constructor CreateParams eingebaut. Da das Vorfahrobjekt TEdit ist, ist dies standardmäßig von Delphi auf "linksbündig" gesetzt. Der Grund ist einfach nur Faulheit, damit man nicht jedesmal im OI das umändern muß. Jetzt ist zwar alles schön rechtsbündig, aber die Methode ist zu hart. Man kann nun nicht mehr taCenter oder taLeftjustify einstellen. Das muß irgendwo anders rein, bloß wo?

Code:
procedure TRealEdit.CreateParams(var Params: TCreateParams);
const Alignments: array[TAlignment] of byte=(ES_Left, ES_Right, ES_Center);
begin
  inherited CreateParams(Params);
  fAlignment := taRightJustify;
  Params.Style := Params.Style or Alignments[fAlignment];
end;

procedure TRealEdit.KeyPress(var Key:Char);
begin
  inherited KeyPress(Key);
  if OnlyReals then begin
    if not (Key in ['0'..'9','.',',',#8]) then
      Key := #0;
  end;
end;
Noch ein Schönheitsfehler : Das Dezimalzeichen (im Moment kann . oder , verwendet werden) kann man eingeben sooft man will. D.h. da müßte noch ein Exception-Handler eventuelle Fehler abfangen. Besser wäre es, sobald ein '.' oder ',' eingegeben wird, eine zweite zu blockieren. Dabei spielt dann auch noch Backspace eine Rolle. wird das einzige DecChar gelöscht sollte man es wieder eingeben können.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:25 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 by Thomas Breitkreuz