| Autor |
Beitrag |
Logikmensch
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Fr 20.10.06 10:03
Hallo,
ich bin daran interessiert, eine 3D-Animation web-fähig zu machen, aber ich habe es bislang nicht hinbekommen, eine ausführbare EXE-Datei in einem HTML-Dokument in sichtbarer Weise (geschweige denn interaktiv) in Aktion treten zu lassen. Ich befürchte fast, dass das nur mit mir völlig fremden Java-Dingsbums möglich ist. Allerdings gibt es ja ActiveX-Kompos, die auf Webseiten platziert werden können. Die können ja mit dem User interagieren. Es wäre supertoll, wenn man z.B. eine solche selbst schreiben könnte (möglichst mit Delphi oder C++).
Die Alternative, die ich ansonsten verwenden würde, aber auch weniger mögen würde, wäre eine installierbare Internetanwendung, die auf dem Heimrechner läuft und sich die Daten von einer Webseite aktualisiert.
Ich bin für jedwede Lösungsansätze dankbar.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Fr 20.10.06 10:34
Wäre es nicht möglich, die Einzelbilder deiner Animatiopn als Gif-Animation zu speichern?
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Fr 20.10.06 10:50
Ich würde dir da empfehlen, dich in für diesen Zweck geeignete Technologien einzuarbeiten. Möglich sind z.B. Java oder Flash. Von ActiveX kann ich nur dringend abraten:
1. Unsicher. Eine ActiveX-Komponente ist ein Stück nativer Code, der beim Aufruf der Seite automatisch ausgeführt wird. Weil man damit extrem Schindluder treiben kann, werden selbst im Internet Explorer nur ausgeführt, wenn die Seite als vertrauenswürdig gekennzeichnet ist. Wenn man die Sicherheitseinstellungen des IE restriktiv einstellt, werden sie gar nicht ausgeführt.
2. Völlig Windows- und Internet-Explorer spezifisch. Soweit ich weiss, sperrst du bei verwendung von ActiveX nicht nur Mac- und Linux-User, sondern auch Benutzer anderer Browser als dem IE aus.
Stefan
_________________ Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
|
|
Logikmensch 
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Fr 20.10.06 13:29
Hallo,
danke für eure Beiträge.
jakobwenzel, nein, leider nicht. Für ein Banner oder einfache bewegte Bilder, die sich immer wiederholen, ist Gif eine gute Alternative. Ich will dagegen etwas Interaktives zum "Durchwandern" machen, falls mir das gelingt.
Stefan.Buchholtz: Danke für den Rat. Wahrscheinlich hast Du recht und ich muss mich tatsächlich mit Java etc. auseinandersetzen. Ich habe im Moment noch keinen Plan. Ich kann nur ein bisschen JavaScript, aber mit Java kenne ich mich nicht aus bzw. habe ich auch keine Ahnung, ob es dafür auch so eine Art Entwicklungsumgebung gibt geschweige denn, ob man auch OpenGL oder Direct3D damit ansprechen kann (aber bei letzterer Frage wäre ich zuversichtlich). Da muss ich doch noch mal im Internet suchen, es sei denn, jemand hat sowas ähnliches schon gemacht und kann mir eine gute Idee geben, wie man Java-Applets schreibt und auch womit.
Sollte mir diese Variante doch nicht zur Verfügung stehen, bleibt mir noch der Kompromiss, doch eine ActiveX-Komponente zu schreiben (geht denn sowas mit Delphi überhaupt?) oder eben doch eine Programm-EXE, die vom User vorher 1x installiert wird, so wie Google Earth...
Ich lasse diese Frage noch ein paar Tage auf "offen" stehen, vielleicht findet sich ja noch jemand, der solche Sachen schon erfolgreich umgesetzt hat. Hinweis: Ich will keine fertige Lösung, nur einen Ansatz dafür finden. Kümmern muss ich mich dann um die Realisierung selbst.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Fr 20.10.06 13:39
Also ActiveX geht mit Delphi auf jeden Fall (aber IMHo nich mit jeder Version),
Und für Java:
Entwicklungsumgebungen für Java wären einmal Forte for Java (von Sun, Community-Edition kostenlos) oder, um der Marke treu zu bleiben (  ) Borland JBuilder (kostet was, gibt aber ne 30-Tage-Demo).
Evtl. brauchste ums zum laufen zu bringen noch das Java Development Kit (kostenlos).
Java funktioniert auch komplett ohne Entwicklungsumgebung, allerdings dann halt auch ohne RAD.
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Fr 20.10.06 14:19
Java hat wenig Gemeinsamkeiten mit JavaScript. Vielleicht grob vergleichbar mit C++ vs. C.
Java ist komplett objektorientiert (man hat nicht mal die Möglichkeit eine globale Variable oder Funktion zu deklarieren). Geschwindigkeitsmässig kommt Java im besten Fall an C++ im Debug-Modus heran. Flash AS3 ist noch langsamer und deswegen nicht zu empfehlen (ausserdem gibt's dort keine Möglichkeit OpenGl zu verwenden).
Entwicklungsumgebung:
Java: Eclipse
Flash AS3: Flex Builder 2
Ich wage mal zu behaupten, dass Eclipse eines der stärksten Entwicklungsumgebungen überhaupt ist. Abgesehen von der ganzen GUI-Geschichte jedenfalls besser als die Delphi2006-IDE (welche zum Teil nicht mal den Delphi-Code richtig interpretiert).
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 20.10.06 14:28
| Zitat: | | Abgesehen von der ganzen GUI-Geschichte jedenfalls besser als die Delphi2006-IDE (welche zum Teil nicht mal den Delphi-Code richtig interpretiert). |
Also, solche Probleme wären wir bisher nicht aufgefallen.
_________________ Markus Kinzler.
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 20.10.06 14:37
delfiphan hat folgendes geschrieben: | | Geschwindigkeitsmässig kommt Java im besten Fall an C++ im Debug-Modus heran. |
Das ist ein Mythos. Wenn die Java-Runtime den Code einmal an das jeweilige System angepasst hat, ist es auch nicht viel langsamer. Gabs mal nen schönen Vergleichstest zu in der c't.
delfiphan hat folgendes geschrieben: | | ausserdem gibt's dort keine Möglichkeit OpenGl zu verwenden). |
Dafür hast du standardmäßig Grafikumgebungen. Der Flash Player wählt dann selbst aus, ob und wie er Harwarebeschleunigung nutzt.
Zum Thema: Es gibt dann auch noch Quicktime VR, aber wie das funktioniert, keine Ahnung 
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Fr 20.10.06 14:50
Java arbeitet mit Bytecode und kommt niemals an optimiertes (und nicht "falsch" geschriebenes) C++ ran (mach mal eine Schleife und addiere die Zahlen von 1 bis 1000000 und miss die Zeit).
Selbstverständlich lassen sich Situationen konstruieren, wo C++ gleich schnell ist wie Java. Bei Java ist die Instanzierung von Klassen z.B. sehr schnell. Viel schneller als in Delphi. Also, wenn du in einer Schleife Tausende von Objekten kreierst wird Java vielleicht sogar schneller sein. Okay. In Java verwendet man auch einen anderen Programmierstil, sodass man die Sprachen nicht direkt miteinander vergleichen sollte. Im grossen Durchschnitt kann man aber durchaus sagen, dass die Geschwindigkeit von Java etwa unoptimiertem C++ entspricht. Aber wenn wir das weiter diskutieren wollen, dann gerne in einem separaten Thread
Flash: Die Renderengine unterstützt nur 2D und kein 3D mit Texturen oder so. Das meinte ich.
Delphi2005/2006-IDE:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| type TTest = record procedure Test; end;
procedure TForm1.FormCreate(Sender: TObject); type abc = record a: byte; b: byte; end; begin
end; |
Rechtsklick auf TTest und "Complete Class at Cursor" (Ctrl+Shift+C). Erstens springt er dann nicht zur Codeposition, wo die Implementation eingefügt wurde. D.h., wenn die Stelle ausserhalb des angezeigten Bereichs ist passiert scheinbar einfach nichts. Aber tatsächlich macht er dir deinen Code kaputt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| type TTest = record procedure Test; end;
procedure TForm1.FormCreate(Sender: TObject); type abc = record a: byte; b: byte;
procedure TTest.Test; begin
end;
end; begin
end; |
Man könnte meinen, die Delphi IDE arbeitet mit simpler Textsuche... Wegen so Sachen muss ich schlussendlich trotzdem wieder alles von Hand schreiben. Tja.
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Fr 20.10.06 15:00
delfiphan hat folgendes geschrieben: | Java ist komplett objektorientiert (man hat nicht mal die Möglichkeit eine globale Variable oder Funktion zu deklarieren). Geschwindigkeitsmässig kommt Java im besten Fall an C++ im Debug-Modus heran. Flash AS3 ist noch langsamer und deswegen nicht zu empfehlen (ausserdem gibt's dort keine Möglichkeit OpenGl zu verwenden).
Entwicklungsumgebung:
Java: Eclipse
Flash AS3: Flex Builder 2
Ich wage mal zu behaupten, dass Eclipse eines der stärksten Entwicklungsumgebungen überhaupt ist. Abgesehen von der ganzen GUI-Geschichte jedenfalls besser als die Delphi2006-IDE (welche zum Teil nicht mal den Delphi-Code richtig interpretiert). |
Ja, Eclipse verwende ich auch für meine Java-Entwicklung. Sehr mächtig, aber eine gewöhnungsbedürftige Bedienung - z.B. sind viele Funktionen nur über Kontextmenüs zugänglich und das Aussehen weicht teilweise ziemlich vom üblichen Windows-Look ab weil es eine Java-Anwendung ist.
Nach meiner Erfahrung ist Java mittlerweile genauso schnell wie in nativen Code komplilierte Sprachen. Eclipse selbst ist auch zum grössten Teil in Java geschrieben und läuft hier spürbar schneller als Delphi 7.
Stefan
_________________ Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 20.10.06 15:44
delfiphan hat folgendes geschrieben: | | Flash: Die Renderengine unterstützt nur 2D und kein 3D mit Texturen oder so. Das meinte ich. |
Mist, überführt. Allerdings war ich mit Macromedia nicht so daneben. Shockwave heißt das Ding. Der kann auch 3D, jedenfalls über Zusatz-Libs.
Also wird es wohl doch auf Java hinauslaufen.
Und eine letzt Bemerkung noch, dann weg mit dem Thema: es ging dadrum, ein Puzzle zu lösen. Die Lösungen waren alle (abhängig vom verwendeten Algorithmus) etwa gleich schnell, hat sich die Redaktion auch gewundert.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Logikmensch 
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Mo 30.10.06 07:32
Hallo!
Sorry, ich war eine Woche anderweitig tätig (ohne PC  ) aber jetzt bin ich wieder da!
Danke für all Eure Antworten. Ich habe gesehen, JBuilder ist mit 4000 Euro ein bisschen teuer, macht aber einen guten Eindruck auf mich. Naja. Ich werd's wohl erst mal mit den kostenfreien Produkten versuchen müssen. Für später ist JBuilder aber vielleicht doch eine gute Alternative.
Ich will die interessante Diskussion hier aber nicht ausbremsen oder gar kappen, daher lasse ich die Frage bis auf Weiteres offen.
Danke euch SEHR! 
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mo 30.10.06 08:59
Von JBuilder gibt es aber auch ne kostenlose Foundation-Version
www.borland.com/down...wnload_jbuilder.html
_________________ Markus Kinzler.
|
|
Logikmensch 
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Mo 30.10.06 14:33
Ich habe es auf Deinem Link mal angeschaut. Was bedeutet "Foundation-Version" denn da konkret? Foundation heißt doch so viel wie Gründung, Erschließung. Aber ich probier's natürlich gerne mal aus, um zu sehen, was nach 30 Tagen passiert  !
EDIT: Ach, das sind ja auch wieder >500 MB zum runterladen. Und das bei ISDN (habe kein DSL und steht bei mir auch z.Zt. nicht zur Verfügung)... 
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mo 30.10.06 15:02
Beim Download handelt es sich um eine 30-tage Enterprise-Version inkl. der Foundation, welche nach Ablauf der Testphase weiter verwendet werden kann.
_________________ Markus Kinzler.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 30.10.06 15:32
Also ich weiss nicht: Ich habe zu Hause mal vor einer Weile den JBuilder X getestet. Aber Eclipse, was ja kostenlos ist, fand ich dann doch besser. Eclipse ist zwar am Anfang etwas gewoehnungsbeduerftig, aber wenn man damit erstmal eine Weile gearbeitet hat, ist das ok. (hat Stefan ja auch schon geschrieben.)
Deshalb: Ich denke, Eclipse ist fuer kleinere Projekte sinnvoller als der JBuilder. (Richtig grosse Projekte habe ich mit Java noch nicht gehabt, das groesste war mit 20 Leuten im Team.)
Und durch die integrierte CVS-Unterstuetzung ist es sogar fuer Teamentwicklung super.
Insofern: Da Eclipse gerade mal etwas ueber 100 MB gross ist, ist es fuer die ISDN Leitung auch geeignet, das sollte ja in 2 - 3 Stunden drueben sein.
Und von der Funktionalitaet reicht es durchaus an den JBuilder heran bzw. ist teilweise besser.
WICHTIG: Dazu empfehle ich, um nicht nur Code schreiben sondern auch visuell Klassen entwickeln zu koennen, Jigloo. Der ist fuer nicht-kommerzielle Zwecke sogar kostenlos.
www.cloudgarden.com/jigloo/
|
|
Logikmensch 
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Di 31.10.06 06:54
jaenicke,
ich will tatsächlich gar kein Mega-Projekt mit mehreren Programmierern schreiben, und ich habe gestern selbst noch ein bisschen über die Leistungsmerkmale von JBuilder gelesen (weil's mich interessiert hat) und denke auch, dass es ein bisschen zu hoch gegriffen ist.
mkinzler,
das mit der Foundation-Version finde ich eine gute Sache. Wusste gar nicht, dass Borland da auch so 'gnädig' ist. Langsam merken die Softwarehersteller wohl auch, dass man nur mit guten Ködern Fische fängt, hihi.
Eclipse klingt allerdings auch gut und ich hoffe, ich kann mir den notwendigen Stoff anlernen, aber da habe ich weniger Angst. 100 MB geht wirklich noch. Na dann will ich heute Nachmittag mal zu Hause den Download von Eclipse starten und es ausprobieren. Ich melde mich, wenn es etwas Neues auf diesem Sektor gibt.
Danke euch allen für die bisherigen Tipps!
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Mi 01.11.06 23:29
Ich kenne einige, die professionell Java-Programme schreiben aber ich kenne niemand, der JBuilder verwendet. Ich würde dir deswegen auch Eclipse empfehlen. Ist eine wirklich gute Umgebung. Obwohl Eclipse selbst in Java programmiert ist, verwendet es die OS-spezifischen Controls (Buttons, Menus, Dialoge, etc.). Dafür wurde extra das SWT entwickelt - ein platformabhängiger Teil von Eclipse, um genau dies zu ermöglichen. Du musst dich also nicht (wie oben behauptet) an neue Controls gewöhnen.
[OT]In punkto Geschwindigkeit kann nicht die Rede davon sein, dass Java so schnell ist wie nativ kompilierte Sprache. Der Witz von Java ist doch eben genau, dass noch ein zusätzlicher Abstraktionslayer dazwischen liegt. Eine entsprechende Platform wird dann logischerweise nicht so ausgenützt, wie ein nativer Compiler dies kann, weil eben der Java-Bytecode allgemein genug sein muss, um auf allen Platformen zu laufen. Ausserdem werden Arrays immer auf den Bereich überprüft, genauso wie Casts; Alle Vererbungen sind virtuell; Variablen werden nicht Prozessor-Intern in Registers gespeichert werden sondern müssen im Memory ausgelagert werden. Weiteres Beispiel: Um bswp. SSE2 optimal nutzen zu können müssen die Befehle zum Teil umstrukturiert und neu angeordnet werden. Sowas kann nur ein nativer Compiler.
Ausserdem gibt es das JNE, mit welchem man in Java platformabhängige Codestücke in C schreiben kann. In der offiziellen Dokumentation von Sun steht dort geschrieben, dass man JNE verwenden kann, um zeitkritische Codes nativ kompiliert zu haben, um die höchstmögliche Effizienz zu erhalten. Wenn Java wirklich so schnell wäre, würde das wohl kaum stehen.
Weitere Beispiele: Stellt euch mal einen Vektorgrafikeditor vor. Will man jetzt 1 Million Striche speichern, muss man in Java 1 Million Objekte kreieren. Diese 1 Million Objekte liegen alle irgendwo im Speicher verteilt und enthalten unnötige Daten, die zu jeder Instanz angelegt werden. In Delphi hingegen hat man die Möglichkeit, die Striche in einem Array eines Records zu speichern. Der Code läuft deswegen nicht nur schneller sondern braucht auch noch eine beträchtliche Menge weniger Speicher. (Wer's nicht glaubt soll das Java-Programm Batik ausprobieren und eine etwas grössere Datei laden)
Oder: In Java wird jeder String, jede lokale Variable (ausser bei primitiven Datentypen) im Heap alloziert. In C++ hat man hingegen die Möglichkeit, Objekte auf dem Stack zu allozieren. Das Allozieren des Speichers besteht dann darin, den Stackpointer entsprechend zu inkrementieren (d.h. eine Addition) - in Java hingegen muss immer eine Klasse instanziert werden. Die Strings in Java sind sogar noch immutable: Will man beispielsweise die Reihenfolge der Characters in einem String der Länge n umkehren, muss man n Zwischenstrings kreieren. Weil man in einem Java-String nicht einfach einen Character verändern kann (d.h. es muss neuer String kreiert und der alte vernichtet werden -- ein Ausweg wäre, wenn man die besagte Prozedur mit Streams implementieren würde. Aber bitte...).
Mir fallen Tausende von Sachen ein, wieso Java nicht allgemein schneller oder gleich schnell wie C++ sein kann (vor allem bei numerischen Berechnungen und grossen Datenmengen).[/OT]
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mi 01.11.06 23:32
Übrigens basiert JBuilder in der zwischenzeit auch auf Eclipse.
_________________ Markus Kinzler.
|
|
Logikmensch 
      
Beiträge: 390
Win XP
Delphi 2007 Prof., XE2, XE5
|
Verfasst: Do 02.11.06 10:52
Hallo!
Ich habe das Eclipse S.D.K. mittlerweile erfolgreich gedownloaded und werde wohl erst heute abend dazu kommen, es mal zu installieren und reinzuschauen. Habe echt noch keinen Plan.
Danke für eure hilfreichen Erklärungen. Das ist sehr interessant, dass man wirklich für alles und jedes ein Objekt initiieren muss. In meinen bisherigen 3D-Animationen habe ich die Landschaft gewöhnlich in einem Array gespeichert und dann innerhalb des ApplicationIdle-Events zur Darstellung gebracht. Diese Denkweise muss ich sicher anpassen. Ich werde es wohl schwer haben, die OpenGL-Grafik oder Direct3D mit Java schnell genug anzusprechen. Aber wenn ich es überhaupt kann (habe ich doch lediglich Erfahrungen mit OpenGL unter Delphi), dann dürfte es ein langer Weg sein.
Man muss eben klein anfangen. Wenn ich irgendwann in meinem Browserfenster eine kleine grüne Wiese vor mir sehe, innerhalb derer ich mich mit den Cursortasten bewegen kann, dann ist schon mal viel geschafft.
Mit viel mehr hatte ich mein OpenGL-Studium auch nicht begonnen. Die Frage ist, ob die Ausführungsgeschwindigkeit bei Java langt. Das kann ich jetzt natürlich noch nicht sagen. Sicherlich habe ich vor, bei der geplanten 3D-Animation eine Sichtbereichs-Eingrenzung vorzunehmen (was nicht dargestellt werden muss, muss auch nicht berechnet werden), aber ich ahne doch, dass durch die angesprochene "Zwischenschicht" die Verbindung von Java zur OpenGL- oder D3D-Hardware doch zeitlich nicht hinterherkommt um flüssige Bewegungen auf einem herkömmlichen Rechner hinzukriegen. Aber schauen wir mal!
Aber ein Angucken wird sich bei Eclipse sicherlich lohnen. Die Präsentationen zu dem S.D.K. sehen vielversprechend aus. Vielleicht kann ich mein Wissen über JavaScript (nicht Java) doch irgendwie dabei verwenden. Und wenn nicht, dann habe ich die nächste Zeit viel zu lernen.
Ich melde mich, sobald es Neuigkeiten gibt.
|
|
|