IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @005
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

SENSIT s.r.o.

Výroba odporových snímačov teploty Pt100, Pt500, Pt1000, T1, Ni1000, NTC... www.sensit.cz

ŠKOLEX- projekčná technika

spätné projektory, diaprojektory data projektory, plátna www.skolex.sk

Problémy s nadváhou?

Zistite viac o dosiahnutí ľahšej a zdravšej hmotnosti. www.janinblog.com

Stroje - zemné a búracie práce

Ponuka strojov pre zemné a búracie práce Triedenie stavebných odpadov a kameniva www.slovitrans.sk

Inzercia - Elektro a foto

Kupujete, predávate? Vložte k nám svoj inzerát. www.moj-bazar.sk

[Delphi] Interaktivny graf

Zaslať odpoveď
AutorSpráva
vama
Užívateľ
Užívateľ

Založený: 20.11.2009
Príspevky: 213
Bydlisko: Myjava
Vek: 19

PríspevokZaslal: Ne 06.11.11 16:14Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 936

PríspevokZaslal: Ne 06.11.11 18:26Odpovedať s citátomNávrat hore

a preco nepouzivas onclickseries ??? valueindex je index hodnoty StringGrid1.col-1
Zobraziť informácie o autoroviOdoslať súkromnú správu
vama
Užívateľ
Užívateľ

Založený: 20.11.2009
Príspevky: 213
Bydlisko: Myjava
Vek: 19

PríspevokZaslal: Ne 06.11.11 18:38Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 936

PríspevokZaslal: Po 07.11.11 9:14Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správu
vama
Užívateľ
Užívateľ

Založený: 20.11.2009
Príspevky: 213
Bydlisko: Myjava
Vek: 19

PríspevokZaslal: Po 07.11.11 21:47Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 936

PríspevokZaslal: Po 07.11.11 22:02Odpovedať s citátomNávrat hore

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 ?
Zobraziť informácie o autoroviOdoslať súkromnú správu
vama
Užívateľ
Užívateľ

Založený: 20.11.2009
Príspevky: 213
Bydlisko: Myjava
Vek: 19

PríspevokZaslal: Po 07.11.11 23:24Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 936

PríspevokZaslal: Po 07.11.11 23:38Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správu
vama
Užívateľ
Užívateľ

Založený: 20.11.2009
Príspevky: 213
Bydlisko: Myjava
Vek: 19

PríspevokZaslal: Po 07.11.11 23:43Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQ
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 936

PríspevokZaslal: Ut 08.11.11 9:07Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
vama
Užívateľ
Užívateľ

Založený: 20.11.2009
Príspevky: 213
Bydlisko: Myjava
Vek: 19

PríspevokZaslal: Ut 08.11.11 17:19Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd