Rysowanie wykresu

0

Mam prosbe,szukalem na forum,ale nie doszperalem sie czegos podobnego,moze przeoczylem,wiec jelsi ktos kojarzy prosze o napisanie,lub podanie linku.
Chce narysowac wykres,a moze raczej linie ktora by przebiegala w nastepujacy sposob:
Podaje np pierwszego dnia wartosc 1 i zaznacza mi punkt,nastepnie podaje np za 3 dni wartosc 2 i zaznacza mi kolejny punkt,chce zeby te punkty laczyly sie w jedna calosc,tzn wykres funkcji itd. Nie wiem czy da sie to zrobic na jakims wykresie, czy trzeba po prostu rysowac punkty i laczyc je??Prosze o pomoc kogos zorientowanego??

0
gadhet napisał(a)

Prosze niech ktos pomoze!!!!!!!!!!!!!!!!!

Ale o co dokładnie chodzi? Najlepiej daj kod który już masz to zobaczymy co trzeba poprawić.

Canvas.MoveTo(x, y); //Współrzędne początku rysowania (poprzedniego punktu)
Canvas.LineTo(x, y);  //Współrzędne końca rysowania linii do bierzącego punktu

Zapisuj gdzieś (np. w pliku typowanym) współrzędne punktów tak aby można łatwo odtworzyć współrzędne wszyskich punków po ponownym uruchomieniu programu.

0

masz komponent TChart - obsługa podobnie jak wykresy w excelu

0
Misiekd napisał(a)

masz komponent TChart - obsługa podobnie jak wykresy w excelu

wlasnie wiem ze jest Tchart i chce wlasnie przerobic cos z excela,gdzie mam napisane makro i rysuje mi wykresy,ale chcialbym zrobic to w delphi,ale wlasnie nie wiem za bardzo jak obslugiwac Tchart moze ktos podac jakiegos linka z jakimis podstawami tego,albo przykladowy program rysowania czegos podobnego,moze wtedy dojde jak sie to obsluguje,czy Tchart ma wlasnie taka funkcje rysowania od punktu do punktu przy zczytywaniu np danych z memo,czy edita?

0

jedyna co musisz zrobić to dwukrotnie kliknąć na TChart utwozyć jakąś serie przycisk Add na zakładce Char|Series.

potem prostą intrukcja dodajesz punkty do wykresu:

chart1.Series[0].AddXY(x, y);
0
dj napisał(a)

jedyna co musisz zrobić to dwukrotnie kliknąć na TChart utwozyć jakąś serie przycisk Add na zakładce Char|Series.

potem prostą intrukcja dodajesz punkty do wykresu:

chart1.Series[0].AddXY(x, y);

wiec rozumie ze poprzez zmiane x i y bede otzrymywal kolejne punkty wykresu??

0

sprawdz a zobaczysz. komponent TChart ma dość rozbudowanego help'a tam jest prawie wszystko czego potrzeba!

0
dj napisał(a)

sprawdz a zobaczysz. komponent TChart ma dość rozbudowanego help'a tam jest prawie wszystko czego potrzeba!

dobra doszedlem do rysowania takiego wykresu,ale teraz mam kolejny problem,co zrobic,aby zapamietywal dane wprowadzone wczesniej,tzn zeby jak wlacze znowu nie rysowal od poczatku tylko od ostatniego punktu,chyba trzeba gdzies zapisac,czy mozna to jakos inaczej rozwiazac??

0

TIiniFiles, TRegistry, własne pliki typowane, zwykłe pliki tekstowe, możliwości masz wiele... do wyboru do koloru...

0
routex napisał(a)

TIiniFiles, TRegistry, własne pliki typowane, zwykłe pliki tekstowe, możliwości masz wiele... do wyboru do koloru...

hmm, pewnie mozliwosci jest duzo..,ale nie wiem co ktora robi,domyslalm sie ze zwykle pliki tekstowe czyli tworzenie pliku tekstowego i zapisywanie w nich danych wartosci,ale ja chcialbym tego uniknac,tworzenia dodatkowych plikow,gdyż za kazdym razem pozniej musialbym ladowac te pliki,czyż nie??Jest jakie sinne wyjscie z tego??

