Autor Téma: Vlastný komponent - umiestnenie komponentov na ňom  (Přečteno 743 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5124
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Nerozumiem tomu a začínam chytať hysťáky.
Komponent je odvodený od TPanel. Na ňom je panel s
Align := alClient.
Parent := Self;
Počas návrhu ho vidím. Akonáhle spustím aplikáciu, tak zmizne! Platí to aj pre všetky ostatné prvky.
Ako to je možné a čo mám urobiť?
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5124
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vlastný komponent - umiestnenie komponentov na ňom
« Odpověď #1 kdy: 07-09-2019, 18:24:39 »
Aby toho nebolo málo. Mám tam
Kód: Delphi [Vybrat]
  1. Self.Constraints.MaxWidth := SelfWidth;  // 90
  2. Self.Constraints.MinWidth := SelfWidth;
  3. Self.Constraints.MaxHeight := SelfHeight;  // 21
  4. Self.Constraints.MinHeight := SelfHeight;
a maximálne hodnoty sú viac ako dvojnásobok zadaných.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1498
  • Karma: 37
    • Pepak.net
Re:Vlastný komponent - umiestnenie komponentov na ňom
« Odpověď #2 kdy: 07-09-2019, 18:44:27 »
To jako že panel leží sám na sobě? Tak to můžeš být rád, že zmizel jenom panel, mohl by zmizet i celý vesmír :-)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2840
  • Karma: 134
    • Verze Delphi: D2007, XE3, DX10
Re:Vlastný komponent - umiestnenie komponentov na ňom
« Odpověď #3 kdy: 07-09-2019, 18:51:50 »
Align := alClient.
Parent := Self;
Co kdyz zkusis zmenit poradi a jako prvni nastavit Parent?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5124
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vlastný komponent - umiestnenie komponentov na ňom
« Odpověď #4 kdy: 07-09-2019, 19:21:05 »

Citace
o jako že panel leží sám na sobě?
Nie, mám tam 2 panely. Komponent + na ňom panel.Panel som vyriešil pomocou Self.StyleElements := [];
Ostáva mi záhadou ostatné. Pokiaľ komponenty zarovnám vľavo či vpravo, tak to funguje. Ináč nie. Aj keď im polohu nastavím vo Form.Show. Skúsim ešte zmeniť to poradie.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5124
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vlastný komponent - umiestnenie komponentov na ňom
« Odpověď #5 kdy: 07-09-2019, 19:28:20 »
Zmena poradia nepomohla. Pozrel som sa do cudzej komponenty a tam všetko zarovnáva vľavo. Len neviem či to je vynútené, alebo to tak chce.
Zmena poradia nemala žiaden vplyv.
Ja mám problém v tom, že používam TDBAdvEdit a chcem, v jednom prípade, využiť jeho vlastnosť LabelCaption. Tým pádom mi to zarovnanie vľavo robí problém.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5124
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vlastný komponent - umiestnenie komponentov na ňom
« Odpověď #6 kdy: 07-09-2019, 19:34:32 »
Asi som našiel cestu. Ak dám constraints MinHeight a MaxHeight, tak mi komponent zarovná vľavo, ale nezmení jeho výšku. A to som potreboval. Môžem experimentovať.
Ale aj tak by som rád vedel prečo sa to správa tak nezmyselne.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.