Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Obecné / Re:Trieda, ktorá vráti rôzne typy komponentov
« Poslední příspěvek od Stanislav Hruška kdy Dnes v 15:42:56 »
No jasně že musel, ale všechny jen na toho společného předka, to snad není problém, ne? Pořád by ti to asi nahradilo handlery pro každý spinedit extra.
Veď to mám v jedinom SpinEdit. Mám to na spôsob aký navrhol pf1957 v #9
2
Obecné / Re:Trieda, ktorá vráti rôzne typy komponentov
« Poslední příspěvek od Morrison kdy Dnes v 09:33:20 »
No jasně že musel, ale všechny jen na toho společného předka, to snad není problém, ne? Pořád by ti to asi nahradilo handlery pro každý spinedit extra.
3
Obecné / Re:Trieda, ktorá vráti rôzne typy komponentov
« Poslední příspěvek od Stanislav Hruška kdy Dnes v 09:26:01 »
Problém je v
Kód: Delphi [Vybrat]
  1. private
  2.     SeznamDbxxxKomponent: array of TDbxxxKomponenta;
  3.       // Nebo TDirectory, TObjectList atd.
TDbxxxKomponenta je vždy iný typ. Viď príspevok nižšie. To je celé jadro problému. Pochádzajú síce z TDBItems, ale to mi nijako nepomôže.
Preto to neviem vyriešiť. V mieste použitia by som to musel pretypovať a tým to je celé v háji.

Stando, TMS komponenty neznám, ale pokud chceš mít nějaký univerzální handler OnChange() a v něm nastavovat konkrétní property (např. ten "MonthIncrement") pro více různých komponent, tak z toho přeci vyplývá, že ty komponenty musejí mít společného předka, ne?
Veď som písal, že majú. Problém je v tom, žeby som ich v mieste použitia musel vždy pretypovať. Viac menej robím to isté, len som to presunul do triedy. Aby som to nemal vo formulári.
No, už mi to tak nemyslí ???  A niekedy vôbec :)
4
Obecné / Re:Trieda, ktorá vráti rôzne typy komponentov
« Poslední příspěvek od Morrison kdy Dnes v 02:11:23 »
Problém je v
Kód: [Vybrat]
private
    SeznamDbxxxKomponent: array of TDbxxxKomponenta;
      // Nebo TDirectory, TObjectList atd.
TDbxxxKomponenta je vždy iný typ. Viď príspevok nižšie. To je celé jadro problému. Pochádzajú síce z TDBItems, ale to mi nijako nepomôže.
Preto to neviem vyriešiť. V mieste použitia by som to musel pretypovať a tým to je celé v háji.

Stando, TMS komponenty neznám, ale pokud chceš mít nějaký univerzální handler OnChange() a v něm nastavovat konkrétní property (např. ten "MonthIncrement") pro více různých komponent, tak z toho přeci vyplývá, že ty komponenty musejí mít společného předka, ne?
5
Obecné / Re:Jak zjistím, zda je komponent na panelu
« Poslední příspěvek od JindraHavel kdy 24-01-2021, 21:06:38 »
Funguje to  :)
Děkuji!
6
Obecné / Re:Treevieew
« Poslední příspěvek od Jan Fiala kdy 24-01-2021, 11:40:26 »
Pokud budeš mít tabulku ve stylu:
ID (jednoznačné ID v tabulce kvůli opravám/mazání)
IDKategorie - vazbu na další tabulku s kategoriemi (auto, zábava, ...)
datum
popis
částka
...

Při plnění TreeView vytvoříš nejprve root nody (kategorie) a pak do nich budeš přidávat child nody z tabulky. Protože tam máš údaj o kategorii, tak to jednoduše rozhážeš do jednotlivých kategorií
Add/Edit/Delete si musíš zajistit sám - předpokládám, že se otevře nějaký formulář pro editaci. Při uložení aktualizuješ tabulku a pak provedeš aktualizaci TreeView. Při jednouživatelském přístupu stačí konkrétní řádek v TreeView, při víceuživatelském přístupu znovu naplníš TreeView.

Můžeš použít TreeView ve virtuálním režimu, ale pak se ti to trošku komplikuje s těmi úrovněmi. Tam by sis mohl pomoct tím, že rozbalená bude vždy jen jedna úroveň.
7
Obecné / Re:Treevieew
« Poslední příspěvek od František kdy 24-01-2021, 11:12:22 »
ja som si v začiatkoch pomohol tak, že som si strom pre TTreeView vytvoril do texťáku a načítal a aj opačne (loadFromFile, SaveToFile)
štruktúra je jednoduchá, TAB (#9) je oddelovač pre jednotlivé úrovne...
8
Obecné / Re:Jak zjistím, zda je komponent na panelu
« Poslední příspěvek od pf1957 kdy 24-01-2021, 11:01:51 »
Obecne bych to udelal pres souradnice mysi, aby to fungovalo bez ohledu na widget, ktery je na panelu, tj. neco takoveho v Panel.OnMouseLeave (pro VCL a Windows, predpoklada to vyvolavani vyjimek, pokud se neco nepovede):
Kód: Delphi [Vybrat]
  1. var
  2.   pos: TPoint;
  3.   panel: TPanel;
  4. begin
  5.   Win32Check(GetCursorPos(pos));
  6.   panel := Sender as TPanel;
  7.   pos := panel.ScreenToClient(pos);
  8.   if not PtInRect(panel.ClientRect, pos) then
  9.     Panel1.Color := clBtnFace;
  10. end;
  11.  
9
Obecné / Re:Jak zjistím, zda je komponent na panelu
« Poslední příspěvek od Stanislav Hruška kdy 24-01-2021, 10:00:39 »
If Edit.Parent = MyPanel then alebo
If Edit.Tag = 1 then
10
Obecné / Jak zjistím, zda je komponent na panelu
« Poslední příspěvek od JindraHavel kdy 24-01-2021, 09:46:03 »
Na panelu (TPanel) mám komponenty Edit...
Chci docílit toho, aby Panel při události OnMouseEnter, resp. OnMouseLeave změnil svoji barvu. To mi funguje :) ale >:(....
Ale potřebuji ošetřit stav, kdy myš přejede přes nějaký ten Edit, co je na tom panelu - při najetí na Edit je volána PanelOnMouseLeave - tam bych tedy potřeboval zjistit, že se jedá o Edit na Panelu a tedy barvu neměnit.
Stran: [1] 2 3 ... 10