Delphi-PRAXiS
Seite 17 von 26   « Erste     7151617 1819     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Desktop Widget Engine (v0.72) (https://www.delphipraxis.net/119493-desktop-widget-engine-v0-72-a.html)

littleDave 31. Okt 2008 08:33

Re: Desktop Widget Engine (v0.64)
 
Zitat:

Zitat von Sherlock
Jetzt musst Du nur noch erklären, wie man Widgets internationalisieren kann, und ich leg los mit dem Eindeutschen, bzw. dem korrigieren der einen oder anderen Fehlerchen ;)

Also das mit den Widgets-Übersetzen hatte ich schonmal versucht einzubauen, hat aber, so wie ich das wollte, nur zu Fehlern geführt. Daher hab ich das erstmal nicht weiter gemacht.

Werd mir das für die nächste Version aber vornehmen.

Dbof 31. Okt 2008 12:04

Re: Desktop Widget Engine (v0.64)
 
Ich finde dein Programm echt wunderbar und nutze es auch. Nun kam ich gestern auf ein ähnliches Programm und war davon sinnlich begeistert. Dieses Programm nennt sich Bei Google suchenThoosje Sidebar und ist deinem Programm sehr ähnlich, hat aber einige besondere Funktionalitäten, die ich bei deinem vermisse. Am besten schaust du dir das einfach mal an, ist echt schön gemacht.

Sherlock 31. Okt 2008 12:51

Re: Desktop Widget Engine (v0.64)
 
Du weisst ja schon was die andere Sidebar kann...sags doch bitte. Ich komme bei den unübersichtlichen Seiten nicht so ganz zu Potte.

Sherlock

Dbof 31. Okt 2008 13:19

Re: Desktop Widget Engine (v0.64)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Na schön, also:
  • Die Sidebar lässt sich einfach verschieben, die Gadgets ziehen mit.
  • Möglichkeit, der Uhr verschiedene Skins zu verpassen
  • 9 verschiedene Skins für Sidebar anwählbar, Möglichkeit zum Selbstgestalten
  • Schatten kann zu den jeweiligen Gadgets und zur Sidebar hinzugefügt werden
  • Ein- Und Ausblenden der Sidebar mit Gadgets
  • Sieht der Vista Sidebar zum Verwechseln ähnlich(finde ich)


Soll jetzt keine Werbung sein, nur zum Vergleich :-D

Larsi 31. Okt 2008 13:55

Re: Desktop Widget Engine (v0.64)
 
Achso ja bei den Icons ist eine License.txt dabei wo drin steht dass du sie frei verwenden darfst ABER ein Verweis auf den Entwickler geben musst. Hast du das?

olee 31. Okt 2008 14:41

Re: Desktop Widget Engine (v0.64)
 
Zitat:

Zitat von Dbof
  • Sieht der Vista Sidebar zum Verwechseln ähnlich(finde ich)

Das soll ja auch so sein :wink:

Diese "Thoosje Sidebar" ist speziell als Vista-Sidebar-Ersatz gedacht.
Wenn ich mich nicht irre ist die sogar beim Vistamizer mit drin.

MFG

littleDave 31. Okt 2008 17:10

Re: Desktop Widget Engine (v0.64)
 
Zitat:

Zitat von Dbof
  • Die Sidebar lässt sich einfach verschieben, die Gadgets ziehen mit.
  • Möglichkeit, der Uhr verschiedene Skins zu verpassen
  • 9 verschiedene Skins für Sidebar anwählbar, Möglichkeit zum Selbstgestalten
  • Schatten kann zu den jeweiligen Gadgets und zur Sidebar hinzugefügt werden
  • Ein- Und Ausblenden der Sidebar mit Gadgets
  • Sieht der Vista Sidebar zum Verwechseln ähnlich(finde ich)

Erstmal danke für diese Liste - da hab ich wieder was zum Abarbeiten ;-)

