ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
336
336
EMPFEHLEN
-
Hallo,
ich stehe gerade etwas auf dem Schlauch, warum kann ich z. B. einen Pen wie folgt benutzen
aber nicht wenn er außerhalb der Funktion deklariert wird, a laCode :1 2 3 4 5 6
void Function () { ... Pen p (Color (255, 255, 255), 1.0f); g.DrawLine (&p, ...); ... }
Im zweiten Fall wird einfach garnichts gezeichnet. => ?Code :1 2 3 4 5 6
Pen p (Color (255, 255, 255), 1.0f); void Function () { ... g.DrawLine (&p, ...); ... }
Einen int kann ich doch auch außerhalb einer Funktion deklarieren und es funktioniert, warum funktioniert das hier jedoch nicht? Vielleicht missachte ich ja was grundsätzliches.
Danke schon mal...
EDIT
Die Frage geht offenbar doch noch weiter, ich bin grad vollends verwirrt.
Ich hab es gerade mal mit einem int ausprobiert, offenbar ist es möglich zwei ints mit gleichem Namen einmal vor und einmal innerhalb der Funktion zu deklarieren. Ich hätte irgendwie einen Fehler a la multiple declaration etc erwartet. Für die Funktion scheint auch nur der int innerhalb der Funktion zu gelten.
Also:
aberCode :1 2 3 4 5
int i = 5; ButtonClick () { gebe_i_aus => wird als 5 ausgegeben }
Für jede Hilfe bin ich dankbar...Code :1 2 3 4 5 6
int i = 5; ButtonClick () { int i = 11; gebe_i_aus => wird als 11 ausgegeben }Geändert von randomize (10.05.07 um 19:55 Uhr)
-
Hallo,
was ist Pen denn für ein Datentyp?
In der VCL gibt es einen TPen, und der sollte wie alle Objekte, dynamisch angelegt werden.
Dann sollte es auch egal sein, wo der Pen definiert wird. Um auf den grundsätzlichen Fehler hinzuweisenCode cpp:1 2 3
TPen* p = new TPen(); p->... ...

wegen dem int:
Der globale int Wert wird "verdeckt" durch den lokalen...
"Verdeckung" oder "Überdeckung" sollten hierfür Schlagworte sein.
MfG Turri
-
Hi,
das mit dem int habe ich auch gerade herausgefunden...
War mir aber neu, dass das so geht.
Ich meinte den Pen von GDI+, nicht den von Canvas. Ok, also der grundsätzliche Fehler ist also, dass ich ein Objekt wollte und es nicht als Zeiger definiert habe, es geht also nicht anders? Übrigens mach ich wohl jetzt schon wieder was falsch, denn direkt mit new initialisieren gibt mir eine Zugriffsverletzung. Den Zeiger kann ich zwar global deklarieren, aber p = new Pen (Color (255, 255, 255), 1.0f); habe ich nun in einer Init-Funktion stehen. Das müsste doch auch ohne extra Funktion funktionieren... Wie, ist ein bisschen over my head, glaube ich im Moment.
Vielen dank aber, immerhin ist meine ursprüngliche Frage schon mal geklärt!
-
Oki,
sorry das mit GDI+ hab ich wohl irgendwie verdrängt
Ähnliche Themen
-
Fehler bei mysql_select_db() innerhalb einer Funktion
Von sheeba1507 im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 05.10.10, 03:03 -
Funktion innerhalb einer Funktion aufrufen
Von Atalión im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 31.01.10, 17:32 -
SQL-Abfrage innerhalb einer Funktion mit Parameter funktioniert nicht
Von qsrs im Forum PHPAntworten: 3Letzter Beitrag: 03.06.07, 12:07 -
Zugriff auf eine Klasseninstanz innerhalb einer Funktion einer anderen Klasse?
Von Bailor im Forum PHPAntworten: 4Letzter Beitrag: 09.07.05, 00:19 -
Abfrage in einer 2ten Tabelle innerhalb einer Funktion****
Von coloxer im Forum PHPAntworten: 2Letzter Beitrag: 02.12.02, 16:59





Zitieren
Login






