Dann müßte ich aber irgendwie zur Initialisierung der dll die StringListe erstellen und dann einmal alles aus der XML Datei lesen. Geht das irgendwie?
Und gilt das dann Global für alle .exe und .dll Dateien die die .dll benutzen?
Ich müßte dann nämlich noch jedesmal eine Nachricht an die dll senden wenn sich das Icon Set geändert hat, so das die Daten neu gelesen werden. Jedoch kann dies nur die Hauptanwendung, also SharpDesk selbst machen. Aber gilt dies dann auch für die Instanz der SharpDeskApi.dll die von den einzelnen Desktop Objekten geladen werden?(Jedes Desktop Objekt is nichts anderes als eine .dll Datei) Oder müßte dann jedes einzelne Desktop Objekt auch nochmal an die dort geladene SharpDeskApi.dll ne Nachricht schicken das die Icon Set Einstellungen neu geladen werden müssen?
Problem ist das das laden der Daten aus der XML Datei wesentlich länger dauert als alles andere...
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also um so öfter ich mir das gerade durchlese um so mehr komme ich eigentlich zu dem Schluss, dass die sinnvollste Möglichkeit für dich eine globale Klasse wäre. Also so in etwas wie eine globale Einstellungsklasse. Diese Lädt die Einstellungen aus dem XML und speichert sie bei Bedarf wieder dort hin.
Also wenn du eine DLL Lädst existiert diese nur einmal für jede Anwendung. Und dort kannst du dann zum Beispiel so etwas machen wie
Code:
function InitSettingsManager: TSeetingsManager;
begin
// Wenn SettingsReferenzCount dann erstelle Klasse und lade Einstellungen
// SettingsReferenzCount +1
// Settingsmanager zurückgeben
end;
In dieser Klasse definierst du alles was mit den Einstellungen zu tun hat. Zum Beispiel auch ChangeCallback's, die in einer Liste gespeichert werden etc.
Beim Freigeben des Manager rufst du eine andere Methode von der DLL auf. Diese verringert den ReferenzCounter und bei 0 wird die Manager Klasse wieder zerstört.
Code:
provcedure DeinitSettingsManager;
begin
// SettingsReferenzCount -1
// Bei Count = 0 Manager wieder frei geben.
end;
Somit kannst du dann sicherstellen, dass alle möglichen Objekte diese globalen Einstellungen haben und diese bei bedarf verändern können. Und wenn du das richtig machst ist alles Synchron. Musst dann natürlich noch so etwas einbauen was zum Beispiel die Updates unterbindet. Wenn du eine Masse an Eigenschaften gleichzeitig ändern möchtest etc. Wie das aber aussieht ist deine Sache.
Also das schwirrt mir gerade so im Kopf rum. Wie du das löst ist letzten Endes deine Sache. Eine DLL wird nur einmal pro Anwednung geladen. In der DLL kannst du natürlich auch andere Objekte erstellen und auf sie zugreifen. Eine Möglichkeit diese zu erstellen wäre mittels der Funktionen wie oben beschrieben oder mittels initialization und finalization. (falls du weißt was das ist???) Dann könntest du deine Einstellungen in ein Liste laden und von außerhalb der dll darauf zugreifen und die ggf ändern.
Hm, das klingt schon mal recht gut. Zumal ich aktuell eh nach einem weg suche die kompletten Einstellungen irgendwie zu optimieren. Zur Zeit erstelle ich jedesmal wo ich es brauche eine neue Instanz von JvSimpleXML die dann alles aus den XML Dateien ließt. Nur ists halt recht langsam jedesmal ne über 10kb große XML Datei zu laden und zu parsen.
Dann könnte ich sicherlich auch einfach die XML Dateien einmal von der dll laden lassen und eine entsprechende XML : TJvSimpleXML variable in die Settings Klasse einbauen.? So das dann alle Objekte auf die bereits geladenen XML Dateien zugreifen können ohne das diese jedesmal komplett neu geladen werden müssen...
Aber auf jedenfall müßte ich die Settings Klasses in der Haupt Anwendung und in jedem Objekt als variable definieren und über die von der dll Datei exportieren funktion auf die Settings Klasse aus der dll zuweisen?
(Wird dann dabei nur ein pointer auf die Klasse in der dll an die Anwendungen übergeben? Oder wie funktioniert das dann intern?)
Ich hoffe ich habs jetzt nicht irgendwie total durcheinander gebracht...
So, habs jetzt auch mal installiert.
Sieht schonmal ganz gut aus und läuft auch sehr stabil.
Hat allerdings noch ein paar Bugs und ein paar Sachen, die man verbessern könnte/sollte Wenn man unter WinXP Strg+Alt+Entf drückt, werden zwar die buttons usw. angezeit, aber es kommt einmal pro Sekunde die Fehlermeldung ""A call to an OS function failed."
Das mit den mehreren Desktops, wo man die Fenster in den anderen ziehen kann scheint nicht so ganz richtig funktionieren...
wenn man z.B. auf dem 1. Desktop nen Browser und auf dem 2. Desktop den Explorer laufen hat und man dann umschaltet auf den 3. wird der Explorer dort angezeigt.
Beim rüberschieben von nem Fenster ladet man meistens dann bei dem ganz rechts/ganz links, weil der immer weiter "wandert".
Verbessern könnte man, dass man bei den Desktop-Objekten auch Icons aus anderen Dateien verwenden kann. (wie bei der windows-standard-shell)
Und dass man die Tray-Leiste evt. oben in der Leiste andocken kann...
Ansonsten ist das echt klasse (freu mich schon auf weitere Versionen)
Der Fehler mit dem Task Manager liegt an irgendeinem veralteten SharpBar plugin. (Ich komm leider gerade nicht auf den Namen)
Aktuell wird soweit ich weiß gerade an einer optimierung von SharpVWM gearbeitet, das ganze mit den Virtuellen Desktops soll mit SharpTask verbunden werden. (Das ist jedoch verdammt schwierig zu realisieren und ich weiß nicht ob der Task/VWM Dev das hinbekommt)
Das mit den Icons sollte sich inzwischen erledigt, habe
*auf aktuelle News zeig*
Mit dem Tray nach oben bringen muß ich mal genauer schauen,
problem ist das der Entwickler etwas länger weg ist und ich das Ding irgendwie nicht ohne extrem viele Fehler compilieren kann
Ah, hab jetzt erst bemerkt, dass es ja ne aktuellere Beta gibt ^^
Was noch fehlt ist ein "Dekstop-Anzeigen"-Button in der Schnellstartleiste und was nicht zu funktionieren scheint ist die "Single-Click-Action"-Option bei den Desktop-Objekten.
Außerdem wird bei den VertPanel-Objekten auf dem Desktop das W wenns am anfang steht abgeschnitten (ca. 2-3 pixel fehlen links).
Das mit der "Single Click Action" dürfte nicht funktionieren weil kein Objekt darauf reagiert. Das ganze advanced commands Menü ist eigentlich nur für Entwickler zum Bugs finden da
Das mit dem W beim VertPanel Objekt müßte an der Schrift Arial liegen,
ansonsten muß ich mal die Einstellungen der Skins überprüfen...
saugeil das Programm also ich habs auch getestet und dabei einige Bugs etc. gefunden:
-Das Programmemenü baucht ewig zum Laden und bietet keinerlei Manipulationsmöglichkeiten -manchmal verschwinden Fenster, totgeglaubte tauchen dann plötzlich auf irgendeinem der Desktops wieder auf...
-Das winamp plugin hat irgendwie das winamp Hauptfenster total verkrüppelt
-Umstellen des Hintergrunds hat net funktioniert (mag der keine jpegs?)
-im tray erscheinen nicht alle Icons, bei manchen geht das rechtsclick menü nicht
-einzelne Teile (Task-Bar) verschwinden plötzlich ganz -Sharp Desk hat sich bei den Properties des Papierkorbs einmal aufgehängt
-wenn der explorer(startleiste) läuft funzt der tray net, auch wenn ich den explorer zuklapp, schließe ich den explorer wird er beim öffnen eines ordners mit einer Fehlermeldung neu gestartet beim nächsten öffnen geht es dann (vorrausgesetzt ich hab die startleiste net wieder beendet).
(mach ich beim starten was falsch?
- oft maximieren sich programme über die Top-Leiste hinaus
-das verschieben zwischen den desktops klappt alles andere als reibungslos
-am seltsamsten verhält sich das ganze im mehrbildschirm modus, wenn man da sein fenster verschiebt landet es irgendwo im nirgendwo, z.T. kriegt es auch negative Koordinaten
...
(mehr fällt mir im Moment net ein)
[-Das Programmemenü baucht ewig zum Laden und bietet keinerlei Manipulationsmöglichkeiten]
Problem ist hier das laden des kompletten Startmenüs und das Laden der ganzen Shell Icons. Ich hab bis jetzt aber noch nicht rausgefunden warum das auf einigen Rechner(u.a. auch bei mir) so lange dauert.
Bearbeiten kannst du das Menü im Theme Editor (SharpDesk)
[-manchmal verschwinden Fenster, totgeglaubte tauchen dann plötzlich auf irgendeinem der Desktops wieder auf...]
[-das verschieben zwischen den desktops klappt alles andere als reibungslos]
[-am seltsamsten verhält sich das ganze im mehrbildschirm modus, wenn man da sein fenster verschiebt landet es irgendwo im nirgendwo, z.T. kriegt es auch negative Koordinaten]
Der VWM ist imo noch mit am meisten verbuggt. Mit der PB5 Version sollte es aber eigentlich wesentlich besser funktionieren (mit der PB4 Version war es eine einzige Zumutung). Ich komme selbst nicht so richtig damit zurecht so das ich ihn einfach deaktiviert habe...
[-Das winamp plugin hat irgendwie das winamp Hauptfenster total verkrüppelt]
Eigentlich unwahscheinlich das das plugin irgendetwas mit dem Hauptfenster macht. Es hohlt sich ja nur den aktuellen Titel aus Winamp und sendet bei bedarf die Play,Stop,Pause,Netx, etc. Befehle an Winamp.
[-Umstellen des Hintergrunds hat net funktioniert (mag der keine jpegs?)]
Umstellen des Hintergrundbildes in Windows hat keinen Effekt,
das geht komplett über die SharpDesk Themes =)
[-im tray erscheinen nicht alle Icons, bei manchen geht das rechtsclick menü nicht]
Mit dem Rechsclickmenü ist bereits bekannt. (passiert u.a. bei Steam)
Warum nicht alle Icons angezeigt kann ich dir aber leider nicht sagen. Ich muß, wenn SharpDesk für PB5 fix und fertig ist , mich mal mit dem SharpTray Code auseinandersetzen. Aktuell siehts halt nicht so aus das der Entwickler innerhalb der nächsten Monate wieder da ist
[-einzelne Teile (Task-Bar) verschwinden plötzlich ganz]
Hm? Da ist mir nichts bekannt...
[-Sharp Desk hat sich bei den Properties des Papierkorbs einmal aufgehängt]
Aktuell benutze ich noch die Shell32 Api funktionen. Da diese aber unter Win2k eh nicht funktionieren muß ich das sowieso noch komplett ändern.
[-wenn der explorer(startleiste) läuft funzt der tray net, auch wenn ich den explorer zuklapp, schließe ich den explorer wird er beim öffnen eines ordners mit einer Fehlermeldung neu gestartet beim nächsten öffnen geht es dann (vorrausgesetzt ich hab die startleiste net wieder beendet).
(mach ich beim starten was falsch?]
Der Tray fängt Windows Nachrichten ab um raus zu bekommen welche Programme im Tray sind. Wenn der Explorer läuft wird dieser die Nachrichten sicherlich vorher abfangen. Sollte alles keine Probleme mehr machen wenn SharpCore als Shell registriert ist(danach rebooten)
[- oft maximieren sich programme über die Top-Leiste hinaus]
Dann mußt du den Workspace über den Desk Area Service anpassen. Das überlappen kommt durch diverse WinXP Themes wo die Titelleiste jedesmal ne andere höhe hat. Deshalb einfach SharpCore(grünes Symbol in der Trayleiste) -> Desk Area Service -> Config -> Top/Bottom Offset anpassen(negative Werte gehen auch)
So hab mir gerade das Preview 5 Release gesaugt und probiers grad aus und versuch mal mir endlich ma einen gescheiten Desktop auf die beine zu stellen.
Mir ist aber schon ein bug aufgefallen, nix grossartiges aber nervig.
Wollte nen Wallpaper nehmen, nen normales bitmap welches aber die erweiterung grossgeschrieben war.
ACDSee macht das immer so und ich achte da nich drauf.
Ich bekomm da dann nen JPEG Fehler O_o, änder ich das .BMP nach .bmp gehts.
Werd das aber mal gescheit testen poste dann ma mehr sachen die mir auffallen
o_O
das ist wirklich ein extremst mieser bug. Da fehlt einfach das LOWERCASE() in der if abfrage Jetzt muß ich nur noch hoffen das ich es nicht vergessen habe bis ich zu hause bin
hab mir jetzt mal son grund desktop gebaut so wie ichs mir vorstellen würde:
- Hintergrundbild mit Feinem Raster und Farbüberblendung, gefällt mir echt gut 5 Icons, Arbeitsplatz, Netzwerk, Papierkorp, Windows, Lager
- Also Links Unten die Trayicons mit Uhr, geht einwandfrei Nur wäre mir recht wenn man die Schriftfarbe von der Digital Uhr ändern kann.
- Mittig Unten die aktiven progs ohne Schnellstartleiste usw, geht auch Fein wäre aber auch, wenn man Pixellänge von den einzelnen Leisten definieren könnte.
- Rechts Unten das VM mit 4 VM´s, geht auch winwandfrei
- Links Oben die Sharpbar welche Kompakt gehalten ist und folgende elemente enthält:
CPU Auslastung für Dual CPU 1 & 2, geht einwandfrei Würde aber gern die Farben für das Diagram ändern, z.b. schwarzer background mit weisen balken.
RAM, SWAP Auslastung geht einwandfrei
Nen Aufklapp Folder über das "Folders" Plugin, leider bekomm ich da ne "File Access Denied" Message und das Plugin raucht mit Speicherverletzungen ab
Komisch ist es die Sharpbar version noch vom PB4 ist, ist das gewollt ?
Also bisher gefällts mir echt gut und läuft erheblich stabiler als die PB4 und frisst kaum ram.
Hab ja gelesen im Config das du das in Swap file packst, wie macht man denn das ?
Mitterweile ist das Projekt so weit fortgeschritten, das ich auch bald gern ma Plugins für schreiben würde.
Wenn das SharpE dann auch mal Unicode supported wär ich der glücklichste mensch überhaupt
Hier ist nen shot von:
Die 2 File Leisten unter der PBBar Links Oben, sind notlösungen, weil da ja mit dem "Folder" Plugin nich klappt.
- Hintergrundbild mit Feinem Raster und Farbüberblendung, gefällt mir echt gut 5 Icons, Arbeitsplatz, Netzwerk, Papierkorp, Windows, Lager
Ich bin selbst immer wieder erstaunt was man mit den ganzen Wallpaper Effekten so alles anstellen kann. Allein schon die 4 Standard themes die alle auf dem selben Wallpaper basieren aber dann doch schon große Unterschiede zeigen Inzwischen benutze ich fast kein Wallpaper mehr ohne da irgendwas über die Wallpaper Effekte abzupassen.
Finalspace hat geschrieben:
- Also Links Unten die Trayicons mit Uhr, geht einwandfrei Nur wäre mir recht wenn man die Schriftfarbe von der Digital Uhr ändern kann.
Ich glaub kaum das sich da so schnell noch was ändern wird, der Entwickler hat noch bis Ende des Jahres nen Job wo er abseits von jeglicher Zivilisation abgeschottet vom Internet ist... Aber das wird sich eh alles ändern sobald die Skins kommen
Finalspace hat geschrieben:
- Mittig Unten die aktiven progs ohne Schnellstartleiste usw, geht auch Fein wäre aber auch, wenn man Pixellänge von den einzelnen Leisten definieren könnte.
- Rechts Unten das VM mit 4 VM´s, geht auch winwandfrei
SharpTask wird aktuell nochmal ziemlich komplett überarbeitett. Mit dem nächsten release ist dann hoffentlich auch die Verknüpfung von SharpTask mit SharpVWM fertig. Dann werden in SharpTask nur noch die Tasks angezeigt die gerade auf dem aktuellen Desktop zu sehen sind
Finalspace hat geschrieben:
CPU Auslastung für Dual CPU 1 & 2, geht einwandfrei Würde aber gern die Farben für das Diagram ändern, z.b. schwarzer background mit weisen balken.
-Komisch ist es die Sharpbar version noch vom PB4 ist, ist das gewollt ?
Der Code für den CPU Monitor ist soweit ich weiß bei einem Festplattencrash abhanden gekommen. Da eh alle Plugins für SharpE v1.0 neu programmiert werden müssen tut sich bei der SharpBar nicht gerade sonderlich viel, das es noch PB4 ist liegt daran das der Programmierer einfach nur vergessen hat die Versionsnummer zu ändern
Finalspace hat geschrieben:
Nen Aufklapp Folder über das "Folders" Plugin, leider bekomm ich da ne "File Access Denied" Message und das Plugin raucht mit Speicherverletzungen ab
Hab ja gelesen im Config das du das in Swap file packst, wie macht man denn das ?
http://delphigl.com/forum/viewtopic.php?t=2744 Zum einen wendet SharpDesk das selber an, und zum anderen läuft da der Prism service welcher das auf alle SharpE Komponenten anwendet. Jedoch ist bei der benutzung des Prism services vorsicht geboten. Läuft der Rechner länger als 50 sekunden mit 100%iger CPU auslastung so werden die Prozess Prioriäten aller SharpE Komponenten auf niedrig gestellt. Das hat zwar den Vorteil das das stellenweise sogar bei manchen spielen einen fps boost von 5-10 fps bringt, jedoch bringt das exteme Probleme wenn man dann versucht umzuschalten (Die SharpE Komponente laufen dann mit niedriger Prozess Priorität und dadurch reagieren sie fast gar nicht mehr).
Finalspace hat geschrieben:
Mitterweile ist das Projekt so weit fortgeschritten, das ich auch bald gern ma Plugins für schreiben würde.
Wenn das SharpE dann auch mal Unicode supported wär ich der glücklichste mensch überhaupt
Muß ich mal schauen wie das jetzt bei GR32 ist, da haben sie doch 1.6 irgendwas dazu gemacht,
oh - und natürlich das verdammte JvSimpleXML steht noch im weg
Ich finde irgendwie sind deine Scheme Farben etwas dunkel
Hier mal noch ein Screeshot von meinem aktuellen Desktop
(klicken zum vergrößern)
So hier ist ne veränderte version vom desktop:
(klicken zum vergrößern)
[url=http://encorex.no-ip.com/shared/Final/Final Desktop 2.jpg]
[/url]
Das pzoom plugin is echt nice
Also hab noch paar buggis gefunden:
-Also das mit dem "Folder" Plugin klappt immernoch nicht, trotz der version wo mir gegeben hast.
Bekomm ne Access Denied, und wenn ich das Plugin wieder rausnehme, dann gibts ne Zugriffsverletzung:
An Adresse 01FAE437 und versucht wird zu lesen 00000000
- Die VM Scheint sich echt merkwürdig zu verhalten, sobald man sachen in der Taskleiste macht O_o.
Die Zwei scheinen sich nicht ganz zu mögen :p Mein Xeno is vorhin auch im nirvana verschwunden nach dem ichs ins 2 VM gemacht habe, war im ersten und wollte wieder ins 2 zurück.
- Und dann noch was, beim pZoom Plugin, wenn ich X: 240 Y: 200 einstelle, wird das bild auf einmal 200x240 gross.
X und Y Sind vertauscht :p
*Edit*
Zuletzt geändert von Finalspace am Do Aug 05, 2004 12:32, insgesamt 2-mal geändert.
Folders Plugin : das ist wirklich ziemlich komisch, hast du das Zip mit Verzeichniss entpackt?
In SharpEDir\Plugins\ muß auf jedenfall ein Folder Verzeichniss mit ein paar Dateien drin sein.
Das mit VW ist genau das Problem,
klickt man in der Taskleiste auf einen Task so wird dieser auf den aktuellen Desktop gehohlt, und das ist wirklich extremst verwirrend.
Das ist halt der Grund warum es absolut Klasse wäre wenn SharpTask und SharpVWM so verknüpft sind das SharpTask nur die Tasks anzeigt die sich gerade im aktuellen DEsktop befinden.
Aber ich schreib gleich mal ne mail an den SharpTask Programmierer, sollte ja kein Problem sein jedesmal zum Desktop von einem Task zu wechseln before dieser geöffnet wird...
Mitglieder in diesem Forum: 0 Mitglieder und 11 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.