Sziasztok
Erősen kezdőnek számítok a programozás világában, így biztos sokan a hajukat fogják tépni, hogy ilyen "egyértelmű" dolgot kérdezek.
De hiába keresgéltem, sehogy sem bírtam megtalálni a választ.
Szóval egy grafikont szeretnék készíteni, ami csupán annyit tud, hogy piros (szaggatott) vonalat rajzol, ha az érték 0 alá csökken (ami ez esetben nagyobb, mint 250) és zöld el, ha 0 fölé (ami ugye kisebb, mint 250). A probléma az, hogy én azt szeretném, hogy a vonal onnantól váljon pirossá vagy zöldé, ahol metszi az x tengelyt.
Azt eddig megoldottam, hogy ha nagyobb vagy kisebb, más színt kap, viszont ha +100-ban vagyok, és lecsökken az érték -25re, akkor a +100tól egészen a -25-ig piros lesz a vonal.
Íme a program:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,x,y,p,k:integer;
begin
with image1.canvas do
begin
c:= strtoint(edit3.text);
d:= strtoint(edit4.text);
a:= strtoint(edit1.text);
b:= strtoint(edit2.text);
x:= strtoint (edit5.text);
y:=strtoint (edit6.text);
p:= x*50+c;
k:= d+y*(-1);
begin
pen.color:=clred;
if k<250 then
pen.color:=clgreen;
begin
pen.width:=2;
pen.style:=psDash;
line(c,d,p,k);
ellipse(a-4,b-4,a+4,b+4);
ellipse(c-4,d-4,c+4,d+4);
edit3.text:= inttostr(p);
edit4.text:= inttostr(k);
end;
end;
end;
end;
(Azért némi magyarázatot fűznék ahhoz, hogy hogyan is működik.
Szóval, az első edit oszlopban csak a kezdő adatok vannak, azt nem kell bolygatni [edit1;edit2]
a második oszlop első cellájába az eltelt napok számát kell írni, tehát, ha 2nap telt el, s eközben az érték +48-al nőtt, akkor felső:2 alsó:48 [edit5,edit6]
a harmadik oszlopot szintén nem kell bolygatni
[edit3,edit4]
A Button1 arra szolgál, hogy a bevitt értéket megjelenítsük, a Button2 pedig a koordinátarendszert jeleníti meg.)