Komponentenentwicklung - akzeptiert keine eingaben im Objektinspector



  • wenn ich in meiner eigen gemachten Komponente einen Wert (DWORD) einen neuen zuweisen will, kommt nur immer "Der Wert muss zwischen 0 und -1 liegen" 😕
    hat mir jemand ne idee, an was das liegen könnte?
    hier mal der nötige code:

    __published:   
       __property DWORD            BufferInput  = {read=GetInputBuffer ,write=SetInputBuffer};
    private:
       DWORD    FInputBuffer;
    protected:
       DWORD        __fastcall GetInputBuffer(){return(FInputBuffer);}
       void         __fastcall SetInputBuffer(DWORD Buffer){FInputBuffer = Buffer;}
    

    für jegliche kreative vorschläge bin ich dankbar

    [edit]achja.. das ganze ist auch bei unsigned int werten so[/edit]



  • keiner eine idee? 😞



  • Just a wild stab in the dark...
    Hast Du schon versucht einen default-Wert mit angegeben?



  • thx für deine antwort
    also ich habe im konstruktor defaultwerte gesetzt.
    jetzt habe ich das aber so gelöst (ich denke mal du meintest das so)

    __property DWORD            BufferInput  = {read=GetInputBuffer ,write=SetInputBuffer, default=2048};
    

    jetzt sind aber alle werte 0 und der default wert wird nicht angenommen



  • BigNeal schrieb:

    jetzt sind aber alle werte 0 und der default wert wird nicht angenommen

    Der default-Wert, den man in der __property-Deklaration angibt wird meines Wissens nur beim Speichern und Laden
    der Eigenschaften berücksichtigt.
    Hast Du beispielsweise eine bool-Eigenschaft und gibst als default false an, wird der Eigenschaftswert nur dann
    gespeichert, wenn Du im Objektinspektor die Eigenschaft auf true setzt. Du musst aber trotzdem noch den default-
    Wert im Konstruktor setzen. Das bedeutet auch, dass Du Dich darum kümmern musst, dass die beiden Werte übereinstimmen.

    Gruß,

    Alexander



  • ich habe das soweit aufgerüstet..
    habe jetzt mal tests gemacht
    habe wie beim oben genannten codebeispiel entsprechende tests mit DWORD, unsigned int, char und int gemacht
    Ergebnis:
    DWORD + unsigned int => Error

    char + int => klapt super

    kann mir das jemand erklähren?
    werden gewisse Variabeltypen nicht unterstützt?
    habe ich was überlesen?


Anmelden zum Antworten