EC-C Komponenten Frage
- Levario
- Beiträge: 132
- Registriert: Mo 1. Sep 2014, 14:32
- OS, Lazarus, FPC: Windows 11 Pro , MacOS und Linux Mint (Version 3.4 for Windows 64 bit )
- CPU-Target: 64 Bit
- Wohnort: Deutschland / NRW
EC-C Komponenten Frage
Hallo zusammen,
ich teste gerade die EC-C Komponenten. Es handelt sich bei den Komponenten um ein TECArccordion und um ein TECImageMenu. Meine Frage zu den Komponenten wäre kann man die Farben dieser Komponenten beeinflussen. Ich würde gerne die Farbe des Hintergrundes des Kopfes in dem Dashboard steht in einem hellengrün und im Image Menü das blau des aktivierten Menüeintrages ebenfalls Grün darstellen. Geht so etwas habe im Objektinspektor nicht gefunden.
Gruß Levi
ich teste gerade die EC-C Komponenten. Es handelt sich bei den Komponenten um ein TECArccordion und um ein TECImageMenu. Meine Frage zu den Komponenten wäre kann man die Farben dieser Komponenten beeinflussen. Ich würde gerne die Farbe des Hintergrundes des Kopfes in dem Dashboard steht in einem hellengrün und im Image Menü das blau des aktivierten Menüeintrages ebenfalls Grün darstellen. Geht so etwas habe im Objektinspektor nicht gefunden.
Gruß Levi
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
- Lincoln Six Echo
- Beiträge: 138
- Registriert: Di 26. Aug 2014, 16:42
- OS, Lazarus, FPC: Win10, Debian
- CPU-Target: I7/I9/Q9650/u.a.
- Wohnort: Hamburg
Re: EC-C Komponenten Frage
Hallo Levi, was sind denn das für Components ?
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: EC-C Komponenten Frage
Hi!
Falls hier niemand mit den Eye-Candy-Controls arbeitet:
Im Internationalen Forum fragen.
Dort trifft man auch Blazen, der die Dinger erfunden hat.
Winni
Falls hier niemand mit den Eye-Candy-Controls arbeitet:
Im Internationalen Forum fragen.
Dort trifft man auch Blazen, der die Dinger erfunden hat.
Winni
Re: EC-C Komponenten Frage
https://wiki.freepascal.org/Eye-Candy_ControlsLincoln Six Echo hat geschrieben: Mo 29. Nov 2021, 11:27 Hallo Levi, was sind denn das für Components ?
Re: EC-C Komponenten Frage
Achtung: die EyeCandyControls compilieren z.Zt nicht mit Laz trunk/main und benötigen eine kleine Anpassung --> https://forum.lazarus.freepascal.org/in ... 361.0.html
- Lincoln Six Echo
- Beiträge: 138
- Registriert: Di 26. Aug 2014, 16:42
- OS, Lazarus, FPC: Win10, Debian
- CPU-Target: I7/I9/Q9650/u.a.
- Wohnort: Hamburg
Re: EC-C Komponenten Frage
Habe die gerade mal installiert und ausprobiert. Die entspr. Properties Color o.ä. sind da nicht enthalten.
Die müssten also nachträglich eingefügt werden. Ich weiß jetzt aber nicht wie sich das dann Lizenzrechtlich auswirkt, es wäre ja veränderter Quelltext.
Die müssten also nachträglich eingefügt werden. Ich weiß jetzt aber nicht wie sich das dann Lizenzrechtlich auswirkt, es wäre ja veränderter Quelltext.
Re: EC-C Komponenten Frage
Ich denke nicht, dass das funktioniert. Wenn ich mich in die EC_Controls Quellen hineinklicke (CTRL+Click auf Bezeichner TECAccordion), stößt man auf die Methode TCustomECAccordion.Paint, und dort sieht man, dass alles von den ThemeServices gezeichnet wird. Da gibt es keine "Color", weil die vom Betriebssystem vorgegeben wird.
Wenn du wirklich eigene Farben brauchst, musst du wahrscheinlich eine neue Klasse von TECAccordion ableiten und dort Paint überschreiben; dafür kopierst du den Code von Paint und ersetzt die ThemeServices-Aufrufe duch entsprechende Canvas-Operationen. Wenn du keine neuen Published-Properties einführst, kommst du mit dem Sub-Classing-Verfahren weiter: deklariere in der Unit, in der du das TECAccordion verwenden willst, oder in einer neuen Units - aber diese muss ganz am ende der uses-Zeile aufgeführt sein -, eine neue Klasse, die genauso heißt wie die alte (TECAccordion), aber leite sie von ECAccordion.TECAccordion ab. Durch denselben Namen wird der Compiler verleitet, die Instanz im Formular von der neuen Klasse zu erzeugen. Ich habe es gerade grob ausprobiert, und es scheint zu funktionieren (ohne es groß getestet zu haben).
Also:
Falls du mit dieser Kurzbeschreibung nicht klarkommst, würde ich meine Experimente zu einem vorzeigbaren Projekt zusammenfassen.
Wenn du wirklich eigene Farben brauchst, musst du wahrscheinlich eine neue Klasse von TECAccordion ableiten und dort Paint überschreiben; dafür kopierst du den Code von Paint und ersetzt die ThemeServices-Aufrufe duch entsprechende Canvas-Operationen. Wenn du keine neuen Published-Properties einführst, kommst du mit dem Sub-Classing-Verfahren weiter: deklariere in der Unit, in der du das TECAccordion verwenden willst, oder in einer neuen Units - aber diese muss ganz am ende der uses-Zeile aufgeführt sein -, eine neue Klasse, die genauso heißt wie die alte (TECAccordion), aber leite sie von ECAccordion.TECAccordion ab. Durch denselben Namen wird der Compiler verleitet, die Instanz im Formular von der neuen Klasse zu erzeugen. Ich habe es gerade grob ausprobiert, und es scheint zu funktionieren (ohne es groß getestet zu haben).
Also:
Code: Alles auswählen
type
TECAccordion = class(ECAccordion.TECAccordion)
protected
procedure Paint; override;
end;
procedure TECAccordion.Paint;
// --- alles aus den Originalquellen herüberkopieren
// --- In der eingebetteten Prozedur Drawitem, case Style..., ändere ich den Fall easHeader zu
....
case Style of
case Style of
easHeader:
begin
if bEnabled then
begin
if aIndex<>ItemIndex
then Canvas.Brush.Color := clGreen
else Canvas.Brush.Color := clRed;
end else
Canvas.Brush.Color := clSilver;
Canvas.FillRect(ARect);
end;
....
// und damit wird der selektierte Header rot, die anderen grün.
// Entsprechend kannst du überall dort verfahren, wo "ThemeServices" aufgerufen werden.
- af0815
- Lazarusforum e. V.
- Beiträge: 6787
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: EC-C Komponenten Frage
Mit dem Autor kann man ja sprechen :
Somit ist eine Änderung kein Problem - wenn sie sinnvoll und akzeptiert ist.You can contact author on Lazarus Forum (nickname: Blaazen) in any thread about EC-Controls
GNU Lesser General Public License 2.0 with linking exception (a.k.a. Modified LGPL).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).