Autor Téma: Téma/štýl TMS a VCL  (Přečteno 496 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Téma/štýl TMS a VCL
« kdy: 09-05-2019, 11:14:51 »
Problém: Nastavím štýl VCL. To je vždy dobre. Potom nastavím štýl TMS. Je to zle. Viď obrázky. Ak potom mením TMS štýl, tak je to už vždy dobre. Predtým vždy nastavím VCL na Windows. Ináč to nechce fungovať. Až do okamihu, keď nastavím VCL a vrátim sa späť na TMS.
Na strýka Google som nezabudol. Nič som nenašiel. V návodoch sa štýloch nebavia. Aspoň som na to nenarazil.
Vie niekto o čo ide?. Hlavne ako sa to dá opraviť?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #1 kdy: 09-05-2019, 11:31:14 »
Aha, obrázky. Problém je len s AdvOfficePager. Viď hore zelenú hlavičku. Vždy je zelená. V pravom dolnom rohu je celý AdvOfficePager na AdvPanel
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #2 kdy: 10-05-2019, 15:49:40 »
Prvá vec na ktorú som prišiel je, že tie štýly nie sú totožné a ani ich nie je rovnaký počet.
Po tomto zistení by som to mal dať do poriadku.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #3 kdy: 10-05-2019, 22:22:55 »
Jedno prekvapenie za druhým. Ak mám použitý TMS štýl, tak všetko beží ako má. Ak mám nastavený VCL štýl, tak v hlavnom okne formulára všetko funguje ako má. Akonáhle niečo vyberiem z AdvMainMenu, tak stále dostanem tú istú chybu "Out of memory". Detaily sú tie isté. Je tam pokus o zmenu zničeného objektu.
Platí to aj pre prípad ukončenia aplikácie - Self.Close;. Ale ukončenie aplikácie uzatvorením okna prebehne bez problémov.
Čo s tým?
Doplnenie: priložil som výpis z FMM4
« Poslední změna: 10-05-2019, 22:26:53 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #4 kdy: 11-05-2019, 13:21:41 »
Tak som to vzdal a VCL štýly som zablokoval. Uvidíme čo prinesie budúcnosť.
Veľmi rád by som si o tom niečo prečítal, ale neviem nikde nič nájsť. Nie o VCL štýloch ako takých, ale aký je správny postup pri použití v TMS.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #5 kdy: 11-05-2019, 21:16:46 »
Urobil som si dva jednoduché formuláre a tie fungujú bez problémov. Neostáva nič iné len hľadať ďalej :'(
Už som použil vylučovaciu metódu, ale asi nie dostatočne. Tak si prajem veľa trpezlivosti a nervov ???  Samozrejme, že tu to je podstatne zložitejšie, lebo mám triedu/y na nastavenie vlastností komponentov a ich vzhľadu. Pomocou TMS XXXstyler.
Neviem či ten priložený výpis z FMM4 niečo napovedá. Mne nie.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #6 kdy: 11-05-2019, 21:27:45 »
Kód: Delphi [Vybrat]
  1. constructor TScrollingWinControl.Create(AOwner: TComponent);
  2. begin
  3.   inherited Create(AOwner);
  4.   ControlStyle := ControlStyle + [csNeedsBorderPaint];
  5.   FHorzScrollBar := TControlScrollBar.Create(Self, sbHorizontal); // Padne to pri vstupe do funkcie už na riadku "begin"!!!
  6.   FVertScrollBar := TControlScrollBar.Create(Self, sbVertical);
  7.   FAutoScroll := False;
  8.   Touch.InteractiveGestures := [igPan, igPressAndTap];
  9.   Touch.InteractiveGestureOptions := [igoPanInertia,
  10.     igoPanSingleFingerHorizontal, igoPanSingleFingerVertical,
  11.     igoParentPassthrough];
  12. end;
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #7 kdy: 11-05-2019, 22:42:05 »
Mňa zaráža sa ani nedostanem k FormCreate. Jednoducho povedané, môj kód sa nedostane k slovu! Ja mám problém s tým MCVE. Budem sa snažiť.
Vyskúšam aj jednotky z odkazu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #8 kdy: 12-05-2019, 09:53:30 »
Toľko sa s tým babrem, aby som si až teraz uvedomil, že nie vždy sa dá VCL štýl použiť.
Mám vysvetlenie významu farieb pomocou TPanel. Používam ich napr. na text vo VST. VCL style ich prefarbí podľa motívu. TMS style ich ponechá. Presnejšie pre TMS zablokujem zmenu farby. Neviem či sa to dá urobiť aj pre VCL style. Používam na to Tag = -1.
Užívateľské vykresľovanie (farba textu i pozadia) VST je v poriadku.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #9 kdy: 14-05-2019, 12:57:31 »
K prvotnému problému som dostal túto odpoveď:


The problem here is most likely that when you switch to VCL styles, that AdvOfficePagerStyler.Style is not changed.
When you then switch back to set AdvOfficePagerStyler.Style to the same Style setting it was before changing to VCL styles, the property setter won’t act.
If you use VCL styles in combination with TMS styles, I would suggest to set AdvOfficePagerStyler.Style to psCustom when you switch to VCL Styles.
Also, in the next update , there will be a AdvOfficePager.StyleElements property with which you will be able to turn off the use of VCL styles on the TAdvOfficePager.


Ale keď som si urobil funkcie na získanie správnych, prípadne náhradných, štýlov pre všetky TxxStyler tak to ide dobre.
Čo sa týka chyby Out of memory, tak tam som sa rozhodol ísť na to vylučovacou metódou. To bude fuška. Držte mi palce.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #10 kdy: 14-05-2019, 15:17:18 »
Tak som nakoniec zistil, že problém je vtedy ak mám použitý VCL style a použijem TAdvMainMenu. Ak použijem iný komponent, ktorý má priradenú tú istú akciu a AdvMainMenu, tak to prebehne bez problémov. To vyzerá na BUG
Použil som aj PopUpMenu a je to takisto zle.
Totálne sa nechytám.
« Poslední změna: 14-05-2019, 15:28:24 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #11 kdy: 14-05-2019, 15:36:05 »
Môže byť nejako "centrálne" poškodený TActionManager? Ak použijem TActionList, tak to ide!
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #12 kdy: 14-05-2019, 15:49:34 »
Už padlo rozhodnutie. Jednoducho TActionManager musím zavrhnúť a použiť TActionList. To nie je také hrozné. Len mi to trvalo vyše týždňa.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Téma/štýl TMS a VCL
« Odpověď #13 kdy: 15-05-2019, 09:39:16 »
A teraz ma to dorazilo. ActionList som skúšal len s jednou akciou. ActionManager som vyhodil, ActionLis doplnim a som tam kde som bol.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.