Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Pixelfarbe invertieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.11.2010, 16:34 Uhr
Mitmischer 1703



Hallo C++-Forum!

ich habe ein wahrscheinlich simpel zu lösendes Problem, aber bitte verzeiht mir, ich programmiere mit C++ noch nicht so lange, genau genommen, seit heute.

Ich steige im Moment von Delphi auf C++ um, und habe mich dafür radikal so entschieden, mit Delphi nichts mehr zu programmieren. Mein Problem ist nur, dass ich meine Delphi-kenntnisse nicht 1 zu 1 nach C++ übersetzen kann:

C++:
Canvas->Pixels[X,Y]->Color = !Canvas->Pixels[X,Y]->Color;



Mit dieser Zeile will ich die Farbe eines Pixels invertieren. C++Builder schmeißt mir jedoch diesen Fehler:

[BCC32 Fehler] MainUnit.cpp(26): E2288 Zeiger auf Struktur auf linker Seite von -> oder von ->* erforderlich

Ich habe in der Hilfe nachgeschaut, was das bedeutet. Die sagt mir:

Auf der linken Seite des Pfeiles (-> ist in C oder C++ nur die Angabe von Zeigern zugelassen.

Klasse. Denn wenn ich den Code nun umändere:


C++:
Canvas->*Pixels[X,Y]->Color = !Canvas->Pixels[X,Y]->Color;



sagt C++Builder mir:

[BCC32 Fehler] MainUnit.cpp(26): E2451 Undefiniertes Symbol 'Pixels'.

Ich habe nun keine Ahnung, was ich machen soll. Wie muss ich die Zeile korrigieren, damit sie funktioniert?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.11.2010, 22:26 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von Mitmischer 1703:
Hallo C++-Forum!
Ich steige im Moment von Delphi auf C++ um, und habe mich dafür radikal so entschieden, mit Delphi nichts mehr zu programmieren.

das halte ich für keine so gute Idee.


Zitat von Mitmischer 1703:
Mein Problem ist nur, dass ich meine Delphi-kenntnisse nicht 1 zu 1 nach C++ übersetzen kann:

Das Problem hast nicht nur Du, sondern jeder Umsteiger. Und die Probleme stecken in den Details, in diesem Fall, wie Delphi und C++ mit Zeigern umgehen.

C++:
Canvas->Pixels[X,Y]->Color


Nun, das ist eine doppelte indirektion: ein Zeiger auf eine Strukturkomponente, die wiederum ein Zeiger auf eine weitere Strukturkomponente ist, die die gesuchten Daten enthält. Ich würde die Farbe erst mal in einem Puffer holen, dort den Wert invertieren, und dann wieder zurück schreiben. Das dürfte zwar etwas länger dauern, aber das Optimiern kann man auch dem Compiler überlassen.
Ansonsten immer wieder vergleichen, wo die Gemeinsamkeiten enden und die Unterschiede anfangen. In diesem Fall bei Records in Delphi und Structs in C++.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: