Avatar billede ahara Nybegynder
23. oktober 2004 - 00:01 Der er 13 kommentarer og
2 løsninger

Hvor finder jeg generelt info om Cpp .Net?

Hej

Hvordan finder jeg f.eks. ud af hvordan jeg ændrer en farve på et felt ved tryk på en knap. Er det eksempelvis mitfelt->set_Backcolor.Brown? Det virker i hvert fald ikke.

Tak
AHR
Avatar billede arne_v Ekspert
23. oktober 2004 - 09:19 #1
.NET SDK kommer med en omfattende dokumentation af .NET klasserne som er fælles
for C++, C# og VB.NET.

Den slags står der i.
Avatar billede arne_v Ekspert
23. oktober 2004 - 09:21 #2
Avatar billede ahara Nybegynder
23. oktober 2004 - 10:41 #3
Hvis jeg kigger i dokumentationen står der:

[C++]
public: __property Color get_BackColor();
public: __property void set_BackColor(Color);

Prøver jeg det i min kode:

private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)
{
panel1->set_BackColor(Brown);
}

Får jeg fejlen:

Error C2065: 'Brown' undeclared identifier.

Skyldes det ikke at jeg f.eks. skal lave en variabel kaldet brown og sætte den lig med System::Drawing::Brown? Hvis ja, af hvilken type skal min variabel så være?

P.S. Synes dokumentationen ".NET framework SDK" er meget forvirende. Er der nogen triks eller er det bare i starter den kan være lidt forvirrende.

Tak
AHR
Avatar billede sovsekoder Nybegynder
23. oktober 2004 - 13:30 #4
Q:
>Hvordan finder jeg f.eks. ud af hvordan jeg ændrer en farve på et felt ved tryk på
>en knap. Er det eksempelvis mitfelt->set_Backcolor.Brown?

A: 2 mulige syntax:
1) panel1->BackColor = Color::Brown;
2) panel1->set_BackColor(Color::Brown);

Color er en structure og den har en masse members (black, white, brown, gray osvosvo), disse mebers er populært sagt færdig blandede farver :). Hvis du selv vil blande farver må du bruge :

Color::FromArgb(red, green , blue) // hvor parametrene angiver hvormeget rød, grøn og blå der skal i, de er alle integers)

BackColor er en property. Det betyder at du bruge den nærmest som en variabel (uden get_ og set_ foran, og uden at give den en parameter), det kan du se i eksempel 1).
Der findes dog i c++ .NET stadig de gode gamle metoder for property'en, nemlig get_BackColor(Color) og set_BackColor(Color). Jeg kan anbefale at du bruger den som property (måde 2 ovenfor) da det tæt på at være samme syntax i C# og VB.NET.
Avatar billede sovsekoder Nybegynder
23. oktober 2004 - 13:32 #5
jeg skærer lige ud i pap:
hvis du vil ha' en top fesen lysserød farve, kan man i visse tegne programme gå ind og vælge den - der efter aflæse at den har :
rød = 242
grøn = 154
blå = 160

du kan nu give panelet den top fesne lyserøde ved at skrive:
panel1->BackColor(242, 154, 160);
Avatar billede sovsekoder Nybegynder
23. oktober 2004 - 13:41 #6
Q:
>Synes dokumentationen ".NET framework SDK" er meget forvirende. Er der nogen triks
>eller er det bare i starter den kan være lidt forvirrende.
ja den er forvirrende i starten, men super når man har vendet sig til at bruge den.

Det er en smags sag hvordan man kommer ind i tingene, men jeg kan anbefale dig (når du nu ikke har været vandt til msdn) at:
1) gå ind på www.codeproject.com - klikke ind på managed c++ (samme som c++ for .NET) (ell. tryk på følgende link : http://www.codeproject.com/managedcpp/)
2) scroll ned til overskriften Windows Forms, og downloade en af de mere simple projekter.
3) Rod lidt rundt i projektet og kig i msdn for at få en beskrivelse af de funktioner der bruges i projektet. Så er du kommet godt fra start.

.NET frameworket er start så der er rart at starte i et hjørne og arbejde sig lidt ud fra det - personligt syns' jeg at det er rart at starte et sted for man kan se at der kommer noget op på skærmen...
Avatar billede sovsekoder Nybegynder
23. oktober 2004 - 13:43 #7
ok et lille hot tip: hvis jeg skal finde property'en backcolor i msdn, så går jeg ind i goole og skriver:
"BackColor msdn" - så er msdn-siden som regl det første hit
Avatar billede sovsekoder Nybegynder
23. oktober 2004 - 13:47 #8
...og endnu et hot tip :) : når du har fundet metoden du læser om er det tit en god ide at kigge nede i bunden ved "See Also" og klikke på klassens navn. Herefter kan du læse noget "generelt" om den klasse der indeholder metoden.

BackColor property'en er faktisk lidt speciel fordi den er på alle user controller, så det kan både være form, panel, button, osvosvosv.
Avatar billede arne_v Ekspert
23. oktober 2004 - 15:35 #9
Spørgsmålet om Brown er allerede besvaret på fortrinlig vis.

Med hensyn til dokumentationen, så vænner du dig til den. .NET doc er som
.NET doc er ligesom Linux man er som Linxu man er og Java doc er som Java doc er.
Og man lærer hvordan man skal søge.

Med hensyn til eksempel søgning på nettet er du nok lidt handikappet af
valg af sprog. Managed C++ er en forholdsvis sjælden fugl. Der er langt
mere hjælp at finde med C# eller VB.NET !
Avatar billede ahara Nybegynder
23. oktober 2004 - 15:59 #10
Ved at benytte følgende på min knap:

private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)
{
  panel1->BackColor(242, 154, 160);
}

Så får jeg følgende fejl:

error C2064: term does not evaluate to a function taking 3 arguments
Avatar billede arne_v Ekspert
23. oktober 2004 - 16:02 #11
Jeg tror altså nok at SK mente:


panel1->BackColor = Color::FromArgb(242, 154, 160);
Avatar billede ahara Nybegynder
23. oktober 2004 - 16:08 #12
Kanon.Et svar og vi afslutter :o)
Avatar billede arne_v Ekspert
23. oktober 2004 - 16:13 #13
svar

(jeg synes også at du skulle bede sovsekoder ligge et svar)
Avatar billede ahara Nybegynder
23. oktober 2004 - 16:24 #14
Selvfølgelig. Det mente jeg også ;o)
Avatar billede sovsekoder Nybegynder
24. oktober 2004 - 14:40 #15
tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester