| Autor | Správa |
vama
 Užívateľ
 Založený: 20.11.2009 Príspevky: 213 Bydlisko: Myjava Vek: 19
 | Zaslal: Ne 06.11.11 16:14 |   |
Robim jeden SW v Borland Delphi a potreboval by som vyriesit jeden problem.
Jedna sa mi o to, ze v objekte StringGrid1 mam ulozene ciselne hodnoty ktore vypisujem do grafu Chart1. Aby bola lepsia orientacia v tabulke, tak by som chcel urobit prepojenie medzi tymito dvoma komponentmi. A to takym sposobom, ze pri kliknuti na danu hodnotu v grafe by sa mi oznacila tato hodnota v tabulke (StringGrid1.Col).
Tento problem riesim tak, ze graf mi vyvola udalost Chart1MouseDown a znej vycitam suradnice kde sa nachadza mys a prepocitam z dlzky grafu a dany vysledok je suradnica v tabulke a tym sa na nu prepnem. Problem je ale v tom, ze graf ma okraje a dalej by som ho chcel posuvat a opat by sa to cele len skomplikovalo.
Ak mate nejaku jednoduchsiu metodu, prosim dajte mi vediet.
Program:
| kód: | procedure TForm1.Chart1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
x_os: integer;
begin
x_os := Round ( X/Chart1.Width * max );
StringGrid1.Col := x_os;
end; |
 |
_________________ "Digitálna technika pozostáva len z 0 a 1, ktoré sú správny čas na správnom mieste." M. Valášek | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Ne 06.11.11 18:26 |   |
a preco nepouzivas onclickseries ??? valueindex je index hodnoty StringGrid1.col-1 |
| |
  |
 |
vama
 Užívateľ
 Založený: 20.11.2009 Príspevky: 213 Bydlisko: Myjava Vek: 19
 | Zaslal: Ne 06.11.11 18:38 |   |
dakujem za radu, len ma to na moje vyuzitie 2 nevyhody.
1. ja potrebujem, aby tie indexy boli viazane na samotne body zlomu a nie na krivky (pretoze ta hodnota zodpoveda tomu bodu)
2. udalost onclickseries, ako uz aj z nazvu napoveda, je vyvolana pri kliknuti priamo na krivku grafu, lenze ked ja mam hrubku grafu 1-2 pixel, tak je to problem trafit sa don
Tak neviem, ak mas pre mna nejake riesenie, prosim napis mi
EDIT:
Teraz som si vsimol, v 1. prispevku na obrazku som omylom prehodil Data a Poradie. |
_________________ "Digitálna technika pozostáva len z 0 a 1, ktoré sú správny čas na správnom mieste." M. Valášek | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 |
no bud si nadefinujes pre body zlomu zobrazenie points takze vacsia plocha bude k dispozici pre event onclickseries. druha moznost je pouzit tebou spominany event no a v ramci neho v loope prejst vsetky indexy a cez CalcXPos() si vypocitat jeho poziciu v grafe a otestovat ju ci sa zhoduje s hodnotou X vratenou eventom. samozrejme tam mozes aplikovat povolenu nepresnost aby ti to zahralo aj +-3 pixle. jasne mozes optimalizovat aj loop aby neprechadzal vsetky indexy ale iba dovtedy kym nenajde prvy vyhovujuci. |
| |
  |
 |
vama
 Užívateľ
 Založený: 20.11.2009 Príspevky: 213 Bydlisko: Myjava Vek: 19
 | Zaslal: Po 07.11.11 21:47 |   |
No presne nerozumiem ako myslis nadefinovat pre body zlumu points, mozes mi to rozpisat podrobnejsie?
Druha vec, tie loop metody neviem ci budu az tak rychle, pretoze v grafe (a v tabulke) bude mozno aj 30 az 60 tisic hodnot. |
_________________ "Digitálna technika pozostáva len z 0 a 1, ktoré sú správny čas na správnom mieste." M. Valášek | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Po 07.11.11 22:02 |   |
| vama napísal: | | No presne nerozumiem ako myslis nadefinovat pre body zlumu points, mozes mi to rozpisat podrobnejsie? |
no to su tie stvorceky v bodoch zlomov ako napr na tomto obrazku
http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/USTrade1991-2005.png/800px-USTrade1991-2005.png
| vama napísal: |
Druha vec, tie loop metody neviem ci budu az tak rychle, pretoze v grafe (a v tabulke) bude mozno aj 30 az 60 tisic hodnot. |
no loopy si optimalizuj. skus pouzit binarne vyhladavanie. a to bude co za graf ked vnom bude 60tisic hodnot ? ides robit editor audia ? |
| |
  |
 |
vama
 Užívateľ
 Založený: 20.11.2009 Príspevky: 213 Bydlisko: Myjava Vek: 19
 | Zaslal: Po 07.11.11 23:24 |   |
aha rozumiem co su tie Points .. Len pri takom mnozstve to tam nema moc velky zmysel davat.
OK, ved snad nejako to uz doriesim
Nie, nebude to editor audia, jedna sa o datalogger. Externe zariadenie ktore snima el. veliciny (napatie, prud a pod.) v definovanych casovych usekoch. Po zazname sa tieto hodnoty prenesu do PC a prave ten graf bude vykreslovat dany priebeh merania. EEPROM pamat v dataloggery je 512 kb, tak to priblizne vychadza na (64 tisic - 8-bit merani a 32 tisic pre 16(10)-bitove merania). |
_________________ "Digitálna technika pozostáva len z 0 a 1, ktoré sú správny čas na správnom mieste." M. Valášek | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Po 07.11.11 23:38 |   |
no to bude napor na samotny graf. nehovoriac o string gride. na tvojom mieste by som to rozdelil na viac mensich grafov ktore by sa strankovali. |
| |
  |
 |
vama
 Užívateľ
 Založený: 20.11.2009 Príspevky: 213 Bydlisko: Myjava Vek: 19
 | Zaslal: Po 07.11.11 23:43 |   |
tiez si myslim, ze to bude uz moc .., ale skusim, ak to bude moc pomale alebo chybove, tak to budem musiet prerobit.
To strankovanie akym stylom robit? To myslis nejako spriemerovavat napr 10 hodnot, alebo nejako uplne inak? |
_________________ "Digitálna technika pozostáva len z 0 a 1, ktoré sú správny čas na správnom mieste." M. Valášek | |
    |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 |
spriemerovanim vytvoris zoom, strankovanie som myslel tak ze viditelna cast grafu bude vytvorena iba v case ked bude viditelna a zvysok hodnot grafu udrzovat iba v nejakom poli. a az ked sa presunies na dalsiu stranku , tak vykreslis znovu graf z potrebnej casti pola. to iste by asi bolo lepsie aplikovat aj na ten stringgrid |
| |
  |
 |
vama
 Užívateľ
 Založený: 20.11.2009 Príspevky: 213 Bydlisko: Myjava Vek: 19
 | Zaslal: Ut 08.11.11 17:19 |   |
dobre, tak nejako to uz urobim ..
Este by ma zaujimalo, ci by sa aspon odhadom dalo urcit maximalny pocet dat (bodov) pre graf a stringgrid aby pracovali korektne? |
_________________ "Digitálna technika pozostáva len z 0 a 1, ktoré sú správny čas na správnom mieste." M. Valášek | |
    |
 |
|