Autor Téma: Potomok TVirtualStringTree - vytvorenie PopupMenu pri vytváraní formulára  (Přečteno 687 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Mám komponent TjstVirtualStringTree = class(TVirtualStringTree) a chcem aby sa mi pri tvorbe formulára automaticky vytvorilo TPopupMenu. Riadok
Kód: Delphi [Vybrat]
  1.   public
  2.     constructor Create(AOwner: TComponent); override;
  3.  
to nerieši, lebo mi vôbec nezbehne. Ako sa to správne robí?
Chcem tam potom pridať aj načítanie a nastavenie vlastností. Problém budem mať aj s načítaním vlastností, lebo ich mám uložené v JSON súbore.


Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Pomohla 16 ročná kniha
Kód: Delphi [Vybrat]
  1.     procedure CreateWnd; override;
  2.  
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 696
  • Karma: 40
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Jseš si vědom toho, proč existuje CreateWnd a kdy je spuštěna? Víš třeba, že může proběhnout několikrát během života TWinControl?
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Citace
Jseš si vědom toho, proč existuje CreateWnd a kdy je spuštěna? Víš třeba, že může proběhnout několikrát během života TWinControl?
Nie, neviem o tom nič. Tak ako na to?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Keďže nikto nič nenavrhuje, tak si tam dám príznak a môj kód sa spustí len raz.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 696
  • Karma: 40
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Citace
Jseš si vědom toho, proč existuje CreateWnd a kdy je spuštěna? Víš třeba, že může proběhnout několikrát během života TWinControl?
Nie, neviem o tom nič.

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Controls_TWinControl_CreateWnd.html
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 696
  • Karma: 40
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Keďže nikto nič nenavrhuje

Oni lide taky musi resit veci, ktere nasyti jejich rodiny a ne jenom resit fora  :P
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Citace
Oni lide taky musi resit veci, ktere nasyti jejich rodiny a ne jenom resit fora
Ešteže ja musím nakŕmiť akurát tak seba  ;D
Ten odkaz som už prečítal v helpe. Preto som sa rozhodol pre príznak.
« Poslední změna: 02-05-2017, 12:31:16 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1724
  • Karma: 70
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Keďže nikto nič nenavrhuje, tak si tam dám príznak a môj kód sa spustí len raz.

Asi bych predefinoval neco z tohoto:
Kód: Delphi [Vybrat]
  1.     procedure Loaded; override;
  2.     procedure Notification(AComponent: TComponent;  Operation: TOperation); override;
  3.  
Oboji by melo zafungovat. I kdyz moc nechapu vetu: chcem aby sa mi pri tvorbe formulára automaticky vytvorilo TPopupMenu.


Chapu to tak ze v design modu chces vytvorit popupmenu? Proc ti nastaci predefinovat Create a testovat
Kód: Delphi [Vybrat]
  1. csDesigning in ComponentState ?
  2.  
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Citace
I kdyz moc nechapu vetu: chcem aby sa mi pri tvorbe formulára automaticky vytvorilo TPopupMenu.
Každému VST vytváram dynamicky PopupMenu. Podľa potreby.
Citace
Chapu to tak ze v design modu chces vytvorit popupmenu?

Vždy. Bez ohľadu na režim design/run.
Tvojim odpovediam nerozumiem :) , ale to nevadí. Nakoniec som si urobil potomka (komponent) s troma pridanými vlastnosťami. Tie mi to riešia a ostal som pri základe pôvodného riešenia. Ale vypadli mi tie p..y zoznamy.
A celkovo sa mi to dosť zjednodušilo.
« Poslední změna: 05-05-2017, 21:12:24 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Juj, ale som napísal hlúposť :-[
Citace
Vždy. Bez ohľadu na režim design/run.
Pomýlil som si design s debbug. Vytváram ich len v runtime.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Delfin

  • Host
constructor TjstVirtualStringTree.Create(AOwner: TComponent);
begin
  inherited;
  PopupMenu := TPopupMenu.Create(Self);
  // napln menu
end;

?

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1081
  • Karma: 36
    • Verze Delphi: 7, 2010
@Delfin:
Když už sis nedal tu práci otestovat své řešení, stačilo si přečíst první příspěvek, kde je jasně naznačené, že toto nejde.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 696
  • Karma: 40
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
@Delfin:
Když už sis nedal tu práci otestovat své řešení, stačilo si přečíst první příspěvek, kde je jasně naznačené, že toto nejde.

Že to nejde Standovi, neznamená nic  ;D To by mě zajímalo, přes jakej konstruktor ten Standa ten objekt teda vytváří  ::)
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2879
  • Karma: 27
    • Verze Delphi: XE7 professional
Citace
To by mě zajímalo, přes jakej konstruktor ten Standa ten objekt teda vytváří 
Klasicky. Konštruktor som nemenil. Pre VST som doplnil aj vlastnosť KindPopMenu. Pri prechádzaní formulára mu potom podľa tejto vlastnosti (ne)vytvorím patričné PopupMenu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: