wert an scrollbar übergeben



  • hallo
    ich möchte in ein editfeld eine zahl eingeben. diese zahl soll die scrollbar veranlassen an diese stelle zu springen und ihre funktion auszuüben.
    andernfalls soll aber auch, wenn ich die scrollbar bewege die positionsnummer im editfeld stehen.
    in meinem quellte. klappt das irgendwie net. er gibt mir nur quark aus.
    könnt ihr mir helfen?

    void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
    {
    
    Edit1->Text= ScrollBar1->Position;
    
    Shape1->Brush->Color= TColor(ScrollBar1->Position + 100);
    Shape2->Brush->Color= TColor(ScrollBar1->Position + 100 <<8);
    Shape3->Brush->Color= TColor(ScrollBar1->Position + 100 <<16);
    Shape4->Brush->Color= Shape1->Brush->Color + Shape2->Brush->Color +Shape3->Brush->Color;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    int a;
    Edit1->Text= IntToStr(a);
    ScrollBar1->Position = a;
    }
    //---------------------------------------------------------------------------
    


  • Hallo,

    du könntest auch bei Tastendruck in deinen Eingabefeld die Position
    der ScrollBar beeinflussen.

    void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
    {
       //Nur Zahlen bei der Eingabe zulassen
       if((Key < '0' || Key > '9') && Key != VK_DELETE && Key!= VK_BACK) Key = 0;
    
       if (Trim(Edit1->Text) != "")
       {
           //hier könnte auch eine min/max Wert Überprüfung stehen
           ScrollBar1->Position = Edit1->Text.ToInt();
       }
    }
    


  • int a; 
    Edit1->Text= IntToStr(a); 
    ScrollBar1->Position = a;
    

    was steht denn in a drin? Quark, da nicht initialisiert. Also kommt da korrekterweise auch Quark raus.

    du meinst wohl:

    int a; 
    a = StrToInt(Edit1->Text); 
    ScrollBar1->Position = a;
    


  • wäre

    IntToStrDef(Edit1->Text,0);

    nicht besser?



  • Ja


Anmelden zum Antworten