Geschlossen || C++ Builder Porblem
-
Hey Leute,
ist mein erster Beitrag in diesem Forum weis daher nicht ganz ob der beitrag direkt im richtigen abteil gelandet ist ==> sry falls nicht.Also ich nutze aktuell den c++ builder und will erreichen das in einer Funktion die X-Koordinate eines Bildes sich verändert aber ich aber das krieg ich nicht wirklich hin^^ Das bild heist kolben_1 ,ich will also kolben_1 -> Left verändern aber kolben_1 -> Left kennt er in dieser funktion nicht da krieg ich immer:
[C++ Fehler] Unit1.cpp(479): E2451 Undefiniertes Symbol 'kolben_1'.
weis jemand wodran das liegt? weil wenn ich das selbe zb über einen Buttonclick ausführen lassen will gehts:void __fastcall TFluidRemake::Button2Click(TObject *Sender) { kolben_1 -> Left = 50; }
wär echt nett wenn jemand helfen könnte denn ich komm so nicht weiter^^
mfg friedrich
-
Was ist denn "kolben_1" und wo hast du es definiert? Und wo liegt die Funktion, die darauf zugreifen will?
(wenn ich raten müsste, würde ich sagen: (a) Member-Variable der Klasse TFluidRemake und (b) eine globale Funktion)
-
also wie gesagt kolben_1 ist ein bild was auf der oberfläche dargestellt ist. deklariert ist es in ner andren datei: Unit1.h: ca so: (hoffe hab den richtigen teil ausgeschnitten)
class TFluidRemake : public TForm { __published: TImage *kolben_1; __fastcall TFluidRemake(TComponent* Owner); };
die funktion wiederrum liegt in Unit1.cpp
-
Wenn der zweite Code die komplette Klasse
TFluidRemake
ist, ist es falsch.Button2Click
sollte eine Methode vonTFluidRemake
sein. Nutze für C++-Code bitte auch die C++-Codetags (in der Zukunft). Und kann irgend ein Mod das ins VCL-Forum verschieben?
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum C++ (auch C++0x) in das Forum VCL (C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
__published? Was ist denn das für Schrott?
-
OK, bei Frage a lag ich schonmal richtig. kolben_1 ist ein Element der Klasse TFluidRemake, also kannst du es nur innerhalb dieser Klasse direkt ansprechen. Für alles außerhalb der Klasse benötigst du ein Objekt, über das du dein Bild ansprechen kannst.
-
@EOutOfResources ,a ich hab ja wiegesagt versucht nur den teil mit dem das bil deklariert wird auszuschneiden
@CStoll kannst du mir das ein bisschen näher erklären wie ich dafür ein objekt baue/wie das so aussehen würde? Bin ein ziemlicher anfänger komm dir da deswegen nich ganz so schnell hinterher^^
-
friedrich schrieb:
@CStoll kannst du mir das ein bisschen näher erklären wie ich dafür ein objekt baue/wie das so aussehen würde? Bin ein ziemlicher anfänger komm dir da deswegen nich ganz so schnell hinterher^^
So gut kenne ich mich mit dem Builder nicht aus, um dir die Details zu erklären.
-
314159265358979 schrieb:
__published? Was ist denn das für Schrott?
http://docwiki.embarcadero.com/RADStudio/de/Published
Builder spezifisch
-
mmh weis denn evtl jemand wie ich son ein extra objekt erstellen könnte?
-
Hallo
Du brauchst dafür kein extra Objekt. Deine Button-Metzhode gehört ja laut deinem Auszug hier auch zu deinem Form, genau wie das TImage. Es ist für uns hier nicht ersichtlich warum diese Fehlermeldung kommt, offenbar hast du irgendwas falsch gemacht, außerhalb des Quellcodeauszuges.
Verdächtig erscheint mir nur, das in deiner Deklaration deines Formes die Deklaration der Button-methode fehlt. Allerdings sollte das noch eine andere Fehlermeldung auslösen...bis bald
akari
-
Der Designer sollte doch einen grossteil der Arbeit (unter anderem auch Instanzen und Methoden der
TForm
) machen.
-
Danke nochmal an alle die hier mitgeholfen haben habs jetzt anders umgangen