scape hat folgendes geschrieben: |
Tut mir leid aber - wie ich schon im ersten Beitrag sagte - du hast immer noch keine Ahnung wovon ich spreche. Ich muss garnichts ersetzen, Standardroutinen oder sonst irgend nen Quatsch, sondern einfach nur die Kompo quasi Ownerdrawen und fertig ist was ich will. |
Tja, und ich fürchte fast, du hast das grundlegende Prinzip nicht ganz verstanden. Was glaubst du: was passiert beim "Ownerdrawen"?
Jedes darstellbare Element (ob nun Listbox, Menü oder auch Menüitem) muss doch irgendwie auf dem Bildschirm angezeigt werden? Und da die Buttons im Großteil aller Programme gleich aussehen (außer denen die ge-"ownerdrawt" wurden

) scheint es also eine Routine zu geben, die dieses Zeichnen übernimmt?
Bei der VCL bekommst du davon überhaupt nichts mit. Du packst den Buttons auf´s Formular, und das war´s. Aber auch bei der API-Programmierung genügt es, den Button mit "CreateWindow(Ex)" zu erzeugen. Um das Zeichnen musst du dich auch da nicht kümmern. Also, einigen wir uns darauf, dass das Betriebssystem diese Arbeit übernimmt.
Willst du nun einem Element einen anderen Stil verpassen, musst du an der richtigen Stelle eingreifen. (Stichwort: Message-Handling.) Bei der VCL findest du dafür in manchen Komponenten das von dir erwähnte "OwnerDraw"-Ereignis, das dir diese Botschaftsbehandlung abnimmt und dafür sorgt, dass z.B. eine Listbox neben dem Text auch Icons darstellt. Oder (nur um dir zu beweisen, dass ich die XPMenu-Komponente kenne:) dass in einem Menü an der linken Seite ein grauer Rand dargestellt wird.
Dass du dies alles mit typischen Delphi-Befehlen erledigen kannst, ist der große Vorteil der VCL. Als API-Beispiel könnte ich dir den Quellcode des "DelphUBB" von NicoDE und CRA empfehlen, der dir auf API-Ebene vormacht, wie man einen Button selbst gestaltet.
Welchen Weg du aber nun wählst -ob VCL oder API- es ändert nichts an der Tatsache, dass du die Standard-Zeichenroutine (die normalerweise zur Anzeige der Elemente benutzt wird) überschreibst, bzw. in sie eingreifst, damit sich die Elemente in dem von dir gewünschten Stil präsentieren.
Es spielt auch keine große Rolle, ob du solche Sachen nun selbst programmierst oder eine fertige Komponente benutzt. Insofern hast du sicherlich recht:
du musst nichts ersetzen, das hat jemand anderer bereits getan. Aber am technischen Prinzip ändert das nichts.
Zitat: |
aber mit Müll kommt keiner weiter |
Das lasse ich mal so stehen; ich bedaure, dass dir meine Antworten nicht weiterhelfen ... Stattdessen noch mal zu meiner "Abneigung" gegen sog. Design-Programme:
Das XPMenu ist ja zumindest noch so flexibel, dass es die eingestellten Systemfarben benutzt und daraus die Menüfarben berechnet. Damit kann ich leben, denn wenn ich z.B. der Meinung bin, dass meine Menüs schwarz sein müssen bei oranger Selektion, dann kann ich davon ausgehen, dass das XPMenu diese Einstellung berücksichtigt und auf der Grundlage dessen seine Gestaltung anpasst.
Manche Komponenten sind aber nicht so flexibel. Die benutzen entweder fest eingestellte Farben oder erwarten vom Programmierer der Anwendung, dass er welche auswählt.
Und die meisten Skin-Engine funktionieren auf der Basis von Bitmaps. (Es können natürlich auch JPEGs, GIFs oder sonst was für Grafikformate sein.) Da hast du überhaupt keine Flexibilität, denn das Design wird durch die Grafik bestimmt. Und das war mein Hauptkritikpunkt. Wie sieht das aus, wenn alle Fenster im erwähnten MacOS-Design daherkommen und eine Anwendung bringt ihren eigenen Stil mit und präsentiert mir ein Fenster im WinXP-Design. Du wirst mir sicher zustimmen, dass das blöd aussieht.
Zitat: |
es gibt kein XP-Blau im Programm, ... das interessiert doch NULL wenn du mal gelesen und vor allem verstanden hättest was ich gesagt habe |
Gut, zugegeben: ich habe mich zu sehr auf die WinXP-Themes konzentriert. Allerdings hast du in deinen ersten beiden Postings gefragt, ob es
Zitat: |
ausser der TXPMenu Kompo noch andere Freeware Komponenten |
gibt, und du wolltest:
Zitat: |
dass auch unter Win95 etc der XP Style erstrahlt |
Dann musst du das nächste Mal sagen: ich hätte gern ein paar Freeware-Komponenten im
Office XP-Stil. Denn neben Windows XP gibt´s auch noch den Athlon XP, irgendein Mainboard trägt das Kürzel XP ... die Liste der Produkte, die sich irgendwie alle als XP bezeichnen, ließe sich noch erweitern ...
Um also -endlich!- deine Frage zu beantworten: das XPMenu kennst du ja selbst, und als Variante für die in der OfficeXP-Toolbar sichtbaren Flat-Comboboxen usw. empfehle ich dir mal die Suche nach den "Flatstyle"-Komponenten. Bei der Gelegenheit kannst du ja mal in den Quellcode dieser Kompos reinschauen, und du wirst vieles von dem finden, was ich einleitend sagte. Vielleicht überdenkst du dann ja auch deine Reaktionen und Kommentare ...