AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TXStyleForm reloaded 1.1 beta 3 - Formular mit Skin
Thema durchsuchen
Ansicht
Themen-Optionen

TXStyleForm reloaded 1.1 beta 3 - Formular mit Skin

Ein Thema von jaenicke · begonnen am 25. Feb 2009 · letzter Beitrag vom 12. Apr 2009
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von jaenicke
jaenicke
Registriert seit: 10. Jun 2003
Hallo!

Diese Komponente verpasst einem Formular einen Skin. Dabei geht es nicht um die Komponenten auf dem Formular, sondern um den Rand und die Titelleiste des Formulars.
Dafür wird das eigentliche Fenster in einem Containerfenster eingebettet, das die Darstellung der Ränder übernimmt.

http://www.sj-berlin.de/service/df/s..._Titledemo.png
Weitere Screenshots siehe unten im Folgepost einzeln als Anhang oder direkt hier:
http://www.sj-berlin.de/service/df/s...screenies.html

Ein Editor für das visuelle Erstellen oder Editieren von Styles ist ebenfalls vorhanden, auch Hovereffekte werden visuell dargestellt.
Die Integration in die Komponente und die Delphi-IDE steht noch aus.

Ein Forum zum Support und mit weiteren Informationen findet ihr hier:
http://sjberlin.de/forum/viewforum.php?f=3

Dies ist die Weiterführung des Projektes TXStyleForm von obbschtkuche:
http://www.delphi-forum.de/viewtopic.php?p=148096

Features:
  • Eigene Bilder für die verschiedenen Teile des Fensterrahmens und der Titelleiste sowie deren Knöpfe
  • Einstellung der Größe der verschiedenen Teile des Fensters
  • Alphablendingunterstützung *neu*
  • Unterstützung einer transparenten Farbe *neu*
  • Graustufenbilder für Fenster, die nicht den Fokus haben *neu*
  • Aktivierbar / deaktivierbar zur Laufzeit *neu*
  • Styleauswahl zur Laufzeit *neu*
  • Styleeditor mit exakter Livevorschau *neu*
(*) Neu heißt im Vergleich zum ursprünglichen TXStyleForm.

Lizenz:
MPL 1.1 oder GPL 2.0 oder LGPL 2.1

Installation:
Das Setup ausführen oder:
  • Das Zip-Archiv auspacken
  • Den Unterordner Source dem Bibliothekspfad hinzufügen
  • Das Package installieren
Bei Verwendung des Setups sollte als Ziel der Installation ein anderes als das voreingestellte Verzeichnis benutzt werden, da dieses recht lang ist.
Das Setup und das danach ausgeführte Tool sollte die Installation automatisch vornehmen. Delphi 2007 und 2009 funktionieren damit noch nicht richtig, da ist nach wie vor eine manuelle Nacharbeit bei der Installation des Packages notwendig.

Verwendung:
  • Die Komponente TStyleComponent aufs Formular legen
  • XStyleForm in die uses Liste hinzufügen
    Delphi-Quellcode:
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, XStyleComponent, XStyleForm;
  • Aus class(TForm) in der Formulardeklaration TXStyleForm machen
    Delphi-Quellcode:
    type
      TForm1 = class(TXStyleForm)
        XStyleComponent1: TXStyleComponent;
      private
      ...
  • Eigenschaften selbst definieren oder bei OpenFile den kompletten Dateinamen inkl. Pfad zu einer der Skindateien angeben
  • Mit der Eigenschaft XStyleEnabled z.B. im Ereignis OnCreate den Style aktivieren oder deaktivieren. Standardmäßig ist dieser deaktiviert.
Unterstützte Delphiversionen:
Delphi (3), 5, 6, 7, 2005, 2006, 2007 und 2009
(Delphi 3 visualisiert nicht, ob das Fenster den Fokus hat und das Fenster kann beliebig klein gezogen werden.)

Unterstützte Windowsversionen:
Getestet unter Windows 95, 98, ME, 2000, XP, Vista
  • Den gesamten Quelltext noch einmal überarbeiten, auch was verschiedene Delphiversionen angeht. *fertig*
  • Einen automatischen Installer erstellen. *Alpha verfügbar*
  • Den Editor in die Komponente integrieren und für die Delphi-IDE verfügbar machen. *in Planung*
  • Einen Experten für die Delphi IDE integrieren, der die nötigen Umstellungen selbst macht. *nur Idee*
  • ...
Die Version 1.2 mit dem Experten in der IDE plane ich dann für Mitte Mai, Ende Juni soll es dann die Version 2.0 mit komplett überarbeiteter Implementierung der Komponente mit integriertem Editor geben.

Bekannte Probleme:
  • Unter Delphi 2009 gibt es wegen der Umstellung des bisherigen unsichtbaren Application Fensters Probleme mit dem Knopf auf der Taskleiste. *teilweise behoben*

Das solls fürs Erste gewesen sein, im Anhang gibts den Quelltext inkl. und ohne kompilierte Demo und Editor.

Die Komponente habe ich auch im DF und dem DT vorgestellt:
http://www.delphi-forum.de/viewtopic.php?p=551018
http://forum.delphi-treff.de/showthread.php?t=26292

Die Changelogs veröffentliche ich jetzt nicht mehr hier sondern im Forum in den entsprechenden Threads:
http://sjberlin.de/forum/viewtopic.php?f=5&t=3&p=3 (Changelog der Version 1.1)

Schönen Gruß,
Sebastian
Angehängte Dateien
Dateityp: zip xstyleform_reloaded_1.1_beta_3_577.zip (800,9 KB, 243x aufgerufen)
Dateityp: zip xstyleform_reloaded_1.1_beta_3_src_115.zip (287,2 KB, 143x aufgerufen)
Dateityp: exe xstyleformsetup1.1beta3_211.exe (686,0 KB, 157x aufgerufen)
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
mw19
 
#21
  Alt 3. Apr 2009, 19:41
Hallo,

nein, die Komponente habe ich nur einmal auf die Form gezogen.
Anbei mal das Projekt selber.

Vielen Dank für die Unterstützung!

