Autor |
Beitrag |
Fabian E.
      
Beiträge: 554
Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
|
Verfasst: Sa 18.10.08 02:10
Also was mir spontan einfällt was ich dahei noch habe, ist ein Wlan-Widget... Das zeigt die aktuelle Wlan-Empfangsstärke an.
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Sa 18.10.08 09:42
Moin, moin
Also ich wünsche mir ehrlichgesagt noch ein angewandtes Beispielprojekt für die Plugins. Da alles andere ziemlich speziell für ein anderes Programm wäre, könntest du ja ein Plugin-basiertes Widget für die Widget-Engine schreiben
Als nächstes auf meiner Liste stände wohl das markieren von Text im Edit.
Btw: Bei meinem Clipboard-Manager kannst du folgenden winzigen Bug beobachten. Ich weiß nicht, inwieweit du da was ändern kannst, aber: wenn Text in ein Editfeld eingefügt wird(z.B., wenn man auf ein gefülltes Clipboard wechselt), ist von diesem nur das letzte Stück zu lesen  . Werde gleich mal ein paar Screenshots machen.
E: So, hier ist der Screenshot(Ich seh' irgendwie alles doppelt, wenn ich transparente Widgets über Screenshots von Widgets habe  ). In dem Fall stört's jetzt nicht so aber manchmal wird nur ein Buchstabe oder so angezeigt, wenn man's genau trifft.. Das Edit wird halt allgemein nicht ausgenutzt.
mfG,
Einloggen, um Attachments anzusehen!
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Zuletzt bearbeitet von Hidden am So 19.10.08 19:27, insgesamt 2-mal bearbeitet
|
|
henni
      
Beiträge: 48
Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
|
Verfasst: Sa 18.10.08 10:12
Zur Scrollbar:
Siehe Anhang. Der "Greifer" der Scrollbar fällt ziemlich klein aus, aber so schlimm ist es wiederum auch nicht.
Und dann habe ich noch folgende Ideen / Verbesserungsvorschläge / Bugs gefunden:
* Wenn man ein neues Widget erstellt und dieses dann gleich startet, kommt etwas komisches heraus
(siehe Anhang). Das kommt auch, wenn man den Editor startet und ihn wieder minimiert.
* Man bräuchte noch eine große Textbox, also eine Memo Komponente für den Editor
* Zur Portable Version: Was spricht gegen einen Kommandozeilen Parameter?
Miranda macht das so, dass es eine Ini-Datei hat, wo die Pfade jeweils absolut oder relativ
angegeben werden können
* Es wäre toll, wenn jedes Widget eine Art Menü hätte, das sich dann einblendet, wenn man mit dem
Mauszeiger drüber fährt. Über dieses Menü kann man das Widget dann entfernen oder in die Optionen
des Widgets gelangen
* Außerdem wäre es toll, wenn es für einige Widgets ein Options-Formular gäbe. Darüber könnte man
dann z.b. bei dem Wetter-Widget einstellen, von welchem Ort das Wetter angezeigt werden soll.
* Verknüpfung der *.widget Datei mit deinem Programm, sodass man mit dem Browser per Download die
Widgets gleich installieren kann
* Verschiedene Skins der Uhr, obwohl, ich glaub das kriege ich selbst hin
Dann jetzt noch folgende Widget Ideen:
* Notizzettel
* ToDo-Liste
* Shutdown-Leiste, mit Standby, Ruhezustand oder ähnlichem
* Systeminfos, wie z.b. Laufzeit des Computers
* Laufwerks Eigenschaften, z.b. welche CDs gerade im Laufwerk sind und das man diese auswerfen und
wieder einfahren kann
* Schnellstart Leiste, wo man Verknüpfungen ablegen kann
HINWEIS: ich weiß, das sind viele Verbesserungsvorschläge. Wenn man die so liest, könnte man vielleicht auf die Idee kommen, dass ich das Programm momentan noch nicht so gut finde.
Irrtum: Ich finde das Programm so schon sehr sehr sehr gut, und kann mir sehr wohl vorstellen, was in diesem Projekt für eine Arbeit drinsteckt. Gratulation nochmals für diesen Erfolg!
Also meine Vorschläge sind wirklich nur als solche zu betrachten. Sie müssen keinesfalls umgesetzt werden, auch so finde ich das Programm schon top.
Ich wette, dein Programm kommt irgendwann mal in die Chip-Zeitschrift oder ähnliches
Und ich werde bald ein Archiv mit Bildern des Google-Desktops auf meine Homepage stellen, den Link gebe ich dann bescheid.
//Edit:
Nochwas: ich habe XP Prof. Der Style kommt vom UXTheme Multi-Patcher 6 mit dem Style VistaCG.
Es könnte sein, das der genannte Bug daher kommt.
//Edit2:
Mal ne Frage: Wie kann man die Resourcen aus der *.widget-Datei wieder extrahieren?
Einloggen, um Attachments anzusehen!
|
|
henni
      
Beiträge: 48
Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
|
Verfasst: Sa 18.10.08 16:02
So, im Anhang sind einige Bilder von der Google-Sidebar.
Aber dort heißen die Widgets Gadgets.
Am meisten hasse ich an der Google-Sidebar die Einstellungs-Oberfläche:
Sie wird über einen Browser konfiguriert.
Und dann finde ich das aufdringliche Suchfeld total blöd.
Darum bin ich froh, dass es jetzt deine Variante gibt.
Und noch eine Frage: wie kann ich bei deiner Sidebar den Style einstellen? (Vista / Longhorn etc.)
Im Quelltext steht irgendetwas von MainForm.AddPopUpMenu?? Irgendwie wird das nie angezeigt!
Einloggen, um Attachments anzusehen!
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Sa 18.10.08 16:22
Hi,
Default wird das Widget-Menü mit Strg+Rechtsklick geöffnet(da geht das). Kannst du aber im Settings-Menü ändern.
Würde mich an dieser Stelle übrigens für Rechtsklick default einsetzen, da das bei allen anderen Programmen so ist. So in Punkto intuitive Bedienbarkeit.
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
littleDave 
      
Beiträge: 111
Erhaltene Danke: 2
Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
|
Verfasst: Sa 18.10.08 17:26
Fabian E. hat folgendes geschrieben : | Also was mir spontan einfällt was ich dahei noch habe, ist ein Wlan-Widget... Das zeigt die aktuelle Wlan-Empfangsstärke an. |
Ok, da werd ich mal schauen, wie ich die Empfangsstärke am besten auslesen kann. Da ich ebenfalls kein WLan habe, wird es für mich relativ schwer. Wenn wer nen funktionierendes Beispiel mit Source hat - immer her damit *g*
Hidden hat folgendes geschrieben : | Also ich wünsche mir ehrlichgesagt noch ein angewandtes Beispielprojekt für die Plugins. Da alles andere ziemlich speziell für ein anderes Programm wäre, könntest du ja ein Plugin-basiertes Widget für die Widget-Engine schreiben  |
Also bei der API-Reference ist ein Beispiel-PlugIn mit Quelltext dabei. Um dann das PlugIn zu benutzen, kann man in dem mitgelieferten Tool ein Script öffnen, mit dem man die Benutzung des PlugIns anhand eines Beispiels sehen kann. Ich der Readme.txt im Root-Ordner der Zip-Datei hab ich eine Step-By-Step-Anleitung geschrieben - hoffentlich hilft dir die ein wenig weiter.
Hidden hat folgendes geschrieben : | Als nächstes auf meiner Liste stände wohl das markieren von Text im Edit.
[...] |
Ja, die Edit-Komponente ist noch nicht so ganz ausgereift. Werd mir die nochmal komplett vornehmen
henni hat folgendes geschrieben : | Zur Scrollbar:
Siehe Anhang. Der "Greifer" der Scrollbar fällt ziemlich klein aus, aber so schlimm ist es wiederum auch nicht. |
Ok, da werd ich die Formel für die PageSize noch anpassen. Danke für den Screenshot - jetzt weiß ich endlich, was an der Scrollbar falsch ist  . Ich dachte nähmlich zuerst, dass die Scrollbar irgendwie ganz komisch dargestellt wird - wusst ja nicht, dass es nur um die PageSize geht.
henni hat folgendes geschrieben : | * Wenn man ein neues Widget erstellt und dieses dann gleich startet, kommt etwas komisches heraus
(siehe Anhang). Das kommt auch, wenn man den Editor startet und ihn wieder minimiert.
|
Ok, hab ich mir aufgeschrieben und werd mir das Problem mal anschauen und werd es gegebenenfalls beheben. Ob das jetzt an einem Skin liegt, weiß ich nicht. Kann dir erst am Montag sagen, ob ich es reproduzieren konnte.
henni hat folgendes geschrieben : | * Man bräuchte noch eine große Textbox, also eine Memo Komponente für den Editor |
An einer Memo-Komponente arbeite ich bereits. Jedoch erst in kleinen Schritten. Im Moment erstelle ich eine ScrollBar. Danach kommt eine ListBox-Komponente und dann kommt das Memo
henni hat folgendes geschrieben : | * Zur Portable Version: Was spricht gegen einen Kommandozeilen Parameter?
Miranda macht das so, dass es eine Ini-Datei hat, wo die Pfade jeweils absolut oder relativ
angegeben werden können |
Das Problem ist, wenn man den Parameter vergisst und die Daten dann nicht im Programmordner sondern im %APPDATA%-Ordner gespeichert werden. Das sollte in einer Portable-Version eigendlich nicht passieren.
henni hat folgendes geschrieben : | * Es wäre toll, wenn jedes Widget eine Art Menü hätte, das sich dann einblendet, wenn man mit dem
Mauszeiger drüber fährt. Über dieses Menü kann man das Widget dann entfernen oder in die Optionen
des Widgets gelangen |
Ja, das Menü ist eine gute Idee. Jedoch dauert die Realisierung wahrscheinlich etwas. Aber eine wirklich tolle Idee
henni hat folgendes geschrieben : | * Außerdem wäre es toll, wenn es für einige Widgets ein Options-Formular gäbe. Darüber könnte man
dann z.b. bei dem Wetter-Widget einstellen, von welchem Ort das Wetter angezeigt werden soll. |
Das werd ich mir noch überlegen - vorallem wie ich es am besten Realisieren kann.
henni hat folgendes geschrieben : | * Verknüpfung der *.widget Datei mit deinem Programm, sodass man mit dem Browser per Download die
Widgets gleich installieren kann |
Dafür muss ich erstmal die Startparameter-Verarbeitung erweitern. Sobald das dann funktioniert, werd ich die .widget-Dateien mit dem Programm optional verknüpfen lassen.
henni hat folgendes geschrieben : | * Notizzettel |
Kommt sobald die Memo-Komponente erstellt ist
henni hat folgendes geschrieben : | * ToDo-Liste |
Kommt sobald die ListBox-Komponente erstellt ist
henni hat folgendes geschrieben : | * Shutdown-Leiste, mit Standby, Ruhezustand oder ähnlichem |
Ok, das ist auch noch eine gute Idee. Werd dafür noch eine weitere Unit einbauen müssen - sonst hat man per Widget keinen Zugriff darauf.
henni hat folgendes geschrieben : | * Systeminfos, wie z.b. Laufzeit des Computers |
Das kann man je schnell selber machen - GetTickCount() ist im Widget bereits vorhanden
henni hat folgendes geschrieben : | * Laufwerks Eigenschaften, z.b. welche CDs gerade im Laufwerk sind und das man diese auswerfen und
wieder einfahren kann |
Also die Laufwerke lassen sich bereits auslesen (in die uses-Liste einfach die Unit "SystemInfo" einbinden). Das Auswerfen gibt es noch nicht, ist aber einer gute Idee. Werd die SystemInfo in der Hinsicht erweitern.
henni hat folgendes geschrieben : | * Schnellstart Leiste, wo man Verknüpfungen ablegen kann |
Ok, dafür werd ich ein paar Sachen noch einbauen müssen (z.B. Icon aus Datei auslesen), aber an sich eine gute Idee.
henni hat folgendes geschrieben : | HINWEIS: ich weiß, das sind viele Verbesserungsvorschläge. Wenn man die so liest, könnte man vielleicht auf die Idee kommen, dass ich das Programm momentan noch nicht so gut finde.
Irrtum: Ich finde das Programm so schon sehr sehr sehr gut, und kann mir sehr wohl vorstellen, was in diesem Projekt für eine Arbeit drinsteckt. Gratulation nochmals für diesen Erfolg!
Also meine Vorschläge sind wirklich nur als solche zu betrachten. Sie müssen keinesfalls umgesetzt werden, auch so finde ich das Programm schon top. |
Ich find eine Liste kann nicht lang genug sein, da hab ich wenigstens was, was ich abarbeiten kann
henni hat folgendes geschrieben : | Ich wette, dein Programm kommt irgendwann mal in die Chip-Zeitschrift oder ähnliches  |
Noch würd ich das nicht wollen, da dafür noch nicht genug vorhanden ist.
henni hat folgendes geschrieben : | Und ich werde bald ein Archiv mit Bildern des Google-Desktops auf meine Homepage stellen, den Link gebe ich dann bescheid. |
Das ist ein super-Service. Werd ich mir am Montag mal ganz genau anschauen. Ich hab gerade mal kurz reingeschaut und find die Screenshots sehr gut und informativ. Vorallem das "Widget aus dem Internet laden" find ich sehr gut. Ich werd mich mal um ein php-Script auf meiner Website kümmern und dann sowas ähnliches auch einbauen.
henni hat folgendes geschrieben : | Mal ne Frage: Wie kann man die Resourcen aus der *.widget-Datei wieder extrahieren? |
Das ist zwar prinzipiell möglich, jedoch noch nicht eingebaut. Ich werd mich mal hinsetzen und das noch mit einbauen.
henni hat folgendes geschrieben : | Und noch eine Frage: wie kann ich bei deiner Sidebar den Style einstellen? (Vista / Longhorn etc.)
Im Quelltext steht irgendetwas von MainForm.AddPopUpMenu?? Irgendwie wird das nie angezeigt! |
Per Standard ist das Popup-Menü von einem Widget per Strg + Rechtsklick geöffnet - wie Hidden bereits gesagt hat. Ich glaub ich werd den Default-Wert aber ändern - auf einen einfachen Rechtsklick
So, das war jetzt ein langer Post *schnauf*
PS @hidden: hab deinen Post gelesen und werd den Default wie gesagt auch ändern.
|
|
henni
      
Beiträge: 48
Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
|
Verfasst: Sa 18.10.08 17:44
Ah, ist ja schön, dass dir einige meiner Ideen gefallen!
Und noch viel besser, dass du diese evtl. umsetzen willst!!
So, jetzt habe ich mir auch schon ein Widget gebastelt: Shutdown.
Was es bringt könnte ihr euch selbst erraten
Doch das einzige, was noch fehlt, ist dass es den Computer wirklich herunterfährt
Im Anhang befindet sich das noch unnütze Widget und ein Screenshot.
Ich hoffe es funktioniert (jedenfalls die Knöpfe)!
Und dann fällt mir noch etwas ein, was ich bei dem Shutdown manuell machen musste:
Die Images haben zwar die Eigenschaft HoverGraphic, aber was noch fehlt ist sowas wie MouseDownGraphic.
Also dass wenn man mit der Maus darauf Klickt, das entsprechende Bild erscheint.
Das wäre recht praktisch!
Einloggen, um Attachments anzusehen!
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Sa 18.10.08 17:54
Hi,
@Widgets herunterladen: - Versions-Check
- Automatische Benachtichtigung bei neuer Widget-Version
E: Beantrage, '.widget' in die Liste der erlaubten Dateieendungen einzutragen
E2: Wtf? Wenn ich den Zeilenumbruch hinter dem '/list' wegmache, fehlt die Zeile komplett
E3: @Shutdown: Mach's ein stück kleiner und es wird eventuell ein "always on top" bei mir  Btw: Die Buttons sollten nur auf Rechtsklick reagieren
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
littleDave 
      
Beiträge: 111
Erhaltene Danke: 2
Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
|
Verfasst: Sa 18.10.08 20:03
henni hat folgendes geschrieben : | Ah, ist ja schön, dass dir einige meiner Ideen gefallen!
Und noch viel besser, dass du diese evtl. umsetzen willst!!
So, jetzt habe ich mir auch schon ein Widget gebastelt: Shutdown.
Was es bringt könnte ihr euch selbst erraten
Doch das einzige, was noch fehlt, ist dass es den Computer wirklich herunterfährt
Im Anhang befindet sich das noch unnütze Widget und ein Screenshot.
Ich hoffe es funktioniert (jedenfalls die Knöpfe)! |
Ich werd eine ShutDown-Komponete in der nächsten Version einbauen. Bis dahin kannst du ja mal ein PlugIn schreiben, damit es funktioniert
henni hat folgendes geschrieben : | Und dann fällt mir noch etwas ein, was ich bei dem Shutdown manuell machen musste:
Die Images haben zwar die Eigenschaft HoverGraphic, aber was noch fehlt ist sowas wie MouseDownGraphic.
Also dass wenn man mit der Maus darauf Klickt, das entsprechende Bild erscheint.
Das wäre recht praktisch! |
Klar, das ist kein Problem das einzubauen.
Hidden hat folgendes geschrieben : | @Widgets herunterladen: - Versions-Check
- Automatische Benachtichtigung bei neuer Widget-Version
|
Das wird nicht so schnell möglich sein, da ich dafür erstmal eine Art Webservice erstellen muss. Aber sobald das dann funktioniert und eingebaut ist, wird ein Version-Check natürich mit dabei sein. Von automatischen Überprüfungen halte ich nicht viel, jedoch denke ich, dass man dann per Knopfdruck alle Widgets auf einmal überprüfen können wird.
|
|
henni
      
Beiträge: 48
Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
|
Verfasst: Sa 18.10.08 22:35
littleDave hat folgendes geschrieben : |
Ich werd eine ShutDown-Komponete in der nächsten Version einbauen. Bis dahin kannst du ja mal ein PlugIn schreiben, damit es funktioniert
|
Ok, werde ich machen!
Das Plugin System ist richtig genial!!
Ich habe es sogar verstanden, wie es geht!!!
|
|
littleDave 
      
Beiträge: 111
Erhaltene Danke: 2
Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
|
Verfasst: Sa 18.10.08 23:31
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Sa 18.10.08 23:53
Hi,
Auch, wenn ich noch nicht die Zeit hatte, mich näher als einmal lesen mit dem Plugin-System zu beschäftigen: Eine Sache ist mir glaube ich schon einmal aufgefallen. Und zwar könntest du diesen code doch mit einem Tool in der Engine erzeugen lassen, oder?
Also insofern als, dass der Quelltext, der hier im Moment komplett aus Strings mit #13#10 angegeben ist, dem Tool als normaler Quelltext übergeben werden und das Tool die Unit ausgibt. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57:
| const ASygScriptUnitName : string = 'ExamplePlugIn'; ASygScriptUnitSource : string = 'unit ExamplePlugIn;'+#13#10+ #13#10+ '// THIS IS VERY IMPORTANT !!!!!'+#13#10+ '// YOU MUST NOT DELETE THIS LINE'+#13#10+ '{$CALLCONVENTION STDCALL}'+#13#10+ '// OTHERWISE THE GENERATED CODE'+#13#10+ '// DOES NOT HAVE THE CALL-CONVENTION: stdcall'+#13#10+ #13#10+ 'uses'+#13#10+ ' Classes; // for TObject (TObject is not in the System.pas'+#13#10+ ' '+#13#10+ 'type'+#13#10+ ' // A sample class'+#13#10+ ' TMyPluginClass = class(TObject)'+#13#10+ ' public'+#13#10+ ' // the script engine does not know constructors. '+#13#10+ ' // So you can simple make a function which '+#13#10+ ' // returns the new generated object'+#13#10+ ' function Create: TMyPluginClass;'+#13#10+ ' // you do not have the publish the destructor if you'+#13#10+ ' // create decenent of TObject. '+#13#10+ ' '+#13#10+ ' // Here you can define functions and procedures'+#13#10+ ' function IntValue: integer; '+#13#10+ ' procedure SetIntValue(value: integer);'+#13#10+ ' '+#13#10+ ' // NOTE: YOU CAN NOT CREATE A FUNCTION WITCH RETURNS A STRING'+#13#10+ ' // IF YOU WANT TO RETURN A STRING, CREATE SOMETHING LIKE THIS:'+#13#10+ ' // '+#13#10+ ' // procedure GetString(var value: string);'+#13#10+ ' //'+#13#10+ ' // OnChange-Event'+#13#10+ ' procedure GetOnBeforeChange(var s: string); '+#13#10+ ' procedure SetOnBeforeChange(value: string);'+#13#10+ ' // OnChanged-Event'+#13#10+ ' procedure GetOnChanged(var s: string);'+#13#10+ ' procedure SetOnChanged(value: string); '+#13#10+ ' end;'+#13#10+ ' '+#13#10+ '// If you just want to add a simple function and not an object,'+#13#10+ '// you have to add the key word "EXTERNAL" after the declaration'+#13#10+ 'procedure MyShowMessage(aMsg: string); external; '+#13#10+ #13#10+ #13#10+ '// If you are done with the header, click on "File" -> "Open" and'+#13#10+ '// open the file "FormatDelphiExportFunction.scs"'+#13#10+ '//'+#13#10+ '// Now change back to your header source and click on '+#13#10+ '// "Project" -> "Export to Delphi Unit". Answer the dialog with "YES",'+#13#10+ '// wait a few seconds and open the new tab'+#13#10+ #13#10+ 'begin'+#13#10+ ' '+#13#10+ 'end.'+#13#10; |
Insgesammt könnten glaube ich alle .pas-Units mit einem kurzen Formular im "Plugin-Editor" und einem Memo für den Source hier oben von der Engine erzeugt werden.
Habe allerdings auch das Konzept noch nicht ganz verstanden, insofern ist es  , dass ich jetzt schon Ratschläge gebe/Wünsche äußere, wo ich garnicht weiß, welche dieser Units jetzt wie häufig variiert werden müssen.
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
henni
      
Beiträge: 48
Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
|
Verfasst: So 19.10.08 00:03
Ey, dieses Plugin System ist allein schon so richtig geil!!
Vor allem die Logik stimmt, sodass es eigentlich fast jeder kapieren müsste!
Es funktioniert einwandfrei! Es macht einfach nur Spaß, das es so funktioniert, wie man es sich denkt!!
Also ein Teil der Rest der Ferien werde ich jetzt erstmal Plugins programmieren...
Doch ich habe noch folgende Änderung an dem Beispiel vorgenommen:
Ich habe den SygScriptSource nicht direkt von dem konstanten String geladen (war mir zu unübersichtlich) sondern per Ressource.
Aber ansonsten:
Super Super Super!
Also das Plugin-System gefällt mir bisher am besten!
* Es sehr ist logisch aufgebaut. (Ich habe das Beispiel 2-3 mal durchgelesen und dann als Referenz
danaben gelegt. Ich hatte keine Probleme beim Verständnis. Vor allem: Ich habe davor noch so gut
wie nie mit Dlls gearbeitet!)
* Es ist super
* mir sind keine Macken / Fehler / Bugs aufgefallen.
* es ist 100% kompatibel mit eigenen Funktionen
Wenn Microsoft doch bloß nur annäherungsweise so gut wäre..
Dann, dann sähe die Welt anders aus...
Nur das ganze ergibt zwei Probleme:
Erstens:
Mein Widget benötigt jetzt das Plugin SystemTools Version 1.0.
Wenn das jetzt nicht da ist, oder irgendwie überschrieben wurde, funktioniert das Widget nicht mehr.
Es wäre toll, wenn ich bei meinem Widget einstellen könnte, welches Plugin inkl. Version es benötigt.
Zweitens:
Mein Plugin könnte jetzt ein ganz ganz böser Virus sein
Nein, ist es natürlich nicht, der Quelltext ist ja dabei.
Aber es wäre ganz praktisch wenn man die Dlls irgendwie mit RSA oder ähnlichem Signieren könnte:
Jede DLL erhält die Public Keys des Herstellers, nur der Hersteller hat seinen Private Key.
Jetzt kann via RSA geprüft werden, ob die Public Keys richtig sind. So kann man den Hersteller validieren, sodass man nicht befürchten muss, dass es sich um einen Virus handelt.
//Edit:
@Hidden:
Mir war das auch zu unübersichtlich. Darum habe ich den ScriptQuelltext einfach in einer *.pas geschrieben, ihn mit Delphi editiert und ihn dann als Ressource in die DLL eingebunden.
Das war kein Problem.
Einloggen, um Attachments anzusehen!
|
|
littleDave 
      
Beiträge: 111
Erhaltene Danke: 2
Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
|
Verfasst: So 19.10.08 02:05
Hidden hat folgendes geschrieben : | Auch, wenn ich noch nicht die Zeit hatte, mich näher als einmal lesen mit dem Plugin-System zu beschäftigen: Eine Sache ist mir glaube ich schon einmal aufgefallen. Und zwar könntest du diesen code doch mit einem Tool in der Engine erzeugen lassen, oder? |
Ich wollt eigendlich PlugIn-Editor und das Hauptprogramm getrennt lassen. Generell ist das zwar schon möglich, jedoch wollt ich mal eine Trennung einbauen. Denn wenn man für die Entwickung eines PlugIns immer wieder das komplette Programm neu starten muss ist es, denke ich jedenfalls, doch etwas nervig. Daher die Trennung.
henni hat folgendes geschrieben : | Ey, dieses Plugin System ist allein schon so richtig geil!!
Vor allem die Logik stimmt, sodass es eigentlich fast jeder kapieren müsste!
Es funktioniert einwandfrei! Es macht einfach nur Spaß, das es so funktioniert, wie man es sich denkt!!
Also ein Teil der Rest der Ferien werde ich jetzt erstmal Plugins programmieren... |
*grins* *freu* *freu*  dann hoffe ich, dass es so positiv weitergeht mit den PlugIns
henni hat folgendes geschrieben : | Doch ich habe noch folgende Änderung an dem Beispiel vorgenommen:
Ich habe den SygScriptSource nicht direkt von dem konstanten String geladen (war mir zu unübersichtlich) sondern per Ressource. |
Woher du die Header-Datei hast, ist dem Programm eigendlich egal, könntest sie theoretisch auch erst von der ISS runterladen  . Hauptsache ist, dass der Header richtig ankommt. Sobald der dann da ist, kann man das Widget (hoffentlich) problemlos kompilieren. Wenn ein Widget nur ausgeführt wird, dann wird der Header sogar überhaupt nicht benötigt.
henni hat folgendes geschrieben : | Aber ansonsten:
Super Super Super!
Also das Plugin-System gefällt mir bisher am besten! |
henni hat folgendes geschrieben : | * Es sehr ist logisch aufgebaut. (Ich habe das Beispiel 2-3 mal durchgelesen und dann als Referenz
danaben gelegt. Ich hatte keine Probleme beim Verständnis. Vor allem: Ich habe davor noch so gut
wie nie mit Dlls gearbeitet!)
* Es ist super
* mir sind keine Macken / Fehler / Bugs aufgefallen.
* es ist 100% kompatibel mit eigenen Funktionen |
Dann hab ich ein Ziel ja schonmal erreicht: Einfache Einbindung ohne Komplikationen und extrem hohe Flexibilität
henni hat folgendes geschrieben : | Wenn Microsoft doch bloß nur annäherungsweise so gut wäre..
Dann, dann sähe die Welt anders aus... |
Dein Lob in allen Ehren, doch ganz so hoch hinaus wollen wir doch (noch) nicht
henni hat folgendes geschrieben : | Nur das ganze ergibt zwei Probleme:
Erstens:
Mein Widget benötigt jetzt das Plugin SystemTools Version 1.0.
Wenn das jetzt nicht da ist, oder irgendwie überschrieben wurde, funktioniert das Widget nicht mehr. |
Ja, das ist der Nachteil des PlugIn-Systems. Aber das lässt sich nicht so einfach ändern, da das Programm ja nicht wissen kann, wie wichtig das PlugIn für das Widget ist.
henni hat folgendes geschrieben : | Es wäre toll, wenn ich bei meinem Widget einstellen könnte, welches Plugin inkl. Version es benötigt. |
Auf die Idee mit der Version bin ich noch garnicht gekommen  Hatte die erstmal nur als Zusatzinformation mit Angeben lassen.
henni hat folgendes geschrieben : | Zweitens:
Mein Plugin könnte jetzt ein ganz ganz böser Virus sein
Nein, ist es natürlich nicht, der Quelltext ist ja dabei.
Aber es wäre ganz praktisch wenn man die Dlls irgendwie mit RSA oder ähnlichem Signieren könnte:
Jede DLL erhält die Public Keys des Herstellers, nur der Hersteller hat seinen Private Key.
Jetzt kann via RSA geprüft werden, ob die Public Keys richtig sind. So kann man den Hersteller validieren, sodass man nicht befürchten muss, dass es sich um einen Virus handelt. |
Also wenn man ein Widget startet, welches ein PlugIn benötigt, dann wird vor dem allerersten Start ein Hinweis angezeigt, welche PlugIns das Widget benötigt und ob man es ausführen will. Da du dein Widget bereits vorher ohne PlugIn ausgeführt hast, kommt die Meldung natürlich nicht mehr. Also eine kleine Basissicherheit ist schon geschaffen, jedoch ist die noch Ausbaufähig.
|
|
passiv
      
Beiträge: 270
WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
|
Verfasst: So 19.10.08 15:26
achja, weil dus grad wieder erwähnt hast: man weiß nicht, welche units dass es bereits gibt und was die so bereitstellen. wär mal ganz nett, eine hilfe-datei oder was vergleichbares zu machen ...
um nicht manches doppelt zu schreiben
edit: und vor allem, wenn du jetzt anfängst und stetig mitschreibst istes weniger arbeit, als hintenach alles auf einmal machen zu müssen 
_________________ Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: So 19.10.08 19:01
Wollte ich auch gerade vorschlagen
Jetzt weiß ich endlich, warum ich ein Unterprogramm zum Plugins erstellen vermisst habe, ich habe einen Ordner komplett unterschlagen und nur die Units im Unterordner "Examples" angesehen
Btw: Kann ein Widget eigentlich ohne Plugin globale Shortcuts verwenden? Sonst schreibe ich da mal ein Plugin.
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
littleDave 
      
Beiträge: 111
Erhaltene Danke: 2
Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
|
Verfasst: So 19.10.08 19:12
passiv hat folgendes geschrieben : | achja, weil dus grad wieder erwähnt hast: man weiß nicht, welche units dass es bereits gibt und was die so bereitstellen. wär mal ganz nett, eine hilfe-datei oder was vergleichbares zu machen ...
um nicht manches doppelt zu schreiben
edit: und vor allem, wenn du jetzt anfängst und stetig mitschreibst istes weniger arbeit, als hintenach alles auf einmal machen zu müssen  |
Ich habe bereits mehrere Dokumentationssysteme bei mir ausprobiert (z.B. pas2doc), jedoch war ich mit dem Ergebniss nicht ganz zufrieden. Daher muss ich wohl oder übel ein eigenes Dokumentationssystem erstellen. Sobald das funktioniert (wird wahrscheinlich nicht allzulange dauern, da der Pascal-Compiler ja schon vorhanden ist  ), wird es eine API-Reference geben.
Hidden hat folgendes geschrieben : | Wollte ich auch gerade vorschlagen
Jetzt weiß ich endlich, warum ich ein Unterprogramm zum Plugins erstellen vermisst habe, ich habe einen Ordner komplett unterschlagen und nur die Units im Unterordner "Examples" angesehen
Btw: Kann ein Widget eigentlich ohne Plugin globale Shortcuts verwenden? Sonst schreibe ich da mal ein Plugin.
mfG, |
Nein, globale Shortcuts gibt es noch nicht und sind auch nicht geplant. Daher wäre das als PlugIn natürlich wunderbar 
|
|
henni
      
Beiträge: 48
Win 7
Delphi 5 Standart, C# (Visual Studio 2008 Express Edition)
|
Verfasst: So 19.10.08 23:52
Kann man eigentlich auch Plugins schreiben, die bspw. die IDE erweitern?
Oder das Hauptformular?
@Hidden: auf meiner Homepage gibts jetzt alle meine Selbst programmierten Widgets und Plugins.
Dort findest du auch das neu Shutdown Widget in kleiner Version, es benötigt aber das Plugin Systemtools.
Der Link ist Hier.
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Mo 20.10.08 00:34
Hi,
Teste ich dann gleich mal. Kann dann aber leider heute kein Feedback abgeben, da der PC im Erfolgsfall dann unten ist
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
littleDave 
      
Beiträge: 111
Erhaltene Danke: 2
Win 7
Delphi 7 Prof, Turbo Delphi, VS 2008 Team System, VS 2010 Premium
|
Verfasst: Mo 20.10.08 08:17
|
|
|