Scrollbar



  • Ich wollte gerne eine 2d grafik bewegen. hab ich auch schon geschaft. wenn die left und top werte großer als die des form sind, soll automatisch mitgescrollt werden... das geht auch ohne weitere probs.

    Form1->VertScrollBar->Position += Y2-Y; 
    Form1->HorzScrollBar->Position += X2-X;
    

    allerdings muss dazu die scrollbar visible sein. Wenn nicht, dann geht es nicht. Weiß jemand, wieso das so ist? und wie man das umgehen koennte und die doch nicht anzeigen koennte?!



  • hier is mal n bissel mehr code:

    int X = Image1->Left;
    int Y = Image1->Top;
    //Jetzt wird image1 bewegt...
    int X2 = Image1->Left;
    int Y2 = Image1->Top;
    Form1->VertScrollBar->Position += Y2-Y;
    Form1->HorzScrollBar->Position += X2-X;
    //Ich/wir wissen, dass man die Variabeln nich immer neu erstellen muss,
    //machen ich/wir aus irgendeinem Grund aber trotzdem (nicht böse sein:)
    

    Greez,
    J0



  • Siehe FAQ unter ...nachdenk ... wo könnte das stehen ... grübelgrübel ... ahja ... Trommelwirbel ... Tusch ... Tada!: unter 'ScrollBalken'.

    😉



  • also, so wirklich verstehen tu ich das ja noch nicht. dort steht:
    "Für Variationen siehe ShowScrollBar in der Windows-SDK-Hilfe."

    Nur, wenn ich in beine bcb hilfe 'ShowScrollBar' eingebe kann er nix finden 😞
    wie deaktivier ich die fuern form?



    1. Du sollst nicht in der BCB-Hilfe sondern in der Windows-SDK-Hilfe nachsehen, die allerdings auch über das Hilfemenü des BCB zu erreichen ist. Ansonsten siehe auch die FAQ zum Umgang mit der Hilfe.

    2. Ein bischen nachdenken, was der Beispielcode wohl bewirken könnte, und es dann einfach mal mit dem Handle der Form versuchen!? 😉



  • ok so schaut der code ja aus:

    ShowScrollBar(Form1->Handle, SB_VERT, false);
    ShowScrollBar(Form1->Handle, SB_HORZ, false);
    

    Aber: Kann man den auch dauerhaft aktivieren? Weil sobalt gescollt wird (die Position der Scrollbars wechselt) sind die wieder visible.
    Und wenn man diesen Code benutzt is da ein flackern, da sie kurz sichtbar sind: (hat nix mit doublebuffering zu tun :)):

    int X = Image1->Left;
    int Y = Image1->Top;
    //Image wird bewegt...
    int X2 = Image1->Left;
    int Y2 = Image1->Top;
    Form1->VertScrollBar->Position += Y2-Y;
    ShowScrollBar(Form1->Handle, SB_VERT, false);
    Form1->HorzScrollBar->Position += X2-X;
    ShowScrollBar(Form1->Handle, SB_HORZ, false);
    

    Greez ,
    J0



  • Hab nochwas herausgefunden:
    Wenn man EINEN Scrollbalken verschwinden lässt, bleibt der weg. Aber sobalt auch der andere verschwinden soll, erscheint der erste balken wieder.

    Ich glaub das kommt daher, dass sich dadurch die ScrollBar->Range oder Position verändert und der Balken daher wieder auftaucht.

    Könnt ihr uns (wieder mal) helfen?

    J0


Anmelden zum Antworten