Aber ich möchte mich mal kurz verteidigen: das Programm heißt ja explizit Thoosje Sidebar :zwinker:. Naja, ist aber keine Ausrede - ich werd mal schauen, was ich von der Liste alles einbauen kann. Vorallem die Punkte "die Gadgets ziehen mit" (ich hab mich immer noch nicht überwinden können, das einzubauen :oops:) und "Ein- und Ausblenden" der SideBar mit Gadgets" find ich sehr gut. Die Schatten find ich persönlich noch nicht so wichtig - und zu den Uhrenskins: man kann ja die bereits vorhandene Uhr leicht erweitern ;-).

Zitat:

Zitat von Larsi
Achso ja bei den Icons ist eine License.txt dabei wo drin steht dass du sie frei verwenden darfst ABER ein Verweis auf den Entwickler geben musst. Hast du das?

Oh, hab ich das was übersehen? Wenn das stimmt, bitte ich das zu entschuldigen, ich werd einen Hinweis im About-Dialg einbauen. Danke Larsi :thumb:

littleDave 3. Nov 2008 13:01

Re: Desktop Widget Engine (v0.65)
 
Version 0.65 online!

Diesmal hab ich kaum Changes drinnen, es ist also eher eine 0.64a, aber ein paar Sachen sind doch neu:

Ich hab ein paar kleine Fehlerchen in der deutschen Sprachdatei behoben. Außerdem hab ich ein paar kleine Übersetzungen verändert. Zudem war in den Optionen die Einträge in Tab "Themes" zu kurz, die hab ich nun länger gemacht.

Das erste, was beim Start auffallen sollte ist, dass die Widgets beim Start jetzt einfaden und nicht einfach aufpoppen. Ich hoffe, dass das Fading funktioniert - falls nicht bzw. falls ihr es blöd findet, könnt ihr es auch in den Optionen deaktivieren.

Außerdem hab ich mir mal die Thoosje Sidebar angeschaut und muss ehrlich sagen: die ist extrem eingeschränkt: man kann keine neuen Widgets erstellen bzw. bereits vorhandene bearbeiten. Das ist wirklich eine extreme Einschränkung.

Aber ich hab schon einen Punkt von der Liste mit eingebaut: Wenn man jetzt die SideBar woanders positioniert, werden die angedockten Widgets (jetzt endlich) mit verschoben. Das wollt ich eigendlich schon viel früher einbauen, jedoch hab ich mich erst jetzt dazu überwinden können.

(Download sowie ChangeLog im ersten Post)
Grüße
Dave

Sherlock 3. Nov 2008 13:12

Re: Desktop Widget Engine (v0.65)
 
Fade-in funktioniert und sieht schön aus.
SideBar nimmt die Widgets ebenfalls mit, perfekt.

Weiter so!

Ich hab gestern mal probiert ein Widget für den RSS-Feed von heise online zu basteln, aber leider erfolglos. Mein ambitionierteres Projekt, nämlich eine Börsenticker scheint damit in weite Ferne zu rücken :(
Aber ich probiers heute Abend nochmal, XML ist halt für mich noch relativ neu.

Sherlock

littleDave 3. Nov 2008 13:39

Re: Desktop Widget Engine (v0.65)
 
Zitat:

Zitat von Sherlock
Fade-in funktioniert und sieht schön aus.
SideBar nimmt die Widgets ebenfalls mit, perfekt.

Danke fürs Testen, hatte schon Angst, dass die SideBar mal wieder nicht funktioniert :stupid:

Zitat:

Zitat von Sherlock
Weiter so!

Mach ich :thumb: :)

Zitat:

