Delphi -pset

Mitenkäs delphin saa hiiren vasenta näppäintä
napsauttamalla jättämään mustan pisteen , vaikka
image componenttiin ?
11528
Äänestä

Muut lukivat myös

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;

Äänestä
  • 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ä...

    Äänestä

  • PIENIMUTTAHANKALAON kirjoitti:

    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....

    Äänestä

  • PIENIMUTTAHANKALAON kirjoitti:

    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.

    Äänestä

  • Mad_Max kirjoitti:

    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...

    Äänestä

  • EIENÄÄONGELMIA kirjoitti:

    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ää...

    Äänestä

  • TAASPULASSA kirjoitti:

    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!

    Äänestä

  • Mad_Max kirjoitti:

    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...

    Äänestä

  • NoNii kirjoitti:

    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..????

    Äänestä

  • LASTQUESTION kirjoitti:

    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);

    Äänestä

  • Mad_Max kirjoitti:

    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..

    Äänestä

Kommentoi aloitusta


pienimuttahankalapulma kirjoitti:

Mitenkäs delphin saa hiiren vasenta näppäintä
napsauttamalla jättämään mustan pisteen , vaikka
image componenttiin ?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu