Mitenkäs delphin saa hiiren vasenta näppäintä
napsauttamalla jättämään mustan pisteen , vaikka
image componenttiin ?
napsauttamalla jättämään mustan pisteen , vaikka
image componenttiin ?
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 11
Vanhimmat
näin, kuten alla olevassa esimerkissä on tehty.
Kun proseduuria katsoo tarkemmin, niin huomataan
että Formilla on Image komponentti ja object
Inspector:ista sen Events välilehdeltä on otettu
OnMouseDown tapahtuma ja klikattu sitä, näin on
saatu tämä proseduuri. Ja kun siihen kirjoitetaan
koodia niin saadaan aikaiseksi tapahtuma joka
piirtää hiiren vasenta nappia painaessa (pienen)
pisteen ruudulle siihen kohtaan jossa hiiren
kursori on.
procedure TForm1.Image1MouseDown(Sender: TObject;
Button:TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ( button = mbLeft) then
canvas.Pixels[X,Y]:=clBlack;
end;
Joo kyl mä pisteitä sain tuleen, mut kun
haluaisin,että se piste tulisi siihe hiiren alle
mihin painan ,eika 5cm ylä viistoon vasemmalle...
Jos sen verran voisit viel auttaa , kiitos
kuitekii näist lähettämistäsi vieasteistä...
Nii tota kyl ne pisteet formille tulostaessa
tulee kohdalleen ,mutta ei imageen....
unohdin tietenkin sen jos image komponentti ei
ole formin vasemmassa yläkulmassa niin se tekee
just noin, koska hiiren X ja Y positio 0,0 on
formin vasen yläkulma... tee näin.
canvas.pixels[(X image1.left),
(Y image1.top)]:=clBlack;
näin image:n positio lasketaan X ja Y:n mukaan.
Toimii...
Nii kun mä pistän sen image komponentin Panelin
päälle ni sit se ei toimi...,, nii et oisko sul
vielä joku hauska idea miten se toimiss ?
Sit mul varmaa ei enää täst asiast ois enää
mitää...
Yksi mahdollisuus on käyttää PANEL komponentin
tilalla tilalla BEVEL:iä, sehän on ulkonäöltä
aika samanlainen. Mutta olis varmaan järkevämpää
jos muutetaan koodia näin.
image1.canvas.pixels[x,y]:=clBlack;
Toimii silloin Panel:ssa.
Kommenttina..tietenkin olisin voinut alunperinkin
kirjoittaa näin!
Hyvin toimii nyt image componentti panelin päällä
ja pisteitä tulee , vielä oikeessa kohdassakin..
Bevelikin olis iha hyvä varmaa , mut panelii mä
täs tarviin , koska paneliin voi pistää kaikkia
buttoneja jne.. kiinni ja ne liikku sit panelin
mukana...
Viimeinen kysymys tällä sivustolle. eli
miten saan isonnettua sitä pistettä,tätä kysymystä
mun ei todellakaa olis pitäny lähettää , mutta
kun ei onnistunu seuraavalla lauseella !!!
canvas.pen.width := 5;
eli mitähä tos lauseessa on pielessa..????
voi muuttaa yksittäisen pikselin kokoa, koska
kyseessä on se väripiste mistä koko näyttö
koostuu, nyt täytyy muuttaa koodia siten että
piirretään imageen ympyrä joka sitten täytetään
siveltimellä, eli näin
if (button=mbleft) then
image1.canvas.brush.color:=clblack;
image1.canvas.pen.color:=clblack;
image1.canvas.ellipse(x-5,y-5,x 5,y 5);
end;
esimerkissä sivellin on musta, samoin kynä
metodi on ellipse, mutta sillä ympyrä piirretään.
Mutta olis tietenkin järkevämpää tehdä näin
--------
var
dd:integer;
---------------
dd:=5;
image1.canvas.ellipse(x-dd,y-dd,x dd,y dd);
Joo..