Zitat von Sherlock
Ich hab gestern mal probiert ein Widget für den RSS-Feed von heise online zu basteln, aber leider erfolglos. Mein ambitionierteres Projekt, nämlich eine Börsenticker scheint damit in weite Ferne zu rücken :(
Aber ich probiers heute Abend nochmal, XML ist halt für mich noch relativ neu.

Also ich kann dir ja mal kurz Anhand des "Spiegel Online" - Widgets erklären, wie ich es mache.

Also als erstes Frage ich natürlich den RSS-Feed mit einer wgHTTP-Komponente ab:
Delphi-Quellcode:
wgHTTP1.GetURL('http://www.spiegel.de/schlagzeilen/rss/0,5291,,00.xml');
Im OnDone-Ereigniss lese ich dann den Inhalt aus und lassen ihn mit dem JvSimpleXML parsen:
Delphi-Quellcode:
procedure wgHTTP1Done(Sender: TObject; Content: string; ResponseCode: integer);
var pXML : TJclSimpleXML;
begin                    
  pXML := pXML.Create;
  try
    pXML.LoadFromString(Content);
    ParseContent(pXML);
  finally
    pXML.Free;
  end;
end;
So, jetzt ist die Funktion "ParseContent" nicht der XML-Parser, sondern ich füge den relevanten Inhalt in ein neues XML-Element ein. Zusätzlich berechne ich noch die Texthöhe von jedem Eintrag in der Funktion.

Dafür gehe ich in der "ParseContent" - Routine durch alle Einträge durch:
Delphi-Quellcode:
for i:=0 to Root.Items.Count-1 do
begin
  // Unterelement Nummer "i" abrufen
  Item := Root.Items.Item(i);
  // das sollte eigendlich nie passieren, aber sicher ist sicher
  if Item = nil then
     continue;
  // in dem RSS-Feed werden zuerst ein paar Zusatzinformationen
  // mitgesendet. Diese haben alle einen anderen Namen als "item"
  // Da diese für den Inhalt des Feeds erstmal nicht relevant sind
  // überspringen wir diese Einträge
  if Item.Name <> 'item' then
     continue;
So, wenn jetzt "Item.Name = 'item'" ist, füge ich einen neuen Eintrag in das interne XML-File ein:
Delphi-Quellcode:
newItem := XML.Root.Items.Add('data'); // ein neuer Eintrag
newItem.Items.AddS('msg', Item.Items.ItemNamed('title').Value); // die Überschrift des Feed-Items
newItem.Items.AddS('url', Item.Items.ItemNamed('link').Value); // der Link des Feed-Items
Jetzt berechne ich die Höhe des zukünftigen Eintrags und füge diesen ebenfalls zu "newItem" hinzu.
Delphi-Quellcode:
Rec := Rect(0, 0, tmpBMP.Width - 11, tmpBMP.Height);
                           
tmpBMP.Font.SetName('MS Sans Serif');
tmpBMP.Font.SetSize(8);
// imgLogo, da dies eine "Graphic" - Komponente enthällt.
// für die "Graphic" - Komponente hab ich die DrawText-Methode
// verbessert    
imgLogo.Graphic.DrawText(tmpBMP, newItem.Items.Value('msg', ''), Rec,
                         DT_LEFT or DT_CALCRECT or DT_WORDBREAK or DT_NOPREFIX,
                         0, 0);
// jetzt hab ich die Höhe des eintrags und speichere sie in das interne XML-File
height := Rec.Bottom + 7; // noch etwas Pufferabstand: 7 pixel
newItem.Items.AddI('height', height);
So, nun stehen im internen XML-File die Daten, die wirklich wichtig sind. Um genau zu sehen, wie die Sachen gespeichert werden, kannst du am Ende der "ParseContent"-Methode vor dem finally folgendes Einfügen:
Delphi-Quellcode:
ShowMessage(XML.SaveToString);
(ACHTUNG: die MessageBox wird sehr lang, zum schließen dann einfach "Enter" drücken)

Jetzt ist noch die OnMeasureItem-Methode der ListBox interessant. Da ich ja in der ParseContent-Methode die Höhe eines Eintrags berechnet habe, kann ich diesen einfach aus dem internen XML-File auslesen:
Delphi-Quellcode:
procedure wgListBox1MeasureItem(Sender: TObject; Target: TBitmap32; Index: integer; var Height: integer);
var Item: TJclSimpleXMLElem;
begin
  // Eintrag Nummer "index" auslesen
  Item := XML.Root.Items.Item(index);
  // Falls dieser Vorhanden ist
  if Item <> nil then
     // Die Höhe aus dem Eintrag "height" zurückgeben
     // 13 ist dabei der Default-Wert, falls "height" nicht vorhanden ist
     Height := Item.Items.IntValue('height', 13);
end;
Du solltest dir noch das OnDraw-Event anschauen, jedoch ist da nicht viel neues dabei.

Ich hoffe, ich konnte dir etwas helfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:18 Uhr.
Seite 17 von 26   « Erste     7151617 1819     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz