Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   JVCL Skinning - Probleme mit TJvWizard (https://www.delphipraxis.net/95560-jvcl-skinning-probleme-mit-tjvwizard.html)

Luckie 9. Jul 2007 13:40


JVCL Skinning - Probleme mit TJvWizard
 
Hallo,
ich benutze den Wizard-Dialog ais der JVCL. Zusätzlich benutze ich noch eine Skinning Komponente: VCLSkin. Ich habe allerdings den komischen Effekt, dass alle Schlatflächen geskinnt sind, bis auf die Finish-Schaltfläche. Was ist an der anders, so dass sie irgendwie nicht als TButton erkannt und entsprechend geskinnt wird?

Edit: Auch wenn ich der Skinning Komponente sage, dass eine Komponente der Klasse TJvWizardFinishButton ein BUtton ist, wird der Button nicht geskinnt.

JVCL Version: 3.31.

Luckie 10. Jul 2007 10:42

Re: JVCL Skinning - Probleme mit TJvWizard
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal einen Screenshot davon gemacht.

Robert Marquardt 10. Jul 2007 11:00

Re: JVCL Skinning - Probleme mit TJvWizard
 
Probier mal die aktuellen Dailys der JVCL und JCL. Gerade letztens wurde etwas bezueglich der JvEx-Controls gefixt. Das ist eine Zwischenschicht in der JVCL-Klassenhierarchie. Es gign um einen fehlenden inherited-Aufruf. Das kann natuerlich etwas beim Skinning bewirken. Warum ausgerechnet der Finish-Button zickt ist aber unklar. Ich habe eben in den Sourcen keine Sonderbehandlung gesehen.

Luckie 10. Jul 2007 11:06

Re: JVCL Skinning - Probleme mit TJvWizard
 
Ich weiß nicht, was ich gemacht habe, aber jetzt wird auf einmal gar kein Button mehr geskinnt von dem Wizard. :gruebel: Ich probiere mal die aktuelle Version aus.

ErazerZ 10. Jul 2007 11:42

Re: JVCL Skinning - Probleme mit TJvWizard
 
Finish scheint mir Default=True zu sein, vielleicht liegt es ja daran?
Quickedit: Sollte aber nicht daran liegen :P.

Luckie 10. Jul 2007 12:08

Re: JVCL Skinning - Probleme mit TJvWizard
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt werden gar keine Wizard-Schaltflächen mehr geskinnt. :wall:

Installierte JVCL Version: 3.33 vom 2007-07-10

Luckie 10. Jul 2007 13:22

Re: JVCL Skinning - Probleme mit TJvWizard
 
Neue Erkenntnis:
strate ich den Wizard im OnAfterShow-Ereignis:
Delphi-Quellcode:
procedure TMain.FormShow(Sender: TObject);
begin
  PostMessage(Handle, APM_AFTERSHOW, 0, 0);
end;

procedure TMain.OnAfterShow;
var
  R                : TRect;
begin
  TntStatusBar1.Perform(SB_GETRECT, 0, integer(@R));
  ProgressBar1.Parent := TntStatusBar1;
  ProgressBar1.BoundsRect := r;
  StartUpWzd.ShowModal;
end;
sind die Schaltflächen ungeskinnt, wie im Anhang vom letzten Posting.
Starte ich den Wizard manuell mitten im Programm, sind alle Schaltflächen geskinnt bis auf die "Fertig"-Schaltfläche. :wall:

jbg 10. Jul 2007 17:43

Re: JVCL Skinning - Probleme mit TJvWizard
 
Ich habe mir das jetzt mal mit der Demo-Version von VCLSkin angeschaut. Und es sieht schwer nach einem Bug in VCLSkin aus. Ich werde aber noch ein bisschen weiter testen.

jbg 10. Jul 2007 17:52

Re: JVCL Skinning - Probleme mit TJvWizard
 
Die Komponente ist ja erbärmlich. Der Programmierer hat wohl noch nie was von Datenkapselung geschweige denn den Unterschied zwischen private, protected und public gehört. Jede Methode die ich bis jetzt aufgerufen habe, quittierte ihren Dienst mit einer Schutzverletzung. Den Quellcode will ich erst gar nicht sehen, denn das Interface nach außen ist schon erbärmlich.

Luckie 10. Jul 2007 21:57

Re: JVCL Skinning - Probleme mit TJvWizard
 
Verdammt, da habe ich dann wohl ins Klo gegriffen mit der Komponente. Dumm nur, dass schon Kollegen jetzt Skins dafür entwerfen. :cry:

jbg 10. Jul 2007 22:00

Re: JVCL Skinning - Probleme mit TJvWizard
 
Das Problem scheint zu sein, dass die Skin-Komponente nur alle sichtbaren Controls hooked und die unsichtbaren auslässt. Da der Finish-Button nicht auch der ersten Wizard-Seite sichtbar ist, wird er somit nicht gehooked. Man müsste jetzt eine Möglichkeit finden, das Control-Hooking zu wiederholen, oder die VCLSkin Komponente umschreiben.

Luckie 10. Jul 2007 23:32

Re: JVCL Skinning - Probleme mit TJvWizard
 
Die Erklärung klingt plausibel. Eventuell kann man ihn so kurz einblenden, dass man es gar nicht sieht. Aber eventuell brauche ich ihn auch auf jeder Seite damit der Benutzer die Möglichkeit hat den Wizard abzubrechen, ohne dass die bisher getroffenen Einstellungen verloren gehen.
So ein Mist dabei habe ich mir ein paar Skinning Komponenten angeguckt und diese schien mir am einfachsten zu Hand haben.

Robert Marquardt 11. Jul 2007 04:22

Re: JVCL Skinning - Probleme mit TJvWizard
 
Ach, nicht aufgeben. Die VCLSkin-Leute treten (eh herantreten :)). Freundliche Hinweise auf Fehler sind immer willkommen. Erst wenn du arrogante oder abwertende Antworten kriegst, dann aufgeben.

