Results 1 to 4 of 4

Thread: Volgorde van GetStyleObject

  1. #1

    Volgorde van GetStyleObject

    Hoi allen,

    Ik ben bezig een agenda component te maken wat al aardig lukt.
    Het component maakt gebruik van een standaard style die als resource is opgeslagen.

    Nu heb ik een agenda style welke de style bevat voor alle elementen van de agenda.
    Wat ik nu het liefst wil doen is deze style gebruiken om de eigenschappen van alle elementen te bepalen.

    Klinkt misschien wat vreemd zie afbeelding
    Name:  Naamloos.png
Views: 678
Size:  2.5 KB

    De structuur van mijn component:
    TDiary = class(TStyledControl)
    > TColumnContainer = class(TStyledControl)
    > TGridPanelLayout
    > TDiaryColumn = class(TRectangle)
    > TDiaryCell = class(TStyledControl)

    In de diarycell kan ik via de parent (TdiaryColumn) en TDiary ophalen en daar binnen de styleresource van de TDiaryCell opzoeken.

    Het probleem is echter dat de GetStyleObject van de cellen eerder uitgevoerd wordt dan die van de TDiary zelf.
    Nu is het wel mogelijk om zelf een functie toe te voegen die GetStyleObject uitvoert in de Diary (aangezien deze protected is) maar dat voelt toch erg hacky.

    Hoe kan ik er op een correcte manier voor zorgen dat de GetStyleObject van de TDiary eerder uitgevoerd wordt dan die van alle onderliggende elementen?

    Ik hoop dat het een beetje duidelijk is. Ik kan de source helaas niet delen want werk, maar als er nog vragen zijn zal ik proberen deze zo goed mogelijk te beantwoorden

    Alvast bedankt.

  2. #2
    Ik kan de source helaas niet delen want werk
    Het fragmentje waar het om gaat, of een voorbeeldapplicatie op basis van je code kan toch wel?
    1+1=b

  3. #3
    Zal kijken of ik makkelijk een soortgelijke situatie kan inrichten.

  4. #4
    Ok ik heb een reproductie.

    Er is een hoofdcontrol en die bevat een SubLevel0.

    Sublevel0 bevat een SubLevel1 en dat gaat door tot SubLevel3

    Ieder sublevel heeft een GridPanelLayout met 3 rijen en kolommen, de 1e en 3e kolom zijn 10% en de 2e kolom is 80% (hetzelfde bij de rijen)

    Ik heb een style gemaakt met een MainControl, deze heeft een panel met een groene fill.
    Binnen het maincontrol zijn de 4 sublevels (0 tot 3) gedefinieerd, ieder level een andere kleur.
    De style is los opgeslagen en wordt als resource ingeladen.

    Ik heb een aantal comments toegevoegd met beredenering, ik hoop dat het duidelijk is. Anders kan ik altijd nog vragen beantwoorden.

    Onder "implementation" staat een variabele "GebruikWorkAround" als deze op True staat wordt (super verassend) de workaround gebruikt (het aanroepen van een protected functie in MainControl) en dan werkt alles.
    Zet je deze op false dan worden de sublevels niet zichtbaar, de oorzaak is dat de StyleObject van het hoofdobject dan nog niet geladen is lijkt het.

    Applicatie is gemaakt met Firemonkey, Rad studio 10.3.2
    Attached Files Attached Files

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •