Registriert: Sa Okt 26, 2002 17:14 Beiträge: 188 Wohnort: Hannover/Lüneburg
Hallo!
Ich hänge hier jetzt schon länger an nem Problem mit ner eigenen Komponente(n):
Ich hab mir ne Komponente von TCustomControl abgeleitet. Diese soll erstmal nur einen Button darstellen, was soweit auch alles funktioniert. Habe dazu das CreateParams überschrieben und ne eigene Paint-Methode erstellt. Mit dieser Kompo kann ich jetzt beliebig geformet Buttons darstellen, funktioniert auch ziemlich perfekt.
Das Problem liegt jetzt im nächsten Schritt. Ich wollte mir jetzt damit eine Komponente machen, die einen Regler darstellt. Dazu hab ich wieder eine von TCustomControl wie oben abgeleitet und der Button des Reglers ist der oben erstellte Button. Funktioniert soweit, aber wenn der Button nun verschoben wird, wird die Reglerkomponente, die diesen enthält grau Dies ändert sich erst, wenn das Fenster durch Windows neu gezeichnet wird (nach einem minimieren z. Bsp.). Ich selber bekomme das nicht hin. Wenn ich das ganze Fenster mit Form1.Refresh; aktualisieren lasse, wird zwar die Reglerkomponente richtig gezeichnet, aber alle anderen Buttons verschwinden (also die eigenen, keine TButtons oder so). Und ich hab da echt keinen Schimmer mehr wieso
Wer mal das ganze sehen möchte: <a href='http://www.xxlsoft.com/Downloads/Beta/Thunderplayer_NG.zip' target='_blank'>http://www.xxlsoft.com/Downloads/Beta/Thun...erplayer_NG.zip</a> (ca 650kb)
Den Source-Code der beiden Komponenten habe ich mal hier zusammengefasst: <a href='http://www.xxlsoft.com/Downloads/Beta/SkinButtons.txt' target='_blank'>http://www.xxlsoft.com/Downloads/Beta/SkinButtons.txt</a>
_________________ Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hi,
nichts für ungut. Aber wo ist denn deine zickige Komponente? Es wäre schön, wenn man diese mal in "aktion" sehen könnte.
Aber ich schließe mal darauf, dass die Reglerkomponente kein Update bekommt. Du solltest abfragen, wenn der Button verschoben wird und dann die Reglerkomponente neu zeichnen.
Das wird aber mit hoher wahrscheinlichkeit Flackern. Es wäre von daher also besser, dass du dieses Verschieben (den Button) in der Reglerkomponente selber zeichnest.
Genaus könnte ich aber erst sagen, wenn ich die Komponente mal gesehen habe. Da reicht ja auch ein leeres Formular auf der sie sich befindet.
Registriert: Sa Okt 26, 2002 17:14 Beiträge: 188 Wohnort: Hannover/Lüneburg
Öh, die ist doch da zu sehen in dem Thunderplayer NG, oder nicht?
Da sind oben 2 Buttons und unten der Button ist der Regler, den man verschieben kann. Ich hab auch schon mit Update und Refresh gespilt, aber das nicht wirklich sauber hinbekommen, wo das hin muss. Entweder flackert es total, oder es bleibt grau. Ich glaube ein Refresh des ganzen Fensters hat etwas gebracht, nur das hat dann geflackert, und die oberen beiden Buttons waren weg Wenn ihr so nichts findet, stelle ich morgen wohl nochmal nen simples Beispielprogramm online samt Quellcode, damit ihr mal genauer probieren könnt. Aber Quellcode der Kompo und Beispielanwendung sollten eigentlich die beiden Downloads aus meinem 1. Posting sein.
_________________ Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
Registriert: Sa Okt 26, 2002 17:14 Beiträge: 188 Wohnort: Hannover/Lüneburg
Habe jetzt das Problem gelöst: Es lag an meiner von TForm abgeleiteten Komponente. Diese hat die Paint-Procedure überschrieben und auch richtig gezeichnet. Aber in diser darf kein inherited stehen, dann werden die untergeordneten Komponenten auf der Form nämlich nicht mehr gezeichnet.
_________________ Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.