Gruß,
Michael
Angehängte Dateien
Dateityp: zip xstyle_demo_530.zip (22,7 KB, 24x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#22
  Alt 3. Apr 2009, 23:26
Ach jetzt verstehe ich, stimmt, das habe ich nicht dazu geschrieben. Das werde ich gleich noch ergänzen.

Wie auch in der Demo musst du den Style selbst aktivieren. Der Sinn darin ist, dass es ja explizit aktivierbar und deaktivierbar sein soll und deshalb von den Einstellungen des Benutzers der Anwendung abhängt. Und deshalb musst du die Eigenschaft XStyleEnabled z.B. in OnCreate des Formulars setzen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  XStyleEnabled := True;
end;
So ist es bei der Demo ja auch, erst nach der Aktivierung der CheckBox ist der Style angewendet.
Sebastian Jänicke
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 12 Athens
 
#23
  Alt 3. Apr 2009, 23:34
Dann wäre es aber IMHO sinnig, Enabled standardmäßig auf true zu setzen, zumindest wäre das das Verhalten, das ich erwarten würde. Allerdings muss ich dazusagen, dass ich mir außer den Screenshots nichts weiter angeschaut habe.
Detlef
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#24
  Alt 3. Apr 2009, 23:55
Der Grund für die Entscheidung meinerseits war ganz einfach, dass das die Startzeit unnötig verlängern würde. Dann würde in dem internen Create das aktiviert. Und danach ggf. sofort wieder deaktiviert.

So wird es entweder gelassen wie es ist oder einmal aktiviert. Ich hätte das in die Komponente packen können, das fällt mir ein, ich weoß nicht, ob es einen Grund dagegen gab.

Allerdings ist diese Komponente im nächsten großen Release 2.0 dann (hoffentlich) Geschichte, weil ich das komplett in die Delphi-IDE integrieren will.
Sebastian Jänicke
  Mit Zitat antworten Zitat
mw19
 
#25
  Alt 4. Apr 2009, 07:20
Hallo,

vielen Dank für den Hinweis! Funktioniert einfach wunderbar.

Wenn "Active" im Objektinspektor stehen würde - gerne auch mit False als default - dann bin ihc mir sicher hätte ich nicht nachgefragt

Ändert aber nichts daran, dass ich die Komponente richtig klasse finde! Werde auf jeden Fall am Ball bleiben und die nächsten Versionen begutachten.

Vielen Dank noch einmal und weiter so!

Gruß,
Michael
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#26
  Alt 4. Apr 2009, 17:05
Abgerundete Fenster wie per PN angesprochen sind sicher kein Problem, die Frage ist nur wie das aussehen soll. Eine selbst definierte Region übergeben oder nur Parameter festlegen?

Um genau zu sein gibt es z.B. die Funktion CreateRoundRectRgn, deren beide Parameter für die Ellipse, die die Rundung darstellt, einfach angegeben werden könnten.
http://msdn.microsoft.com/en-us/library/dd183516.aspx
Das einzubauen wäre kein Problem.

Die andere Möglichkeit wäre selbst eine solche Region zu definieren und der Komponente zu übergeben, dann wären auch z.B. Ränder wie Briefmarken gezackt denkbar.
Aber man muss eben alles selbst machen und der Komponente übergeben. (Nebenbei ginge das auch ohne Modifikation der Komponente.)
Sebastian Jänicke
  Mit Zitat antworten Zitat
mw19
 
#27
  Alt 7. Apr 2009, 10:10
Hallo,

abgerundete Ecken an sich erstellen ist in der Tat kein Problem. Nur teste das ganze dann mal unter Vista mit diesem bl..n Aera Design. Vista stellt die Fenster leider nicht wirklich so dar wie XP es tut.

Gruß,
Michael
  Mit Zitat antworten Zitat
mw19
 
#28
  Alt 7. Apr 2009, 11:19
Hallo,

lässt sich in diese Designs noch irgendwie das Systemmenü bzw. ein weiterer Button neben dem Minimieren-Button integrieren?

Gruß,
Michael
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#29
  Alt 8. Apr 2009, 17:51
Das Systemmenü per rechter Taste sollte funktionieren, wenn auch noch nicht alle Einträge.

Ansonsten wäre es natürlich überhaupt kein Problem einen weiteren Button einzufügen, dazu müsste der Quelltext entsprechend geändert werden.

Zitat von mw19:
abgerundete Ecken an sich erstellen ist in der Tat kein Problem. Nur teste das ganze dann mal unter Vista mit diesem bl..n Aera Design. Vista stellt die Fenster leider nicht wirklich so dar wie XP es tut.
Aero finde ich schon schön, da hatte ich auch keine Probleme. Ich habe das mittlerweile ein wenig getestet, die runden Ecken an sich funktionieren problemlos, aber ich entwickle ohnehin ausschließlich unter Vista und teste dann in einem virtuellen PC die XP-Kompatibilität usw.
Ich werde da wohl entsprechende Parameter einbauen. Das Problem ist nur, dass die Einstellungen sowieso hoffnungslos unübersichtlich sind.

Ich bin mir auch noch unschlüssig welche Veränderungen ich in welches Release einbaue. Denn prinzipiell gibt es zwar noch ein Zwischenrelease 1.2 vor der komplett neuen Version 2.0, aber ich weiß noch nicht was da noch Neues wirklich sinnvoll rein passt (und was erst in 2.0 sinnvoll realisierbar ist).

Das mit den Buttons plane ich in Version 2.0 ohnehin komplett anders zu realisieren. Da soll es eine Liste geben mit Buttons, die dann verschiedene Positionen, Bilder und Funktionen bekommen können. Und die Liste soll eben auch direkt änderbar sein. Da läuft ja im Moment erst die Planung was rein soll und möglich ist. Vor allem habe ich noch ein wenig Schwierigkeiten mir einen guten visuellen Editor einfallen zu lassen. Der soll ja in der Komponente und der erstellten Exe auch für die Benutzer der Software ggf. angezeigt werden können.
Sebastian Jänicke
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#30
  Alt 12. Apr 2009, 05:31
Ich habe soeben die beta 3 hochgeladen. Das Problem mit den Constraints ist behoben, das Problem mit Vista und Delphi 2007 und 2009 größtenteils.

Das zu beheben hat länger gedauert, weil ich auch noch die Reparatur für Vista generell eingebaut habe. Die Benutzung von XStyleForm sorgt also auch gleich dafür, dass unter Vista die Vorschau und Taskumschaltung usw. korrekt funktioniert, auch mit Delphi 2006 und früher.
Das hat leider andere Probleme mit sich gebracht, die ich erst noch ausführlich testen muss, aber zumindest bei einem einzelnen Formular sollte es immer funktionieren, nur beim Minimieren über das Systemmenü verschwindet der Taskleistenbutton noch.

Abgerundete Ecken habe ich in einer anderen Version bereits eingebaut, dort werde ich die Korrekturen dieser Version noch einbauen, dann wird zumindest das schon einmal bald funktionieren.
Sebastian Jänicke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 01:03 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