Relicted 11. Jul 2007 06:32

Re: JVCL Skinning - Probleme mit TJvWizard
 
schön von dieser erfahrung zu hören... ich hatte auch überlegt die komponente zu kaufen aber nachdem ich das jetzt hier höre graut es mir davor :-)

es gibt einfach viel zu wenig gute skinkomponenten auf dem markt... das ist echt traurig... wir sollten mal eine dp-aktion starten und zusammen eine entwickeln und für privaten umsonst und für kommerziellen gebrauch mit einer spende an eine soziale einrichtung verknüpfen :-)

damit wären wir alle glücklich :-)


gruß
reli

Luckie 11. Jul 2007 10:11

Re: JVCL Skinning - Probleme mit TJvWizard
 
Ich bin jetzt auf SuiSkin http://www.sunisoft.com/ umgestiegen. Diese Komponente macht weniger Probleme.

Relicted 11. Jul 2007 10:21

Re: JVCL Skinning - Probleme mit TJvWizard
 
schaut auch ganz gut aus... schon mit der jvcl getestet?
würde mich sehr interessieren obs damit auch vernünftig lüppt...

und direkt noch eine: wenn man ne form aus einer .dll läd und die form auch die sui komponente drauf hat wird die auch geskinnt oder macht das probleme? weil mit dem VCLSkin soll das nicht ganz so leicht sein...

gruß
reli

Luckie 11. Jul 2007 10:26

Re: JVCL Skinning - Probleme mit TJvWizard
 
Also mit den JVCL Wizards klappt es jetzt. Ob das mit den Formularen in DLLs klappt, weiß ich nicht - das brauche ich aber auch nicht. Die TNTUniCode-Controls werden auch geskinnt. Was ich noch nicht hinbekommen habe, dass alle Unterformulare mit geskinnt werden. Die entsprechende Eigenschaft sthet zwar auf True, aber sie werden trotzdem nicht geskinnt. :gruebel:

luwo 11. Jul 2007 11:36

Re: JVCL Skinning - Probleme mit TJvWizard
 
@Luckie:

Ok, wir haben in einem Projekt schon mal mit VCLSkin gearbeitet und waren eingentlich recht zufrieden damit.
Vor allem, weil man damit auch dynamisch-erstellte Controls skinnen kann (z.B. aus DLL nachgeladen).

Hab mir das Problem mit dem JCLWizard mal angeguckt und hätte folgende Lösung anzubieten:
Im OnPage-Event der jeweiligen Wizard-Seite folgenden Code einfügen, dann sollte es gehen
Delphi-Quellcode:
procedure TForm1.JvWizardInteriorPage1Page(Sender: TObject);
begin
  SkinData1.UpdateSkinControl(self);
end;
Nachzulsesen in der OnlineHilfe unter "Why some controls not skinned?"

Grüße Luwo
-----
vclskin: 4.11.06.25
jvcl: 3.31

Luckie 11. Jul 2007 11:43

Re: JVCL Skinning - Probleme mit TJvWizard
 
SuiSkin macht das automatisch.

luwo 12. Jul 2007 13:57

Re: JVCL Skinning - Probleme mit TJvWizard
 
Zitat:

Zitat von Luckie
SuiSkin macht das automatisch.

Klar, ist nett wenn´s auch automatisch geht. :-D

Wir hatten zum damaligen(!) Zeitpunkt SuiSkin ausgeschlossen, weil es (damals) nur
5 od. 6 interne Skins benutzen hatte und keine eigenen/externen eingebunden werden konnten.

Wollte hier auch nur noch mal kurz eine Lanze für VCLSkin brechen!
IMHO ist VCLSkin nämlich gar nicht sooo schlecht wie hier behauptet wird.
Vor allem mit der Möglichkeit dynamischen Controls zu skinnen oder z.B. bestimmte Controls vom Skinning
komplett auszusparen (über die Tag-Property des Controls einstellbar).
Oder eben bei Bedarf zu Repainten (siehe code oben)

Auch das es Standard-Controls skinned ohne dass der Code mit eigenen Komponenten
umgebaut werden muß (siehe BusinessSkinform von AlmediaDev... ...wobei, die haben mittlerweile
auch einen SkinAdapter, mit dem das ebenfalls bequemer wird)

Allerdings was seltsame AV´s bei VCLskin angeht, die kann ich leider auch bestätigen...
...aber ein Blick in die Online-Hilfe hat da bis dato immer genügend Hilfestellung gegeben. :)

Was übrigens auch nett ist, dass man für unterschiedliche Formulare aus einem "SkinStore" unterschiedliche
Skins benutzen kann.

So, das war´s jetzt mit der Lanze, gebrochen, kaputt und weggelegt :-)

Grüße Luwo

Prototypjack 12. Jul 2007 14:23

Re: JVCL Skinning - Probleme mit TJvWizard
 
Zitat:

Zitat von Relicted
schön von dieser erfahrung zu hören... ich hatte auch überlegt die komponente zu kaufen aber nachdem ich das jetzt hier höre graut es mir davor :-)

es gibt einfach viel zu wenig gute skinkomponenten auf dem markt... das ist echt traurig... wir sollten mal eine dp-aktion starten und zusammen eine entwickeln und für privaten umsonst und für kommerziellen gebrauch mit einer spende an eine soziale einrichtung verknüpfen :-)

damit wären wir alle glücklich :-)


gruß
reli

Ich würde auf der Stelle mitmachen! ;)

Gruß,
Max


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 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