![]() |
.pas in Projekt einbinden und -->verwenden!
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo Leute,
ich besitze seid längerem die 3d-Maus ![]() Dafür habe ich auf ![]() 1.Problem: Wie bette ich die Sourcedateien in mein Projekt ein? einfach über -> Komponente -> Komponente installieren und das wars? 2.Problem: Wie verwende ich die Sourcedatei dann? Wenn ich zum Beispiel bei meinem Projekt dann einfach eingebe: TDxInput_TLB.TVector3D.Get_X kann er TDxInput_TLB nicht finden, obwohl es als Unit angehängt ist. Wie kann ich z.B. die Rotation in einer ProgressBar oder so anzeigen lassen? (je mehr rotation, je höher die Position) Ich fände es echt klasse wenn ihr euch ein wenig mit meinem Problem beschäftigen könntet, ich habe noch nie mit Implementierungen gearbeitet, für euch ist das bestimmt ein Klacks! :cheers: :-D Vielen Dank schon mal im Voraus! [ Falls benötigt habe ich aucuh die nötige dll (64bit und 32bit angehängt) ] |
AW: .pas in Projekt einbinden und -->verwenden!
Zitat:
Zitat:
Zitat:
Zitat:
Bernhard |
AW: .pas in Projekt einbinden und -->verwenden!
Zitat:
2. dachte ich gibt es eine einfache routine, irgendeinen kniff den ich nicht kenne und ich kann die pas verwenden. Einlesen kann ich mich ja selber! Ist ja nicht so dass ich nichts tue, aber ich komme nun mal nicht weiter!!! Oder klingt mein post etwa so als hätte ich euch was hingeklatscht und ihr macht die ganze Arbeit?! Ich streng mich schon an -.- Ich wäre z.B. schon über ein Beispiel froh, wie ich eine Info aus einer dieser .pas auslesen kann, das würde mir reichen..:wink: Zitat:
|
AW: .pas in Projekt einbinden und -->verwenden!
ok, dann mal diese (schmutzige) Variante:
Die .pas-Dateien in den selben Ordner kopieren, wo dein Projekt auch ist. Dann wird es bestimmt eine Hilfe oder ein Beispielprogramm geben, wo man erkennen kann, was ungefähr gemacht werden muss. Um die Units in dein Programm einzubinden gehst du in den Quellcode der Form, wo die Units reinsollen und schreibst bei der Sektion
Delphi-Quellcode:
deine Unit-Dateinamen (ohne ".pas") dazu. Danach kannst du die Units verwenden.
uses
Noch was so nebenbei: TDxInput_TLB.TVector3D.Get_X sieht mir aus nach einem Zugriff auf eine Klasse. Dies geht in Delphi nicht (solange nicht class function/procedure/var). Du musst also erst eine Variable definieren mit dem Typ deiner Klasse und das Objekt erst mit dem Konstruktor erstellen. Dann kannst du das Objekt nutzen und am Ende wieder mit .Free freigeben. Bernhard |
AW: .pas in Projekt einbinden und -->verwenden!
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
hier mal ein Beispiel (quick and dirty) in Delphi5.:oops: |
AW: .pas in Projekt einbinden und -->verwenden!
Hallo!
Ich weiß, der Fred ist schon sehr alt, aber ich habe ein kleines Problemchen mit meiner 3D Maus. Leider zeigt meine Maus (auch mit dem unten angebotenen Beispiel) nicht den Namen der Anwendung an, den man per Create(...) übergibt. Habe es schon an verschiedenen Rechnern und mit verschiedenen Mäusen ausprobiert. Hat jemand das gleiche Problem, oder weiß jemand Rat? BTW: Ich nutzte Delphi 2010. Vielen Dank und Grüße |
AW: .pas in Projekt einbinden und -->verwenden!
Zitat:
|
AW: .pas in Projekt einbinden und -->verwenden!
Jupp. Aber ich habe auch noch andere Mäuse (SpaceNavigator) zum testen zur Verfügung. Damit kann man ja auch Profile für verschiedene Anwendungen definieren.
Im Internet finde ich nicht wirklich was dazu. Habe aber mal in einem Forum gelesen, dass man zunächst eine Config erzeugen muss, bevor man sie über LoadPreference laden kann. Aber wie das geht, stand da leider nicht. |
pk3DConnexion
Geht es dabei immer noch um meine Unit?
Was genau meinst Du mit dem Anzeigen des Namens der Anwendung? Ach ja, und weißt Du, daß ich das "Testprojekt" ![]() |
AW: .pas in Projekt einbinden und -->verwenden!
Danke erstmal für die Antwort. Ja genau, um diese Unit geht es. Beim Ausführen von verschiedenen Programmen, welche die 3D-Maus unterstützen, wird ein Profil für diese Anwendung angelegt. Beim erneuten ausführen wird dann auf diese Einstellungen zurückgegriffen. Beim SpacePilot wird auch die aktuelle Anwendung angezeigt. Wenn ich das richtig verstanden habe, sollte über T3DConnexionDevice.Create('Test123') ein Profil Names "Test123" angelegt (bzw. auf dieses zurückgegriffen werden).
Leider erscheint jetzt aber weder auf dem Display des SpacePilots noch in der Liste der Anwendungsprofile meine Software. Er wechselt nur aus dem letzen Profil (z.B. Inventor oder ähnliches) in das Profil "Beliebige Anwendung", wenn die Anwendung ausgeführt wird. Mache ich irgendwas falsch? Muss ich vielleicht zunächst ein Profil anlegen, indem ich eine Setting-Datei in den Ordner der 3Dconnexion speichere? Grüße, John PS: Dein Test-Projekt werde ich mir mal anschauen. Leider habe ich im Moment keine 3D-Maus zur Verfügung. |
AW: .pas in Projekt einbinden und -->verwenden!
Hui, das ist schon ne Weile her, ich hoffe, ich bekomme das noch auf die Reihe :) Seit einiger Zeit kann der offizielle Treiber ja für beliebige Anwendungen konfiguriert werden, seit der Ankündigung dazu habe ich mich zugegeben nicht mehr sehr gekümmert.
Ich fange mal mit dem Display des SpacePilots an - ich habe nur einen SpaceNavigator, deswegen kam ich bisher gar nicht in irgend eine Verlegenheit, ein Display ansprechen zu können/müssen. "Profile" sind etwas spezifisches für dieses Programm, und haben nichts mit den Profilen zu tun, die die Treibersoftware beherrscht. Insofern wäre es auch nur logisch, wenn der SpacePilot "Beliebe Anwendung" ausgibt, denn für den UniversalCosmonaut gibt es keine Treiber-eigene Konfiguration, und seine eigenen Configs sind davon getrennt. Insofern hängt alles ein bißchen davon ab, was Du eigentlich machen willst. Um jetzt einfach nur den Space* auf Tastatur und Maus zu mappen, gehen inzwischen auch die offiziellen Treiber (evtl. nur Beta-Treiber). Meine Unit wäre höchstens noch von Interesse, wenn Du ihn nativ unterstützen willst (was natürlich mehr Möglichkeiten eröffnet). Dafür brauchst Du aber nur ein Object vom Typ T3DConnexionDevice aus der pk3DConnexion.pas, dessen Events OnKeyChange, OnKeyUp, OnKeyDown, OnRotation und OnTranslation Du behandelst. Hätte ich das ordentlicher geschrieben, hätte ich da zwei Klassen draus machen müssen, und den Emulierungskrams nur in eine erweiterte Klasse. An sich ist das dann nur ein Schönermachwrapper für TDxInput_TLB.pas. |
AW: .pas in Projekt einbinden und -->verwenden!
Kleines Update: habe T3DConnexionDevice nun gesplittet. Der Emulationskrams ist in eine davon abgeleitete Klasse T3DConnexionDeviceProxy gewandert, das eigentliche Handling ist in T3DConnexionDevice. Sollte das Verständnis, was wofür ist, hoffentlich etwas vereinfachen.
|
AW: .pas in Projekt einbinden und -->verwenden!
Danke erstmal für die Antwort!
Ich benutze die 3D-Maus um OpenGL Translationen/Rotationen auszuführen. Also quasi Normalgebrauch :) Ich hätte jetzt gerne für meine Anwendung ein konfigurierbares Profil in der Treibersoftware. Ich habe gesehen, dass im Verzeichnis des Treibers auch die Profile liegen. Diese scheinen einen recht einfachen Aufbau zu haben. Unter anderem steht dort auch der Name der Executable drin. Mal schauen, ob ich damit was reißen kann. Aber ansonsten funktioniert dein Wrapper genau wie er soll :thumb:. Ohne 3D-Maus kann ich meine eigene Software schon garnicht mehr bedienen :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz