Autor Téma: Vlastný komponent - vidím text pod panelom  (Přečteno 444 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Vlastný komponent - vidím text pod panelom
« kdy: 12-06-2019, 15:59:51 »
Je odvodený z TDBAdvSmoothDatePicker. Ten je prekrytý TPanel s TAdvDBEdit.
Je zobrazený text medzi editmi. Nepodarilo sa mi to odstrániť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #1 kdy: 12-06-2019, 17:20:19 »
Nie. To bolo prvé čo som si overil. Je to dátum v TDBAdvSmoothDatePicker. Mám to overené.
Ak som dal panelu farbu, tak v návrhu to bolo dobre. V runtime nastavená farba zmizla a text som videl. Pokusy s ParentColor a ParentFont nepomohli. Skúšal som zmeniť farbu fontu na clWindows(?) pre DatePicker. Správalo sa to veľmi divne.
Najviac ma zaráža skutočnosť, že panel nemá vlastnosť Transparent.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 262
  • Karma: 12
    • Verze Delphi: D5, XE2
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #2 kdy: 12-06-2019, 17:48:24 »
clWindow je systémová barva pro pozadí ovládacího prvku (pozadí v memo, comboboxu atd.), zpravidla je to bílá.
Chápu správně, že máš část nějakého komponentu překrytou panelem, aby nebyla vidět, a tam vylézá do popředí ten text?
nil

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #3 kdy: 12-06-2019, 17:58:26 »
Presne tak.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 262
  • Karma: 12
    • Verze Delphi: D5, XE2
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #4 kdy: 12-06-2019, 20:06:28 »
Excellent
Rated 1 time
Nebudu komentovat vhodnost nebo nevhodnost takového vizuálního řešení. Nepomohlo by třeba zavolat na tom panelu BringToFront()?

EDIT: a vůbec, když skryješ ty editboxy, co je na tom panelu vlastně za text ?
« Poslední změna: 12-06-2019, 20:12:43 od Morrison »
nil

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #5 kdy: 12-06-2019, 20:49:31 »
Citace
Nebudu komentovat vhodnost nebo nevhodnost takového vizuálního řešení.
To už komentovali iní :) Mám na to dôvody pre jednu aplikáciu. Potrebujem si tam zvlášť kontrolovať rok a v prípade potreby ho zmeniť. Takto to bolo najjednoduchšie + grafika je okopčená z účtovných programov
Citace
Nepomohlo by třeba zavolat na tom panelu BringToFront()?
To som skúšal a bez výsledku.
Práve teraz som to urobil veľmi škaredo. Dal som tam TEdit. Ak sa nenájde lepšie riešenie, tak to nechám tak.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 262
  • Karma: 12
    • Verze Delphi: D5, XE2
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #6 kdy: 12-06-2019, 21:16:38 »
Jako že když tam dáš Edit, tak text pod panelem není, a když použiješ ten TAdvDBEdit, tak ano?
nil

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #7 kdy: 12-06-2019, 21:33:48 »
Jako že když tam dáš Edit, tak text pod panelem není, a když použiješ ten TAdvDBEdit, tak ano?
To nie. TEdit som natiahol na celú plochu + pre istotu Enabled := False; Až nad ním sú veci ktoré je vidieť. No skryje mi všetko čo je pod ním. Na rozdiel od panela.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 516
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #8 kdy: 13-06-2019, 00:21:04 »
Jako že když tam dáš Edit, tak text pod panelem není, a když použiješ ten TAdvDBEdit, tak ano?
To nie. TEdit som natiahol na celú plochu + pre istotu Enabled := False; Až nad ním sú veci ktoré je vidieť. No skryje mi všetko čo je pod ním. Na rozdiel od panela.
Neprekrýval by som čokolvek editom.
TPanel má schopnosť prekryť, čo potrebuješ.
Ak ťa trápia rôzne farby podkladu pri Design a Runtime, tak skús povypínať pre daný panel všetky tri vlastnosti pod StyleElements.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #9 kdy: 13-06-2019, 08:45:05 »
Citace
Neprekrýval by som čokolvek editom.
Veď som písal, že to veľmi škaredé riešenie.
Citace
Ak ťa trápia rôzne farby podkladu pri Design a Runtime, tak skús povypínať pre daný panel všetky tri vlastnosti pod StyleElements.
Farby ma netrápia, ale prehľadnosť panela - vidím čo je pod ním.
Vyskúšal som to a vyzerá to, že to zabralo 8) Veľké ĎAKUJEM
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 516
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #10 kdy: 13-06-2019, 09:31:11 »
Rado sa stalo. :)
Nejaký čas dozadu som sa tiež vytrápil na podobné témy. Napríklad dbGridy, mali hlavičku takej nenápadnej farby, že zanikala s bežnými riadkami. Tiež to bolo v.. StyleElements.
Než som však na to došiel, to bol pôrod..

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #11 kdy: 05-09-2019, 22:26:46 »
Stále mi to nefunguje dobre. Namiesto opisu prikladám obrázky.
Prvý ukazuje stav po vybratí dátumu z DBDateTimePicker.
Druhý stav, keď som myšou klikol na mesiac a tým som vynútil jeho vykreslenie.
.
Programovo sa mi to nedarí urobiť. Ak dám do onChange nejakú akciu s editmi, napríklad SetFocus, tak sa mi aplikácia ani nespustí. MyForm.ActualControl.Left... Chyba je InvalidPath. Refresh či Repaint nepomáha.
.
Existuje nejaká možnosť, aby som mal komponent odvodený od TDBDateTimePicker, ale samotný DBDateTimePicker by bol len na šírku tlačidla, ale samotný komponent bol podstatne širší?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 958
  • Karma: 27
    • Verze Delphi: XE8, Seattle
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #12 kdy: 06-09-2019, 07:48:27 »
Co je to za text, který prosvítá?
Úplně těm obrázkům nerozumím. Je to zbytkový text po zobrazení překryvu nebo nějaký text pod? Pokud jen Caption panelu/labelu, tak ten lze vymazat. Pokud se jen špatně překresluje, pak nedobře funguje repaint skrz vrstvené koponenty.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #13 kdy: 06-09-2019, 08:08:02 »
To je text v TDBAdvSmoothDatePicker. Pri kliknutí na TDBAdvSmoothDatePicker sa vykreslí v popredí a dozadu sa dostane až po kliknutí na edity.
Citace
Pokud se jen špatně překresluje, pak nedobře funguje repaint skrz vrstvené koponenty.
Ťažko tvrdiť, že sa to vykresľuje zle.
Uvedomil som si, že to robím celé zle. Už koncepčne. Ono tak ako to mám, naozaj nemôže fungovať. Mám v podstate dve možnosti:
  • Naštudovať si ako to robí Xnukes, ktorého komponent je/mám k dispozícii
  • Odvodiť si komponent (asi) z panela. Tam si to viem vyriešiť. Len neviem zverejniť vlastnosti (published) komponentu TDBAdvSmoothDatePicker. Napr. Database - DataField, DataSource.
Idem študovať. Ak nepochodím, tak sa tu ozvem.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Lukáš Vlček

  • Plnoletý
  • ***
  • Příspěvků: 144
  • Karma: 2
  • Strength Through Unity, Unity Through Faith.
    • Verze Delphi: Rad Studio XE8
    • Bludspeed s.r.o.
Re:Vlastný komponent - vidím text pod panelom
« Odpověď #14 kdy: 06-09-2019, 08:48:03 »
Jenže u mě není komponenta v design time vidět :) Možná moc dobře nechápu co přesně ti nejde , kdyby jsi chtěl tak mi klidně písni zprávu, nebo využívám i jiné komunikátory :)
Strength Through Unity, Unity Through Faith.