Zdravím, potřeboval bych poradit.
Žil jsem v domění, že Canvas.Refresh smaže vše nakreslené přes Canvas (canvas.rectangle ; lineto ; ..). Dokonce to i fungovalo. Teď však mám už trochu jiný program a jednoduše mám 2 tlačítka.
Jedno:
Canvas.MoveTo(50,50);
Canvas.LineTo(75,75);
Druhé:
Canvas.Refresh;
A doufal jsem že po kliknutí na první se udělá primitivní čára (taky se udělá), ale po kliknutí na druhé se nesmaže. Potřeboval bych zjístit jak takto vytvořenou čáru smazat, aniž bych změnil pozadí.
---
Komplexněji to vypadá tak že bych chtěl na Form malovat obdelníky tak, že stisknutí myši zahájí kresbu, posunutí kreslí a upustění myši kresbu ukončí. Problém je v tom, že když se vracím zpět s myší, tak se původní obrazec přepisuje. Proto jsem chtěl vždy po posunutí myši smazat obraz a znovu ho vykreslit.
Něco jako
procedure TFormMapedit.FormMouseDown(X,Y: integer);
begin
kresli: true;
xpos := X;
ypos := Y;
end;
procedure TFormMapedit.FormMouseMove(X,Y: integer);
begin
if (kresli) then Canvas.Rectangle(xpos,ypos,X,Y);
end;
procedure TFormMapedit.FormMouseUp(X,Y: integer);
begin
kresli: false;
end;
[Lazarus] Canvas.Refresh Vyřešeno
Re: [Lazarus] Canvas.Refresh
Prosím, dost by mi to pomohlo.
Re: [Lazarus] Canvas.Refresh
Myslím,že bude třeba si uložit celý pozadí do proměnný před kreslením a při potřebě vymazat potřebnej nakreslenej obrazec překreslit ho tím uloženým.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Refresh herní PC 30-40k Příloha(y)
od Floowwee » 01 zář 2024 15:47 » v Rady s výběrem hw a sestavením PC - 1
- 1068
-
od petr22
Zobrazit poslední příspěvek
01 zář 2024 16:07
-
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti