Übergabe Variable an Anzeige



  • Hallo Pfadfinder,

    Danke für deine unendliche Geduld 👍 👍

    Dieses Beispiel hat fast funktioniert 🙂
    Es gab noch Stress mit StrToFloatDef(). Das hat bei mir nicht hin gehauen.

    Folgender Code tut seinen Dienst:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       VrAngularMeter1->Position = StrToIntDef(Edit1->Text,0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
       Label1->Caption = FloatToStr(VrAngularMeter1->Position);
    }
    

    Wenn ich das jetzt richtig verstehe:
    - Der Anzeige muss "Position" übergeben werden
    - Der String aus dem Edit1 wird in eine INT gewandelt (Was bedeutet die 0 in der KKlammer??)
    - Dem Label wird die Position übergeben, vorher aber wieder in einen String gewandelt.

    Korrekt verstanden?

    Warum meckert der Compiler rum, wenn ich StrToFloat und FloatToStr verwende?

    Gruß

    Uwe



  • Hallo,

    die ,0 ist der default-Wert ->deswegen StrToIntDef, dieser Wert wird übergeben wenn sich der eigentliche Wert nicht in einen Integer konvertieren läßt.
    Mit StrToInt hast Du halt nur Ganzzahlen zur Verfügung, ich weiß ja nicht ob das reicht oder Du genauere Werte anzeigen willst.
    Was heißt Compiler meckert, nach Ziege wird er nicht klingen :-), poste doch mal sein Gemecker als Text.

    Gruß myerscola



  • 😃
    Nix Ziege, nur "plong". 🕶
    Meldung:
    "Aufruf einer undefinierten Funktion StrToFloatDef"

    Das mit der 0 ist mir jetzt klar. Danke.

    Gruß
    Uwe



  • Hallo

    StrToFloatDef gibt es im Gegensatz zu StrToFloat erst ab BCB6.

    bis bald
    akari



  • akari schrieb:

    Hallo

    StrToFloatDef gibt es im Gegensatz zu StrToFloat erst ab BCB6.

    bis bald
    akari

    Dann macht das "Gemeckere ja auch Sinn 😉 😉

    Ich habe da noch was anderes gefunden, um Text in Zahlen umzuwandeln.

    Wert = Edit1 -> Text->ToInt();
    

    Scheint genau so zu funktionieren und ist für mich in der Syntax besser zu begreifen 😃 Gibt es da wichtige Unterschiede? Erklärungen habe ich keine gefunden.
    Gruß
    Uwe



  • Hallo

    Dann lies doch mal in der BCB-Hilfe nach was die Namensteile Float und Int der jeweiligen Funktionen bedeuten. Dann weist du was der Unterschied ist.

    bis bald
    akari



  • akari schrieb:

    Hallo

    Dann lies doch mal in der BCB-Hilfe nach was die Namensteile Float und Int der jeweiligen Funktionen bedeuten. Dann weist du was der Unterschied ist.

    bis bald
    akari

    Wenn man blöd fragt, kriegt man auch eine blöde Antwort. Sorry, hatte mich wohl falsch ausgedrückt. DER Unterschied ist mir schon klar 😉

    Meine Frage zielte in folgende Richtung:
    Was ist der Unterschied zwischen

    Wert = Edit1 -> Text.ToInt();
    

    und

    Wert = StrToInt (Edit1->Text);
    

    Ersteres scheint mir als Anfänger logischer......

    Nachdem ich heute wieder einiges gelernt habe, wollte ich wieder ein paar der runtergeladenen Komponenten testen. Dies ist mir leider wieder nur zum Teil gelungen. Wie kriege ich raus, wie Werte übergeben werden und wie die Variable heißt?
    Ich habe da z.B. eine Ampel-Anzeige, Rot, Gelb Grün. Diese möchte ich ansteuern, sagen wir mal mit 3 Buttons.
    Im Headerfile finde ich "IsRed", "IsYellow", "IsGreen". Diese Namen fine ich auch im Objektinspektor, wenn ich die Ampel auf der Form platziere. "IsRed" z.B. kann ich über den Inspektor durch Setzen auf TRUE einschalten und die Lampe ist an.
    Wie mache ich das dann im Programm? Wie kriege ich raus,
    a) welche Variablen notwendig sind
    b) wie die entsprechende Sysntax aussieht?

    Gruß

    Uwe



  • Hallo,

    nun müsst ihr mir aber wirklich noch mal helfen.
    Mittlerweile habe ich so einige Sachen herausgefunden, z.B. das nach der Eingabe des Komponentenname und nachfolgenden -> meistens ein Popup aufgeht, wo die möglichen Befehle drinstehen. 🕶 🕶 So weit so gut.
    Mein Problem besteht jetzt darin, z.B. eine Komponente aus 3 LEDs anzusteuern. Da ist nix mit Position oder Value.
    Die Komponente heißt VrLights1 auf meinem Formular. Im Inspektor kann ich über LEDState per BOOL IsRed, IsGreen und IsYelloy setzen oder löschen.
    Wenn ich also eingebe

    VrLights1->
    

    dann kommt die Auswahl, z.B.

    LedState: TVrLightStates
    

    😕
    mit Spacetaste wird LedState übernommen. Wieder -> getippt, kommt nix.
    Tippe ich einen . kommt neues Fenster, zum Beispiel

    operator = TVrLightStates &(constTVrLightStates)
    

    Wie habe ich das zu deuten?
    Gruß
    Uwe



  • Hallo

    Das beste ist du schaust in die Dokumentation oder den Quellcode der externen Komponente. Wir können dich nicht alle existierenden Fremdkomponenten kennen...

    Ich vermute das der Datentyp TVrLightStates ein Set ist, da lohnt sich ein Blick in der FAQ hier im Forum, in den Thread "Umgang mit Set"

    bis bald
    akari



  • Hallo akari,

    vielen Dank.
    Das war genau der Tipp, den ich brauchte 🙂

    Es funktioniert 😃 😃 😃

    War zwar noch viel Probiererei, aber ich habe es hinbekommen. Hatte was mit Set zu tun.

    In der Headerdatei steht

    void__fastcall SetLedState(TVrLightsStates Value);
    

    Mein Code im Builder:

    VrLights1->LedState = TVrLightsStates () << lsRed;
    

    Nun sollte ich ähnliche Sachen auch hinbekommen da ich jetzt weiß, wonach ich suchen muss.
    Nochmals Tausend Dank an euch alle.

    Ich werde euch bei Gelegenheit noch mal wieder quälen, versprochen 🙂 🙂 🙂

    Gruß

    Uwe


Anmelden zum Antworten