Eli miten scaalaan jonkun isomman kuvan pienempään pictureboksiin
Hei tesmu!
Et mitenkään, mutta jos sä nyt välttämättä haluut sen PictureBox'in muukaan, niin laita sen sisälle yksi tai useampi ImageBox ja sen/niiden Stretch -arvoksi False niin kuva pysyy raameissa.
Sitäpaitsi tutkimalla mitä kaikkea sä voit tehdä sille Image boxille siinä PictureBox'in sisällä saat varmasti hauskoja ahaaelämyksiä ja voit tehdä vaikkapa kivoja pikku animaatioita...
Käsittääkseni kuvan scaalaus onnistuu
No älä sit kysele jos tiedät...
ööö mää kysyin miten se onnistuu Sen tiedän että se jollakintavalla pitäisi onnistua mutta sitä että miten onnistuu haen tässä topicissa
StretchBlt-API:lla onnistuu.
https://www.ohjelmointiputka.net/koodivinkit/
Kiitokset vohvelille (= sain toimimaan
Kuules nyt tesmu sä oot melkoinen fakiiri, etten sanoisi, jos sä sait sen lue nyt tarkkaan FORMIN SKAALAUKSEN toimimaan pelkästään noilla eväillä, jotka sä löysit ton hunajavohvelin antaman linkin takaa... Ja sitäpaitsi sähän halusit alunperin skaalata vain Picturebox'in sisältöä...
No kuvan skaalaamisestahan tässä on koko ajan puhuttu, ei formin.
Oot sä herkkukeksi kova 'kalastaan'...
Ööh? Jompikumpi taisi nyt tässä käsittää jotain väärin, ja jos se olin minä, niin pahoittelen. :)
Mutta sikäli kuin minä ymmärsin tuon tesmun kysymyksen, niin kyllä tuo StretchBlt-API sopii siihen ongelmaan kuin nenä päähän.
ScretchBlt ja TransparentBlt sopivat kummatkin mainiosti tuohon.
Turhaa alkaa kikkailemaan image-lootan tapaisilla jutuilla, kun sen saa tehtyä ilman niitäkin. Melkein yhtä fiksua kuin säilyttää arvot labeleissa tai textbokseissa, vaikka voisi kätevästi käyttää muuttujia. ^__^
Ihanaa...tää alkaa jo melkein muistuttaan chat'iä
Ja sulta nomic tahdon kysyä, että kumpiko on pitkänpäälle työläämpää säilytellä niitä arvoja tekstibokseissa ja labeleissa vaiko pukata ne globaaleihin muuttujiin ja poimia arvot niistä sitä mukaa, kun on tarpeen siis missä milloin ja vain..?
Annampa pienen esimerkin: Oletetaan, että sinulla on jossin formissa dynaaminen taulukko, jolle annat ulottuvuudet Form_Load tapahtumassa ja tahdot tyhjentää taulukon mutta et halua menettää jotain taulukossa olevaa ohjelmasi toiminnan kannalta elintärkeää tietoa.
No sähän yksinkertaisesti pukkaat tämän yksittäisen tiedon globaaliin muuttujaan ja teet formille Unload FormiSeJaSe ja Sit sä samantien lataat sen uudestaan Load FormiSeJaSe ja niin sulla on sun esim. puhdas taulukko käytössä ja sit sä vaan nappaat sen elintärkeän tietosi sieltä globaalista muuttujasta ja pukkaat sen takas siihen taulukkoon ja sit pumppaat sinne lisäks mitä ikinä tykkäät...
your lovin'
neu33 huomaa kyllä että et tiedä visual basicista tuon taivaallistaa kuitenkin itse sitä olen harrastanut jo 2 vuotta
mutta ei ole sattunut vielä tätä kuvan scaalausta tielle
ja mitä tuohon vinkkiin heti kun näin sen tiesin että sillä voidaan tehä sama myös picture boxille
Ja vohveli kiitos vielä tuosta sain toimimaan niinkuin pitikin huolimatta neu33 selityksistä
neau33 kirjoitti:
Ja sulta nomic tahdon kysyä, että kumpiko on pitkänpäälle työläämpää säilytellä niitä muuttujia tekstibokseissa ja labeleissa vaiko pukata ne globaaleihin muuttujiin ja poimia arvot niistä sitä mukaa, kun on tarpeen missä milloin ja vain..?
-Nea-
Muista en tiedä, mutta itse säilytän arvot muuttujissa. :D
Voihan sitä toisellakin tavalla menetellä, mutta onko järkeä luoda uusi kontrolleri ihan sitä varten, että se säilyttää hetkittäin jotain tietoa, kun voit luoda pienenpään tilaan kevyemmän vaihtoehdon? ;)
Ja eiköhän olisi aika lopetella ot:ta, tesmu nytten sai apua ongelmaansa.
Tästä eteenpäin on varmaan parempi jatkaa irc:ssä ennemmin.
tesmun kommentti:
lainaus:
neu33 huomaa kyllä että et tiedä visual basicista tuon taivaallistaa kuitenkin itse sitä olen harrastanut jo 2 vuotta
mutta ei ole sattunut vielä tätä kuvan scaalausta tielle
ja mitä tuohon vinkkiin heti kun näin sen tiesin että sillä voidaan tehä sama myös picture boxille
Voi sua tesmu!
Mä masennuin niin pahasti sun kommentista, että päätin hylätä API-kyselyt ja siirtyä takaisin QBasic'in pariin ja sain tekastua tommosen mitättömän koodinpätkän...
'Source.Bas COMMON SHARED xResult AS DOUBLE COMMON SHARED visit AS INTEGER SELECT CASE visit CASE 0 a$ = "xResult = (5 + 5) / 2 - 3" OPEN "xResult.Bas" FOR OUTPUT AS #1 PRINT #1, "COMMON SHARED xResult AS DOUBLE" PRINT #1, "COMMON SHARED visit AS INTEGER" PRINT #1, a$ PRINT #1, "visit = 1" PRINT #1, "CHAIN " + CHR$(34) + "Source.Bas" + CHR$(34) CLOSE #1: CHAIN "xResult.Bas" CASE 1: visit = 0 KILL "xResult.Bas": visit = 0: PRINT xResult END SELECT
Ja tuota... mitenköhän tuo nyt mahtaa liittyä yhtään mihinkään, mistä tässä on keskusteltu? Ja vastaapa välillä niin, että minäkin ymmärrän.
Edit: Ja sanopa saman tien, että kannatatko nyt siis itse tiedon säilyttämistä muuttujissa vai jossain textboxeissa? Nomic nimittäin kannattaa muuttujia. Myöskin sinun tekstistäsi voisi päätellä, että kannatat muuttujia, mutta kirjoitustyyli puhuu aivan päinvastaista.
No hei honey waffle!
Luovutan "enhän mä voi tajuta mitään kun satun olemaan femiini koodari"...
TransparentBlt-funktion käytöstä muistuttaisin:
MSDN kirjoitti:
Windows 95/98: TransparentBlt contains a memory leak that can exhaust system resources.
Hetken verran kopioit, niin kohta ei enää näykään mitään. Siinäpä sitten mietit, mikä on vikana, kun et tuota muista. Täällä Microsoftin ohjeet läpinäkyvään piirtämiseen BitBlt:llä (C-kielellä; helppo kääntää).
Voi huoh.
Neau33 voisi ensin hallita hieman hermojaan. Meillä ei uskoakseni ole kauniimman sukupuolen koodareita vastaan mitään pahaa sanottavaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.