4 pytania

0

1:Czy jest możliweżeby z procedury a wywołać procedurę b, tak żeby po wykonaniu procedury b nie powracać do a (bez użycia goto). Jak to zrobić?
2: Jak cofnąć namalowanie ostatniej lini funkcją LineTo?
3: Ma ktoś pomysł jak malować linie jak w AutoCad-zie?
4: Na panelu mam stworzone powiedzmy kilka TImage. Da radę sprawdzić co leży na panelu i jakie ma wspułżędne?

0
  1. to chyba chodzi o to:

procedure a;
begin

if cos_tam then
begin
b; // wywolujemy procedure b
Exit; // wychodzimy z procedury a
end;

//... dalszy kod

end;

Co do 4 to nie mam teraz delphi pod reka i nie moge teraz sprawdzic ale to chyba bedzie cos w stylu:

procedure odczytaj_pozycje;
var
x,y: integer;
begin

for i := 0 to Panel.ComponentCount - 1 do
if Panel.Components[i] is TImage then
begin
x := (Panel.Components[i] as TImage).Left //
y := (Panel.Components[i] as TImage).Top // tu sobie odczytujesz pozycje
// no i mozesz je potem gdzies wyswietlic
end;

end;

Jesli nie tak to napisz cos wiecej bo ja nie wiem dokladnie o co chodzi.
[cya]

0

1 zle bo powracasz do procedury a po to by ją prerwać.

0

Wiec nie wiem jak to zrobic i obawiam sie, ze nie jest to mozliwe. A czemu zalezy ci zeby nie powracal do procedury a? przeciez wroci i zakonczy Od razu nie wykonujac praktycznie zadnego kodu.

0
  1. Namaluj linię w dugą stronę, ale wcześniej zmień kolor, na taki, jaki ma tło. Jeśli to ma być prawdziwe cofanie, to musisz przed rysowaniem przewidzieć, jaki obszar zajmie operacja graficzna i skopiować ten obszar do TBitmap. Przy cofaniu wklejasz go tam, gdzie był i tyle.
  2. MatroX: jak będzie jeden komponent, to się wszystko zapętli. Trzeba na odwrót i z downto.

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