Delphi-PRAXiS

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/)
-   -   Delphi Unit funktioniert in Package nicht (https://www.delphipraxis.net/135278-unit-funktioniert-package-nicht.html)

BAMatze 8. Jun 2009 13:13


Unit funktioniert in Package nicht
 
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

BAMatze 8. Jun 2009 13:47

Re: Unit funktioniert in Package nicht
 
Ok hab das mal jetzt durch den Debugger laufen lassen und zumindest nach den Werten für Key, setzt er diese, wenn andere Tasten außer den Zahlen+Esc+Enter+BackSlash immer auf 0 zurück. Trotzdem schreibt er sie in die Komponente.

Die Muhkuh 8. Jun 2009 14:02

Re: Unit funktioniert in Package nicht
 
Liegt vielleicht am inherited drunter.

BAMatze 8. Jun 2009 14:05

Re: Unit funktioniert in Package nicht
 
Zitat:

Zitat von Die Muhkuh
Liegt vielleicht am inherited drunter.

Laut Debugger wird immer der Key = 0 übermittelt, was eigentlich bedeutet, dass er '' an das string übergeben sollte :( hab gerade überhaupt keine Ahnung, woran das liegt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.

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