EC-C Komponenten Frage

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
Levario
Beiträge: 101
Registriert: Mo 1. Sep 2014, 14:32
OS, Lazarus, FPC: Windows 10 Pro Laptop (Lazarus 3.0.0 FPC 3.2.2)
CPU-Target: 64 Bit
Wohnort: Deutschland / NRW

EC-C Komponenten Frage

Beitrag von Levario »

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.
EECKomponenten2021-08-27.png
EECKomponenten2021-08-27.png (7.12 KiB) 1430 mal betrachtet
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 :).

Benutzeravatar
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

Beitrag von Lincoln Six Echo »

Hallo Levi, was sind denn das für Components ?

Benutzeravatar
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

Beitrag von Winni »

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

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: EC-C Komponenten Frage

Beitrag von theo »

Lincoln Six Echo hat geschrieben:
Mo 29. Nov 2021, 11:27
Hallo Levi, was sind denn das für Components ?
https://wiki.freepascal.org/Eye-Candy_Controls

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: EC-C Komponenten Frage

Beitrag von wp_xyz »

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

Benutzeravatar
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

Beitrag von Lincoln Six Echo »

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.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: EC-C Komponenten Frage

Beitrag von wp_xyz »

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:

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.
Falls du mit dieser Kurzbeschreibung nicht klarkommst, würde ich meine Experimente zu einem vorzeigbaren Projekt zusammenfassen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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

Beitrag von af0815 »

Mit dem Autor kann man ja sprechen :
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).
Somit ist eine Änderung kein Problem - wenn sie sinnvoll und akzeptiert ist.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten