Avatar billede cooraz Nybegynder
27. april 2010 - 23:04 Der er 15 kommentarer og
1 løsning

hvordan kalder man en tekstboks fra en anden fil end formen?

jeg en windows application hvor jeg har delt programmet op i 3 filer, jeg har en cpp og en .h fil til mine classes og så self min form1.h...

jeg har så included class headeren i form1.h så jeg kan kalde classen og dens members

men nu har jeg så brug for at ændre teksten i nogle tekstbokse inde fra class cpp filen, men jeg kan jo ikke bare include form1.h...

hvordan kan jeg få fat i de tekstbokse der er i form1?
Avatar billede arne_v Ekspert
28. april 2010 - 02:09 #1
Stadig C++ CLI og Win Forms ?

Hvis dine .H filer er lavet korrekt, så bør du kunne include den.
Avatar billede cooraz Nybegynder
28. april 2010 - 08:26 #2
yep det er det stadig...
også når min classes.h er included i Form1.h?

den giver mig ihvertfald en masse fejl hvor den klager over:
error C2011: 'eyeR' : 'class' type redefinition
see declaration of 'eyeR'
error C2027: use of undefined type 'eyeR'

min classes.h ser sådan ud:

#using <mscorlib.dll>

using namespace System;
using namespace System::IO::Ports;

ref class eyeR
{
private:
    SerialPort^ eyeR_sp;
    void received_data(Object^, SerialDataReceivedEventArgs^);
public:
    void connect(void);
    void disconnect(void);
    void write_test(String^);
    String^ analyse(String^);
    void set_vent_pos(String^);
    void set_fan_speed(int);
    void set_temp(int);
};
Avatar billede arne_v Ekspert
29. april 2010 - 03:50 #3
Det er god skik og brug at lave foobar.h som:

#ifndef FOOBAR_H
#define FOOBAR_H

// hele indholdet

#endif

for at undgå dobbelt inkluderings problemer.
Avatar billede cooraz Nybegynder
29. april 2010 - 08:02 #4
ja det hjalp jo helt vildt, nu ser det ud til at virke....
nu kan jeg lave en instance af form1 som jeg kan bruge til at kalde tekstboksen...
tak for hjælpen, endnu en gang...

smid svar så får du point
Avatar billede cooraz Nybegynder
29. april 2010 - 10:11 #5
kan man egentligt ikke også bruge #pragma once?
ligesom det står inde i form1.h filen?
Avatar billede arne_v Ekspert
29. april 2010 - 14:56 #6
Jo.

Men #pragma er compiler specifik - den anden metode virker med alle C og C++ compilere.
Avatar billede arne_v Ekspert
29. april 2010 - 14:56 #7
og et svar
Avatar billede cooraz Nybegynder
30. april 2010 - 10:45 #8
hmm ja jeg kan godt nok kalde tekstboksen nu, men den gider ikke updatere teksten....
lige meget om jeg bruger textbox->text eller textbox->appendtext

hvordan får man den til det?
Avatar billede arne_v Ekspert
02. maj 2010 - 01:21 #9
Er du sikker på at du opdaterer den rigtige TextBox og ikke en anden TextBox ?
Avatar billede cooraz Nybegynder
02. maj 2010 - 10:00 #10
jeg har prøvet at lave 2 knapper:

private: System::Void button4_Click_2(System::Object^  sender, System::EventArgs^  e) {
            textBox7->Text = "det virker!";
        }
private: System::Void button13_Click(System::Object^  sender, System::EventArgs^  e) {
            hej->set_text();
        }

og i min class fil:

void eyeR::set_text()
{
    eyeRwindows::Form1^ form = gcnew eyeRwindows::Form1();
    form->textBox7->Text = "test1";
    form->textBox7->AppendText("test 2");
}

det første knap virker fint men den anden gør ikke, jeg skal måske ikke lave en instance af form1 eller hvad?
Avatar billede arne_v Ekspert
02. maj 2010 - 19:38 #11
Nej. Fordi saa saetter du nogte på en helt anden form end den du ser på.
Avatar billede cooraz Nybegynder
02. maj 2010 - 23:29 #12
okay det havde jeg også lidt en mistanke om... hvordan gør jeg så?
jeg kan godt få fat i selve textboksen ved at skrive eyeRwindows::Form1::TextBox7 men kan ikke kan dens funktioner...
Avatar billede arne_v Ekspert
03. maj 2010 - 01:11 #13
Hvis de er public så bør du kunne bruge dem.
Avatar billede cooraz Nybegynder
03. maj 2010 - 09:43 #14
hvis jeg skriver sådan:
eyeRwindows::Form1::textBox7->Text = "test";

giver den fejl:

1>.\classes.cpp(44) : error C2227: left of '->Text' must point to class/struct/union/generic type

og i form1.h er den public:

public: System::Windows::Forms::TextBox^  textBox7;
Avatar billede cooraz Nybegynder
06. maj 2010 - 20:37 #15
har du nogen anelse om hvad der kan være galt?
Avatar billede cooraz Nybegynder
07. maj 2010 - 22:26 #16
har fundet ud af det.
skulle bare lave den static

dog giver det et nyt problem, laver et nyt spørgsmål om det
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