AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Skinsystem

Ein Thema von Nils_13 · begonnen am 4. Apr 2008
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Skinsystem

  Alt 4. Apr 2008, 15:52
Hi,

es gibt zu dem Thema genügend Threads. Meine Frage bietet euch zwar denke ich ein breites Spektrum an Antwortmöglichkeiten, allerdings ist es spezifischer als in den ganzen anderen Themen. Ich möchte ein Skinsystem programmieren welches aus zwei Dateien besteht: Auseinandernehmen der Skindatei, Zeichnen des Skins für alle Fenster. Das System soll möglichst performant gehalten werden. Eine Skindatei ist ein Archivformat. Sie enthält alle Grafiken und eine Index-Datei in der restliche Informationen wie z.B. Schriftfarbe stehen. Diese Dateien werden in ein temporäres Verzeichnis extrahiert und von dort aus einmalig in den Speicher geladen und bei Schließen des Programms wieder vom Speicher genommen. Es gibt daher ein Array voll mit kleinen Bildern welches natürlich genutzt werden kann. Es ist allerdings fraglich ob man diese überhaupt im Speicher lassen muss, sie kurz nachzuladen kostet sicherlich nicht viel Zeit, sie im Speicher zu lassen allerdings auch nicht viel Platz, solange der Macher der Skins ordentlich arbeitet (bin bisher bei 5KB). Das ganze System soll dynamisch aufgebaut sein. Es soll dabei möglichst keine TSkin-Klasse enstehen, sondern viel mehr ein DrawSkin(frm : TForm). Diese Prozedur hätte den Vorteil, dass jede Form damit problemlos gezeichnet werden kann. Wie würdet ihr die ganzen Komponenten dynamisch mit Canvas erzeugen ? Das mag merkwürdig klingen. Ich meine damit, dass man mit Canvas alle Komponenten zeichnet und Sachen wie MouseOver usw. dabei beachtet werden.
Zusammengefasst gibt es also eine Datei welche den Skin zeichnet. Diese soll keine Klasse enthalten und soll jede Form ohne weiteres zeichnen können.
Wie könnte man allerdings die nicht auf dem Formular existierenden Komponenten performant an die Skinzeichenunit weiterleiten ?

Am Anfang sagte ich, dass es ein breites Spektrum an Antworten gäbe. So habe ich euch extrem eingeschränkt. Aber das bezieht sich nur auf meinen aktuellen Stand. Meine Frage lautet also: Wie würdet ihr aufgrund des Archivformats ein Skinsystem performant programmieren ?

Meine Lösung hat nämlich zu viele Macken und ist daher unperformant, deshalb möchte ich mal andere Vorschläge hören.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz