[ Bokacio @ 04.05.2010. 02:13 ] @
Pozdrav,

Potrebno mi je da koristim metodu RGB, ali ne mogu nikako da nadjem kom namespace-u pripada (zbog cega na mogu da kompajliram)

Ako neko zna, molio bih ga da mi kaze.

Hvala.
[ dili900 @ 04.05.2010. 22:05 ] @
Namespace: Microsoft.VisualBasic
Assembly: Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)
[ Bokacio @ 05.05.2010. 01:51 ] @
Koristim C#,ali sam probao da u using stavim i Microsoft.VisualBasic ali ne pomaze. Kaze:

Error 1 The name 'RGB' does not exist in the current context

Tu funkciju sam nasao u nekom c# projektu, ali mi nije jasno kako njima radi (!?)

Da li neko zna kako ovo resiti?

Hvala na odgovorima
[ SehaxX @ 05.05.2010. 07:49 ] @
Mozes li molim te postirati liniju koda tog primjera, kao i mjesto deklaracije classe gdje se poziva funkcija.

U C# imas namespace using System.Drawing;

Zatim mozes da uradis nesto ovako.


Code (csharp):

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Color c = Color.FromArgb(255,11,52); //kreiras neku boju
        int i = c.ToArgb(); //dobijes int za kreiranu boju

        //radi nesto ....
    }
}
 


U svakom slucaju ako ovo ne radi, posalji malo detaljnije info iz coda da vidimo kojoj klasi pripada.

Pozdrav
[ Bokacio @ 06.05.2010. 21:51 ] @
Hvala na odgovoru,

Pokusavam da pozovem SetTextColor funkciju iz WinAPI-ja:

Code:

[DllImport("gdi32")]
public static extern uint SetTextColor(IntPtr hDC, uint colorRef);


Ona kao sto mozes videti trazi uint parametar.

Kada otkucam nesto poput:

Code:
SetTextColor(hdc, 43244);


sve lepo radi, ali nikako ne mogu da Color konvertujem u uint:

Code:
SetTextColor(hdc, Color.Red);


Recimo ovo mi ne radi:

Code:

static public uint GetCOLORREF(Color color)
{
            Color c = Color.FromArgb(color.R, color.G, color.B);
            int i = c.ToArgb();
            return (uint)i;
}


Vraca crnu kao boju teksta.

Da li sam negde pogresio?

Hvala na pomoci
[ SehaxX @ 07.05.2010. 08:28 ] @
Pozdrav,

Kao sto rekoh ne znam tacno u kojem obliku vraca int odnsono za sto taj int sluzi.

U svakom slucaju eksperimentisi malo s ovom, nasao sam jos jednu funkciju koja bi mogla biti rijesenje.

Code (csharp):


            Color c = Color.Green;
            label3.Text = Convert.ToInt32(c.ToArgb()).ToString();
            label4.Text = ColorTranslator.ToWin32(Color.Green).ToString();

 


U ovom kodu mi se razlikuju vrijednosti u label3 i labal4, najvjerovatnije vraca crno jer je u prvom slucaju vrijednost u minusu -.

Dok u drugom ispise neki pozitivan broj.
[ mmix @ 07.05.2010. 09:44 ] @
Ako odstampas boje u hex videces razliku, ARGB vrednost ima i alpha kanal koji je postavljen na 255 (pun opaque), da bi Color vrednost pustio u GDI metod koji ne podrzava alpha (COLORREF ne podrzava alpha) moras da stripujes prvih 8 bita

Code (csharp):

SetTextColor(hdc, Color.Red.ToArgb() & 0xFFFFFF);
 


To inace i radi ColorTranslator.ToWin32(Color)
[ Bokacio @ 07.05.2010. 21:23 ] @
Hvala na pomoci,

Sledeci kod radi:

Code:
Windows.SetTextColor(hdc, (uint)ColorTranslator.ToWin32(TextColor));


Hvala jos jednom na pomoci,

Pozdrav