AGB  ·  Datenschutz  ·  Impressum  







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

Unit funktioniert in Package nicht

Ein Thema von BAMatze · begonnen am 8. Jun 2009 · letzter Beitrag vom 8. Jun 2009
Antwort Antwort
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
BAMatze

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

Re: Unit funktioniert in Package nicht

  Alt 8. Jun 2009, 13:47
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.
2. Account Sero
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Unit funktioniert in Package nicht

  Alt 8. Jun 2009, 14:02
Liegt vielleicht am inherited drunter.
  Mit Zitat antworten Zitat
BAMatze

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

Re: Unit funktioniert in Package nicht

  Alt 8. Jun 2009, 14:05
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.
2. Account Sero
  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 21:20 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