Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   EditKomponenten für die Praxis (https://www.delphipraxis.net/63736-editkomponenten-fuer-die-praxis.html)

Ferber 22. Feb 2006 12:53


EditKomponenten für die Praxis
 
Liste der Anhänge anzeigen (Anzahl: 2)
@Alle Freunde der DB !

Dieser Thread komplexe Berechnungen von abhängigen Datenbankfeldern
hat mich dazu motiviert diesen Satz von Editkomponenten als Open Source zur Verfügung zu stellen.

@Jelly: Credits fürs Testen und die sachdienlichen Hinweise.

Wichtigste Eigenschaft von

Delphi-Quellcode:
TEditString, TEditInteger, TEditFloat, TEditCurr, TEditProz und TEditDate
ist die property Value, die dem Datentyp entspricht.

Damit können die Komponenten quasi als Variable verwendet werden.

Das extrem mühsame und unübersichtliche herumschaufeln der Werte,
(aus Variablen in die Editfelder samt Umwandlung und Formatierung, wieder zurück in die Variablen samt Umwandlung)
entfällt, das erledigen die Komponenten.

Was die Editfelder können, zeigt die Kurzanleitung:

Delphi-Quellcode:
{ Unit MyEditPrim erweitert das etwas dümmliche TLabeledEdit um Eigenschaften und Ereignisse,
  die in der Praxis des Programmierens IMHO notwendig sind.

  TEditPrim ist Vorfahre für weitere, spezialisiertere EditKomponenten (siehe Unit MyEdit)

  Erweiterungen:

  property Alignment   Ausrichtung des Textes taLeftJustify, taCenter, taRightJustify

  property RedValues   Negative Werte werden automatisch rot dargestellt

  property ReturnIsTab Eingabetaste ist wie Tabtaste

  property OnChange    Änderung des Verhaltens. Wird nur durch Enter, Tab oder Verlassen des
                        Edits ausgelöst, nicht mehr bei jeder Zeichneingabe,
                        und auch dann nur, falls der Wert geändert wurde.
                        Validierung der Eingabe ist hier möglich.

  property OnIniData   Wird aufgerufen um Variablen mit Value belegen zu können.

  property OnDrwData   Wird vor dem Zeichnen aufgerufen und erlaubt Änderungen von Farbe und Font

  Taste ESC            stellt den ursprünglichen Wert des Feldes wieder her.
}

{ Unit MyEdit leitet vom erweiterten TEditPrim, die spezialisierten Editfelder

  TEditString, TEditInteger, TEditFloat, TEditCurr, TEditProz und TEditDate ab.

  Basisverhalten siehe: Unit MyEditPrim.

  Jedes diese Editfelder hat die zusätzliche Eigenschaft 'Value',
  die dem DatenTyp entspricht.

  Nachkommastellen bei den entsprechend Datentypen sind einstellbar.
  Vorgabe bei Float und Currency: 2, bei Prozent: 0

  Zuweisungen zur Eigenschaft Value lösen das Ereignis OnChange NICHT aus.
  Zuweisungen zur Eigenschaft Text lösen das Ereignis OnChange nach wie vor aus.

  Zusätzliche Eigenschaft NullValues - wie Excel Nullwerte anzeigen, Vorgabe false.

  Zusätzliches Ereignis OnInitData ermöglicht das initialisieren von Variablen.

  Validierung kann im Ereignis OnChange durchgeführt werden.

  TEditPrim wurde in separate Unit extrahiert, um die Übersichtlichkeit zu erhöhen.

  Die Erweiterung um weitere Datentypen ist in Unit MyEdit sehr einfach.
}
Die Komponenten sind mit BDS2006 und D7 getestet, das Package ist mit D7 kompiliert.

Für weitere Anregungen und evtl. Fehlermeldungen bitte eine PN schicken.

Freundlich Grüsse vom 'Ferber' :coder:

Edit: LabelPosition korrigiert. Drüberkopieren und Package neu kompilieren.

Helmutf 8. Mär 2006 21:41

Re: EditKomponenten für die Praxis
 
Hallo,

ich habe mit Freude die Editkomponenten gesehen, da ich so was ähnliches vor Jahren selbst erstellen wollte, aber nicht dazu kam.

Leider ist meine Freude nicht 100%ig, ich arbeite derzeit noch mit Delphi 5 Enterprise, dort läuft das Package naturgemäß nicht. Ich kenne nicht die Unterschiede zu Delphi 7 im Detail.

Kann mir wer helfen ?

Am schönsten wäre eine funktionsfertige Unit für Delphi 5.

Vielen Dank
Helmut

Jelly 8. Mär 2006 21:43

Re: EditKomponenten für die Praxis
 
Erstell Dir doch unter Delphi 5 dein eigenes Package und knall alle .pas Dateien aus dem Archiv rein. Das sollte eigentlich nicht zu Problemen führen.

Helmutf 8. Mär 2006 22:06

Re: EditKomponenten für die Praxis
 
Geht leider nicht
Delphi 5 meldet TLabeledEdit unbekannt

Jelly 8. Mär 2006 22:21

Re: EditKomponenten für die Praxis
 
Das ist blöd, denn das ist die Basisklasse. Die scheint dann wohl in Delphi 5 noch nicht drin zu sein.

webcss 8. Mär 2006 22:29

Re: EditKomponenten für die Praxis
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habe sowas unter D5Pro gemacht für Integer, Float und Datum. Ist vielleicht nicht perfekt, aber für mich bisher immer sehr nützlich gewesen. Siehe Anhang.
Features alle:
- FocusedColor
- Alignment
- EnterAsTab
- RestoreOnEscape

IntegerEdit:
- Min Max
-Führende Nullen

Float:
- Min Max
- Frei wählbare Dimension, Nachkommastellen
- Eingebauter Rechner für einfache aufgaben ( +, -, *, : )
beherrscht Punkt vor Strichrechnung

Datum:
- DateFormat
- NullString
- automatische Datumsergänzung (akt. Monat/Jahr)
- Tage/wochenweise Blättern
- VerboseMode: z.B. 'M' für Morgen bzw. Montag, 'G'=Gestern, usw.

Kann sein das noch ein paar Fehler drinstecken. Wenn ich welche finde, mach ich sie platt!

:-D

Helmutf 10. Mär 2006 14:52

Re: EditKomponenten für die Praxis
 
Danke für alle Bemühungen.

Version für Delphi 7 läuft auch unter Delphi 6.

Echtet 3. Apr 2006 09:48

Re: EditKomponenten für die Praxis
 
Hallo,

zuerst einmal vielen Dank an Ferber für die Zurverfügungstellung der Komponenten.

Nun ist bei mir allerdings folgendes Problem aufgetreten:

Wenn ich die Eigenschaften LabelPosition von TEditCurr auf "Above" setze oder die Caption (der Unterklasse EditLabel) lösche, so wird dies im Entwurfsmodus einwandfrei übernommen, sobald mein Programm aber ausgeführt wird, wird die LabelPosition wieder auf den ursprünglichen Wert "Left" und die Caption auf den urspr. Namen zurückgesetzt.

Hat jemand evtl ähnliche Probleme festgestellt oder mache ich etwas falsch?
Ich habe z.Zt.die Version vom 22.2.06.

Vielen Dank schon einmal und Gruß,
Thimo Echtermann


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