Piszę program w Delphi gdzie macierz zmienia się w trakcie działania programu no i aktualizuje się wykres. Macierz fajnie wygląda ale wykres mruga jak oszalały. Czy jest na to sposób żeby nie mrugało jak zwariowane?
0
0
Ale powiedz jak robisz ten wykres: komponentem jakims czy rysujesz recznie po Canvasie ?? ;)
0
rysuję na bieżąco jak tylko macierz się zmieni. Problemem jest to że muszę rysować bo ustalam wartości max
0
Sprobuj z właściwością DoubleBuffered:=True; :)
0
ustawiłam i efektów nie ma :(
chyba że coś źle robię
wykres_3d_dos.DoubleBuffered := True;
wykres_3d_dos jest typu TChartfx a dane tworzę na nowo w forze
Form1.wykres_3d_dos.DoubleBuffered := True;
Form1.wykres_3d_dos.OpenDataEx(COD_VALUES,30,30);
Form1.Wykres_3d_dos.OpenDataEx(COD_COLORS,30,30);
max:=szukaj_max(mapa_kosztow_temp);
Form1.Wykres_3d_dos.Adm[CSA_MAX]:=max + max*(Margines_wykresu/100);
for z:=0 to (30-1) do //kolumny
begin
Form1.wykres_3d_dos.ThisSerie:=z;
for x:=0 to (30-1) do //wiersze
begin
Form1.Wykres_3d_dos.thispoint:=x;
Form1.Wykres_3d_dos.value[x]:=mapa_kosztow_temp[z+1,x+1];
end;
end;
Form1.Wykres_3d_dos.CloseData(COD_COLORS);
Form1.Wykres_3d_dos.CloseData(COD_VALUES);
Form1.Wykres_3d_dos.View3D:=true;
0
nie kumam, przecież Dominik podał Ci odpowiedź... grrrr...
jak nie kumasz jak rysować na niewidocznej bitmapie, to możesz spróbować jesze zrobić tak:
przed rysowaniem
LockWindowUpdate(handle);
po rysowaniu
LockWindowUpdate(0);
ale nie wiem, czy to coś da, natomiast metoda którą podał Dominik i którą MASZ W FAQ zadziała na 100%.
0
no nie jest jasne bo ja nie rysuje na Canvasie tylko mam wykres typu TChartfx