tworzenie elipsy- zmienne współrzędne

0

witam, mam pytanie, czy da się podstawić w miejsce współrzędnych w tworzeniu elipsy zmienne, np. wpisuję w editach liczby, wciskam przycisk i mam elipsę o takich współrzędnych? Jeśli wiecie jak to zrobić to bardzo proszę o pomoc.

0

var x1, y1, x2, y2: Integer;
x1:= StrToInt(Edit1.Text);
y1:= StrToInt(Edit2.Text);
x2:= StrToInt(Edit3.Text);
y2:= StrToInt(Edit4.Text);
Canvas.Ellipse(x1, y1, x2, y2);</delphi>

0

dzięki za pomoc. Mam jeszcze jedno pytanie, jak wstawić obrazek jako tło, na którym pojawiała by się ta elipsa, nie chodzi mi o to, żeby był on na całej formatce, tylko w określonym miejscu.

0

Umieść kontrolkę Image na formularzu. Możesz rysować po płótnie (Canvas) tego obrazka:

Image1.Canvas.Ellipse(x1, y1, x2, y2);

O to chodzi?

0

Jeśli chodzi ci o środek elipsy to możesz tak to uczynić, tylko najpierw sobie przeskaluj obrazek do wielkości elipsy

var tlo:TBitmap;
begin
tlo:=TBitmap.Create;
tlo.LoadFromFile('c:\img.bmp');
with image1.Canvas do
begin
Brush.Bitmap:=tlo;
Ellipse(0,0,80,80);
end;
tlo.Free;
end;
0

dzięki za pomoc, ale mam kolejny problem, jak zrobić, żeby im większa była liczba w edit1, tym mniejsz by był x1 i odwrotnie? Chciałem zrobić jego odwrotność, poprzez dzielenie 1 przez tą liczbe (x1:= 1/StrToInt(Edit1.Text);) ale pokazuje mi błąd, bardo proszę o pomoc.

0
x1:= Liczba - StrToInt(Edit1.Text);

Za Liczba podstawiasz co chcesz</delphi>

0

mam jeszcze 1 pytanie. Do rysowania elipsy używam polecenia Canvas.Ellipse(x1, y1, x2, y2); jak zrobić żeby po wprowadzeniu nowych współrzędnych i wciśnięciu przycisku pierwsza elipsa zniknęła? widziałem kiedyś jakieś polecenie z treścią free, ale szukałem w google i nie umiem go znaleźć

0

Najprościej to:

  Self.Repaint;

Tylko jak rysujesz po formatce, każde jej przesunięcie lub minimalizacja spowoduje że to co rysujesz na jej Canvasie zniknie.
Rozwiązaniem jest rysowanie po TImage albo obslużenie w odpowiedni sposób komunikatu WM_PAINT. Więcej jest w google

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