Übergabeparameter (TObject *Sender, char &Key) von TEdit an Funktion übergeben



  • Hi,

    ich hab einige Textboxen (TEdit) in meinem Formular,...
    für alle würd ich jetzt gerne NUR Zahlen, und Backspace zulassen, das geht auch,...
    Nur möcht ich jetzt nich für jede Box den Gleichen Code einfügen und würd gene dafür eine Funktion nutzen, die von allen Boxen aufgerufen wird:

    void frmLockStringInput(TObject *Sender, char &Key)
    {
      TEdit* pEdit = dynamic_cast<TEdit*>(Sender);
      //Nur Pos/Neg Zahlen zulassen
      if((Key == '-' && (pEdit->SelStart || pEdit->Text.Pos("-"))) ||
        ((Key < '0' || Key > '9') && Key != 8 && Key != '-'))
        Key = 0;
    }
    
    void __fastcall TfrmMain::txt_Edit1_KeyPress(TObject *Sender, char &Key)
    {
      frmLockStringInput(Sender, Key); //Geht jedoch nicht
    }
    
    [Linker Fehler] Unresolved external 'TfrmMain::frmLockStringInput(System::TObject *, char&)' referenced 
    from C:\PROGRAM FILES\BORLAND\CBUILDER5\PROJECTS\08-10-16\FRMPPE.OBJ
    

    Da hab ich wohl nen dicken Denkfehler?? 😮
    Wie kann man sowas machen??

    Gruß
    Doofi



  • Hallo

    Deine Methode ist zwar im Header als Member von TfrmMain deklariert, aber die Implementation ist ohne Bezug zu TfrmMain. Deshalb muß noch (wie bei den anderen Methoden auch) das TfrmMain:: vor den Methodennamen :

    void TfrmMain::frmLockStringInput(TObject *Sender, char &Key)
    {
      ...
    }
    

    So wie der Codeauszug aussieht brauchst du doch gar nicht eine extra Funktion, du kannst doch die Methode txt_Edit1_KeyPress gleich allen TEdits zuweisen.

    bis bald
    akari



  • Stimmt! 😃

    Mann ich seppel,... 🤡

    Danke,... 👍

    Gruß


Anmelden zum Antworten