Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Unit funktioniert in Package nicht

  Alt 8. Jun 2009, 13:13
Hallo und guten Tag nochmal an alle DP´ler,

Hab hier ein etwas komisches Problem. Ich verweise gleich mal hier auf meinen vorherigen Threat und auf die Komponente TLabZahlEdit. Diese Komponente hatte ich als Extra-Unit in einer Form (dynamisch erzeugte Komponente für die Form) getestet und es funktionierte wunderbar. Die Eingabe war je nach Zahltyp auf den entsprechenden Zeichensatz eingeschränkt. Nachdem ich es in das Package getan habe und als Komponente installiert habe wird dies allerdings ignoriert. Leider weiß ich nicht, warum dies der Fall ist.

für alle die sich das nicht runterladen wollen hier mal der Quellcode:

Delphi-Quellcode:
unit LabZahlEdit;

interface

uses Classes, LabEdit;

type TZahlart = (Ganzzahl, posGanzzahl, Gleitkommazahl, posGleitkommazahl);

Type TLabZahlEdit = class(TLabEdit)
  private
    FZahlart: TZahlart;
  protected
    procedure FEdKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); override;
  published
    property Zahlart: TZahlart read FZahlart write FZahlart;
  public
    constructor create(AOwner: TComponent); override;
end;

implementation

constructor TLabZahlEdit.Create;
begin
  inherited create(AOwner);
  // default-Wert setzen:
  FZahlart := Gleitkommazahl;
end;

procedure TLabZahlEdit.FEdKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case FZahlart of
    Ganzzahl: if key in [0..7,9..12,14..26,28..44,46..47,58..255] then key := 0;
    posGanzzahl: if key in [0..7,9..12,14..26,28..47,58..255] then key := 0;
    Gleitkommazahl: if key in [0..7,9..12,14..26,28..43,46..47,58..255] then key := 0;
    posGleitkommazahl: if key in [0..7,9..12,14..26,28..43,45..47,58..255] then key := 0;
  end;
  inherited FEdKeyDown(Sender, key, Shift);
end;
Vielen Dank
BAMatze
2. Account Sero
  Mit Zitat antworten Zitat