0

TRegistry - czyli rejestr Windows, bez nowych plików...

0

Jak dla mnie to najrozsądniej jest to zrobić na pliku binarnym, nie ma co zaśmiecać jaszcze bardziej rejestru.

0
routex napisał(a)

TRegistry - czyli rejestr Windows, bez nowych plików...

czytam to Tregistry w helpie ale nie mam zielonego pojecia jak np.zapisac fragment wykresu,czy jego dane,moglbys troche pomoc

0

Oj, słabo szukasz... :P

Obsługa TRegistry z pliku HELP Delphi:

function GetRegistryValue(KeyName: string): string;
var
  Registry: TRegistry;
begin
  Registry := TRegistry.Create(KEY_READ);
  try
    Registry.RootKey = HKEY_LOCAL_MACHINE;
    // False because we do not want to create it if it doesn't exist
    Registry.OpenKey(KeyName, False); 
    Result := Registry.ReadString('VALUE1');
  finally
    Registry.Free;
  end;
end;
0
routex napisał(a)

Oj, słabo szukasz... :P

Obsługa TRegistry z pliku HELP Delphi:

function GetRegistryValue(KeyName: string): string;
var
  Registry: TRegistry;
begin
  Registry := TRegistry.Create(KEY_READ);
  try
    Registry.RootKey = HKEY_LOCAL_MACHINE;
    // False because we do not want to create it if it doesn't exist
    Registry.OpenKey(KeyName, False); 
    Result := Registry.ReadString('VALUE1');
  finally
    Registry.Free;
  end;
end;

ale ja juz dawno to przekleilem,ale nie odpala mi sie rzuca sie o
Registry: TRegistry;

0

ale ja juz dawno to przekleilem,ale nie odpala mi sie rzuca sie o
Registry: TRegistry;

a dodałeś do sekcji uses Registry ?

0

przed zamknięciem aplikacji pobierasz dane z wykresu w następującu sposób(pseudo kod):

var
  t: TChartValueLists;
  x, y: TChartValueList;
begin
  t:= chart1.Series[0].ValuesLists;
  x:= t.ValueList[0];
  y:= t.ValueList[1];

zmienne x, y zawierają właściwość values[i] i masz dostęp do wszystkich punktów.

Jeżeli chcesz korzystać z rejestrów to masz trzy wyjscia zapisujesz każdy punkt w nowej watrośći, wszystkie punkty razem jako wartości binarne lub jak kolega wcześniej napisał jako string:

var
  reg: TRegistry;
begin
  reg:= Tregistry.Create;
  // przygotowanie danych
  // pierwsza opcja
  for i:= all points do begin
    reg.WriteFloat('nazwax' + i, point.x);
    reg.WriteFloat('nazway' + i, point.y);
  end;
  reg.Free;
  // drug opcja dane pakujesz do odpowieniej zmiennej choćby tablica a: array[0..1000] of char;
  reg.WriteBinaryData('punkty', a, rozmiar_w_bajtach);

łatwiej jest posłurzyć się plikiem

var
  s: TFileStream;
begin
  s:= TFileStream.Create('punkty.bin', fmCreate);
  for i:= all points do begin
    s.write(x[i], 4); // rozmiar zmiennej dla integer i float 4 dla double 8
    s.write(y[i], 4); // przy odczycie urzywasz s.read(x[i], 4);
  end;
  s.Free;
0
routex napisał(a)

ale ja juz dawno to przekleilem,ale nie odpala mi sie rzuca sie o
Registry: TRegistry;

a dodałeś do sekcji uses Registry ?

teraz juz tak;) i działa,no ale skad mam wiedziec np ze zapisalo czesc wykresu(jego x,y) i gdzie i jak to pozniej odtworzyc i rysowac dalej wykres??

1 użytkowników online, w tym zalogowanych: 0, gości: 1