Eli näitä kumpaakin tarvitsisin. Tuossa värin tunnistuksessa funktiolle pitäisi antaa värin nimi/rgb tai jotain sellaista ( sopii myös että ulkopuolisen bittikartan avulla etitään vastaavuuksia) ja tekstin etsimisestä, tiedän findstring() funktion, mutta koodini pitäisi etsiä koko tekstistä, eikä vain alusta.
Tuossa on merkkijonon etsiminen:
Dim mjono, haku As String Dim kohta As Integer mjono = "Kappas kippis!" haku = "pp" kohta = 0 Do kohta = mjono.IndexOf(haku, kohta) If kohta = -1 Then Exit Do MsgBox("Löytyi kohdasta " & kohta) kohta = kohta + 1 Loop
Mitähän tarkoitat värin tunnistuksella? Mitä funktiolle tarkalleen annetaan parametrina ja mitä sen pitää tarkalleen palauttaa?
Funktiolle annetaan värin arvo ja se palauttaa missä x ja y akselissa se väri esintyy ensimmäisen kerran.
Private Sub Form_Load() kuva.ForeColor = vbBlack kuva.PSet (10, 10) koord = Split(haeväri(0, 0, 0), ".") MsgBox koord(0) & "-" & koord(1) End End Sub 'syötetään rgb:t funktiolle, joka palauttaa stringinä olinpaikan. Function haeväri(r As Byte, g As Byte, b As Byte) As String For x = 0 To kuva.Width For y = 0 To kuva.Height väri = kuva.Point(x, y) 'otetaan talteen Mordorin keksintö r2 = väri Mod 256 g2 = (väri \ 256) Mod 256 b2 = väri \ 65536 If r2 = r And g2 = g And b2 = b Then 'löytyi haeväri = x & "." & y Exit Function 'poistutaan End If Next y Next x haeväri = "-1.-1" 'ei löytynyt. End Function
Olisikohan tästä apua?
Kai tuosta, vaikka tuo pitääkin modaa vb .netille
Tulee ainkin 3*nopeammaksi jos testaat heti värin tsekkausen jälkeen:
r2 = väri Mod 256 If r2 = r Then g2 = (väri \ 256) Mod 256 If g2 = g Then b2 = väri \ 65536 If b2 = b Then ...
Aihe on jo aika vanha, joten et voi enää vastata siihen.