Erstellung einer eigenen Schiebereglerkomponente



  • Hallo,
    Kennt jemand Beispiele über die Erstellung eines Schiebereglers mit Bild. Über die Suche konnte ich 3 Beispiele finden die jedoch nicht wirklich weiterhalfen.

    Es geht darum einen Schieberegler zu erstellen der auf 2 Bilder aufbaut. Ein Hintergrundbild und ein Bild für die Positionsanzeige. Hab es versucht mit in einer RES Datei die Bilder abzulegen was auch alles Klappt. Wird der Slider 15 mal auf die Oberläche gezogen um 15 eigenen Slider zu nutzen knallt es. Die Qualität der Bilder in der Res ist auch nicht so dolle.

    Gibt es eine Möglichkei die Darstellung einer RES Datei nicht mit 256 Farben nutzen oder wie ist es möglich mit Bildern zu arbeiten die der Nutzer der Software nicht gleich im Verzeichnis des Programms sieht.

    wie wird in solchen Fällen gearbeitet um am Schluss einen Schieberegler der auf ein Bild aufbaut das von Nutzer des Programms nicht verändert werden kann.

    Bin von dem Forum sehr begeistert.

    musikalische Grüsse
    Paul Meisler 🙂



  • Waldseeduo schrieb:

    Wird der Slider 15 mal auf die Oberläche gezogen um 15 eigenen Slider zu nutzen knallt es. Die Qualität der Bilder in der Res ist auch nicht so dolle.

    Beachte in Zukunft bitte: Pro Frage 1 Thread, pro Thread 1 Frage.

    Davon abgesehen ist "Es knallt" keine mir bekannte Fehlermeldung. UNd auch beschreibung ist des reichlich untauglich.

    -junix



  • Hallo Waldseeduo,

    mich würde eine Sliderkomponente in C++ auch interessieren. Ich habe bereits einige eigene Komponenten geschrieben. Wenn du also etwas SourceCode hättest, könnte man dir sicher helfen. Ich baue Graphiken immer über eine Variable in die Komponenten ein, so kann ich während des Design immer die Graphik noch beeinflussen. z.B.:

    private:
      Graphics::TBitmap* FBitmap;          // Bild des Buttons im normalen Zustand.
    protected:
      void __fastcall SetBitmap(Graphics::TBitmap *bmp);  // Normale Graphik festlegen
    public:
      __property Graphics::TBitmap* Bitmap = { read = FBitmap, write = SetBitmap };
    

    Im Konstructor kommt dann noch:

    FBitmap = new Graphics::TBitmap();
    

    Und im Dekonstructor:

    delete FBitmap;
    

    Pronto



  • hallo,

    Welche Vorgehensweise würdet ihr wählen wenn eine Sliderkomponente mit 2 Bildern erstellt werden soll. Greift ihr auf Resdateien zu oder ist es sinnvoll die Bilder in ein Verzeichnis zu legen und während des Programmstarts zu laden. 🙂

    Ich habe keinen Source mehr von der alten Komponente daher kann ich auch keine Fehlermeldung reinschreiben.

    Hier ein kleines Beipielbild
    http://www.zoschke.com/products/FarPoint/ButtonObjX/slider.gif

    Es ist selbstverständlich das ich die Komponente dann andren kostenlos zur Verfügung stelle!

    Eine kurze Beschreibung zu meiner Person.
    Ich bin 30 Jahre durch einen Unfall körperlich behindert und habe angefangen vor 5 Jahren zu programmieren. Leider hatte ich nie die Möglichkeit in einer Schule oder Studium die Programmierung zu lernen. So habe ich mir es mit folgenden Büchern selbst beigebracht. C++ für Kids, C++ mit dem Borland Builer, C++ Developers Guide und die Borland Standarbooks.

    Für mich treten oft Fragen auf die viele sicher belächeln. Um so mehr erfreut bin ich jetzt ein Forum gefunden zu haben bei dem ich Fragen stellen kann wo echte Programmierer am Werk sind.
    Bis jetzt habe ich hauptsächlich Programme geschrieben für die Ansteuerung von Synthesizern, Midifiles zuständig sind und mit Grafik wenig am Hut haben.

    Danke euer Paul



  • @Pronto
    wie machst du es das der Benutzer später keinen Zugriff auf die Bilder mehr hat?

    Danke
    Paul



  • Hallo Waldseeduo,

    wie machst du es das der Benutzer später keinen Zugriff auf die Bilder mehr hat?

    Also die Graphik wird in der Komponente selbst gespeichert, dadurch kann ich Sie im Design der Komponente zuweisen, und die Graphik ist dann fest im Programm enthalten. Deshalb hohle ich mir im Konstruktor mit new den Speicher. Danach wird die Graphik von der Komponente verwaltet und bei zerstören der Komponente mit delete wieder frei gegeben. Ein nachträgliches Laden von der Platte bei Programmstart ist dann unnötig. Außerdem sehe ich direkt im Design wie die Komponente aussieht.

    Der Benutzer kann dann nur noch durch einen Screengrap die Graphik "klauen", dem Benutzer das ganz zu verbieten geht fast nicht. Außer man sperrt während der Programmausfürung die Drucken Taste Systemweit.

    Pronto

    PS. Unter www.TopCommander.de findest du einen Screenshot mit einigen wenigen meiner selbst geschriebenen Komponenten. Leider ist das Projekt extrem aufwendig, weshalb ich im Moment noch den Standard-Scheiberegler benutze, da ich bisher keine Zeit hatte etwas selbst zu programmieren. 😞 (Dort findest du auch eine EMailAdresse. Wir könnten dann ja etwas SourceCode austauschen, denn ohne ist das immer recht müßig.)


Anmelden zum Antworten