Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ja, ist doch logisch. OpenGL ist eine Statemaschine, und der gesetzte Name wird solange zugewiesen bis du irgendwann nen anderen Namen setzt. Dachte du willst nur einen Namen für die ganzen Quads. Wenn nicht, dann musst du den logischerweise vor jedem Quad setzen,
Registriert: Do Apr 22, 2004 10:04 Beiträge: 16 Wohnort: Berlin
So, nu klappt die Selektion mit o.g. Funktionen, nur ist die Auswahl verschoben,
d.h. ich klicke links neben ein Quad (es ist absicht, dass mehrere Quads den selben Nmen haben)
aber ich wähle es trotzdem, wenn ich in die rechte hälfte des quads klicke treffe ich es nicht!!!
Mögliche Fehlerquellen sind:
* du verwendest für die Selektion andere ViewMatrix/glPerpective/glOrtho Einstellungen als fürs Rendern
* deine Mauskoordinaten sind nicht relativ zur Clientarea des OpenGL Fensters (OpenGL kennt keinen Menübalken oder Fensterrahmen - das sind Windows Spezifika)
Registriert: Do Apr 22, 2004 10:04 Beiträge: 16 Wohnort: Berlin
Habs jetzt so hin bekommen, das die entsprchenden Objekte jetzt "genau" getroffen werden
und zwar durch rumprobieren(ich weiß probieren ist kein programmieren, aber der quellcode war sauber!!!)
Bei der selektion hab ich die x-koordinate um 8 einheiten nach links verschoben werden, also
MousePos.X-8
und die y-koordinate um 33 einheiten nach unten, also
MousePos.Y+33
und siehe da, es passt.
Aber wie gesagt, ich weiß nicht wieso dies Verschiebung entsteht, ich benutze die blanke Form ohne
irgendwelche Statusleisten oder Scrollbalken, somit also clientheight und clientwidth.
Ich dachte diese hätten die Ausmaße des Fensters ohne Titelzeile und Ränder.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Hm, ich frage mich ernsthaft warum du Probleme mit der Selektion und der VCL hast. Ich hab das schon oft genutzt, und dabei auch verschiedene XP-Themes probiert, alle mit unterschiedlich großen Titelleisten und hatte nie Probleme. Wenn man den Viewport in ner VCL-Anwendung über 0..ClientWidth/0..ClientHeight erstellt, dann bekommt man IMMER den ganzenz Platz zwischen Rand unt Titelleiste. Also tippe ich darauf dass dein Problem woanders herkommt.
Registriert: Do Apr 22, 2004 10:04 Beiträge: 16 Wohnort: Berlin
Also ich habs mit dem Panel probiert da war die y Ungenauigkeit nur kleiner,
dann hab ich mal die Form ohne sichtbaren Rand erstellt, also bsnone,
da war die Ungenauigkeit genauso wie beim Panel.
Ich benutze bei der Form ja schon clientheight und clientwidth, was meiner meinung nach die höhe bzw. breite der "benutzbaren" Fläche angibt.
Allerdings ist mir aufgefallen, dass ich den Courser auf eine negative Position am linken Rand bringen kann, wie sowas sein kann versteh ich erstrecht nicht.
Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.