Autor Beitrag
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 24.10.12 16:50 
Hallo,
anbei ein kleines Programm, dass vielleicht hilft, schnell Funktionen zu zeichnen.

Der Hauptteil ist die Unit graf, welche die eigentliche Arbeit übernimmt. Will man eine Funktion zeichnen, so ist einfach das Darstellungsintervall [_x1,_x2] und [_y1,_y2] festzulegen, z.B.
ausblenden Delphi-Quelltext
1:
    _x2:=6; _x1:=-6; _y2:=5; _y1:=-5;					

Zweitens werden die Funktionsliste gelöscht, die Funktionsterme in Großbuchstaben(!) eingefügt und die Unit aufgerufen, z.B.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
    lclear;
    lwriteln(edit1.text);   //z.B. edit1.text ist X*SIN(X)
    lwriteln(edit2.text);   //z.B. edit2.text ist X^2+X-1    usw.
    fgraf.showmodal;

Im Koordinatensystem können einige Einstellungen vorgenommen, die Achsen verschoben und der Definitionsbereich eingegeben werden. Mit der linken Maustaste kann ein Rahmen aufgezogen werden. Ein Menüpunkt bzw. die Space-Taste stellt alles zurück.

Das Hauptprogramm ist nur zur Demonstration des Ganzen gedacht.
Ich vermute auch, dass es schwer ist, durch meinen chaotischen Quelltext zu kommen. :lol: Die Unit soll ja auch nur helfen, wenn jemand ohne großen Aufwand schnell den Graphen einer Funktion zeichnen will.
Irgendwann baue ich noch Speichern, Drucken und Kopieren der Abbildung ein. Wenn ich Lust dazu habe. :wink:

Beste Grüße
Mathematiker

Revisionen:
  1. Manchmal geht es schneller, als man denkt. Die Revision 1 kann jetzt den Funktionsgraphen als Vektorgrafik kopieren und drucken (auf den eingestellten Standarddrucker).
    Vielleicht hat jemand noch eine gute Idee zur Weiterentwicklung. Ich habe auch nichts dagegen, wenn die Idee im Quelltext gleich eingefügt wird. :wink:
  2. Auf Wunsch können 1. und 2.Ableitung der ersten Funktion sowie f(-x), -f(x), -f(-x) und f(f(x)) gezeichnet werden.
  3. Die Eingabe der Funktionen (im Moment max. 4) erfolgt jetzt direkt im Darstellungsfenster. Die oben gemachten Aussagen zum Aufruf der Unit graf aus einem anderen Formular heraus gelten weiter.
  4. Der Funktionsterm kann einen Parameter P enthalten. Dieser ist kontinuierlich veränderbar (Animation) und zeigt so im Verlauf des Graphen seinen Einfluss.
  5. Auf der 1.Funktion kann ein Punkt markiert werden, der mit der Maus verschoben werden kann. Zusätzlich kann eine Tangente angetragen werden.
  6. Fehler (Programmabsturz) bei starkem Zoomen beseitigt.
  7. Außer der Tangente kann auch die Normale im markierten Punkt gezeichnet werden. Während der Animation kann nun auch der Punkt verschoben werden.
  8. Ein zweiter Punkt kann eingezeichnet und mit der Maus verschoben werden. Sekante kann gezeichnet werden.
    Die Fläche unter der Funktion 1 von O bis Punkt A wird markiert und berechnet. Ebenso das bestimmte Integral. f1 und f2 können addiert und multipliziert werden. Eine Stammfunktion zu f1 wird gezeichnet.
  9. floattostr entfernt, erzeugte evtl. Programmabsturz. In die Eingabezeilen können nun auch Terme der Form PI, SQRT(2), ... usw. eingetragen werden.
  10. Die Fläche unter der Kurve und das bestimmte Integral werden im x-Intervall der Punkte A und B ermittelt. Außerdem wird die Umkehrkurve von f1 gezeichnet.
  11. Nullstellen und Extremstellen werden für die 1.Funktion berechnet und weitere kleine Änderungen.
  12. Wendepunkte werden berechnet und gezeichnet. Jetzt auch mit analytischer Differenziation des Funktionsterms!
  13. Die Wendetangenten werden ermittelt und dargestellt.
  14. Die Genauigkeit der Berechnung ist höher. Die Koordinaten der Extrem- und Wendepunkte werden vollständig angegeben.
  15. Die vier Ausgangsfunktionen sind zu- und abschaltbar. Die Schnittpunkte zwischen der 1. und 2.Funktion werden ermittelt.
  16. Die Fläche unter der Kurve wird nun als Fläche zwischen Funktion 1 und 2 ausgewertet, wenn die 2.Funktion gezeichnet wird.
  17. Eine kopierbare Ergebnisliste kann zu- und abgeschaltet werden.
  18. Ableitungsterme werden, zwar nicht vollständig, aber etwas besser zusammengefasst.
  19. Punkt B kann automatisch verschoben werden. Im Quelltext habe die Controls Namen erhalten, die Hinweis auf die Verwendung geben.
  20. Erhöhung der Übersichtlichkeit durch Auslagerung der Sonderfunktionen in das Menü. Zusätzlich Veranschaulichung eines Parametereinflusses auf das Kurvenbild.
  21. Eine Funktionsschar kann für unterschiedliche Parameter P gezeichnet werden.
  22. Einstellmöglichkeiten für das Koordinatensystem sind in das Menü integriert und weitere Änderungen.
  23. Wertetabelle inkl. Funktionswerte und Ableitungswerte enthalten.
  24. Speichern der Abbildung als GIF, BMP oder Vektorgrafik und weitere kleine Änderungen.
  25. Fehler bei der Verschiebung von Punkt A beseitigt.
  26. Erweiterung des Funktionsinterpreters um weitere Funktionsterme, auch exotische.
  27. Vollständige Überarbeitung des Quelltextes mit diversen Änderungen.


Zusätzlich hänge ich eine Variante an, bei der die eigentliche Zeichenarbeit in einer DLL ausgeführt wird. Das Zusatzprogramm demonstriert, wie die DLL verwendet werden kann.
Rev 1-3: übersichtlichere Struktur zur Datenübergabe an die DLL
Einloggen, um Attachments anzusehen!
_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein


Zuletzt bearbeitet von Mathematiker am Mi 08.07.15 09:14, insgesamt 34-mal bearbeitet

Für diesen Beitrag haben gedankt: Anika, kaufmax, lenamarkert, No1Special
gerd8888
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 205
Erhaltene Danke: 3

Win7
Delphi 10.1 Starter (kostenlos) Lazarus
BeitragVerfasst: Mi 24.10.12 21:27 
Der Funktionsplotter funktioniert einwandfrei. Gut gefaellt mir der Effekt, dass man den Kurvenverlauf verstaerken kann.
Aber ehrlich gesagt, hat mir der Funktionsplotter von Fiete aufgrund der Ableitungsfunktion besser gefallen.
Vielleicht wird das ja noch mal eingebaut... ?
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 24.10.12 22:04 
Hallo Gerd8888,
user profile icongerd8888 hat folgendes geschrieben Zum zitierten Posting springen:
Aber ehrlich gesagt, hat mir der Funktionsplotter von Fiete aufgrund der Ableitungsfunktion besser gefallen.
Vielleicht wird das ja noch mal eingebaut... ?

Kein Problem, ist schon geschehen, siehe Revision 2. Zusätzlich können auch die gespiegelten Funktionen f(-x), -f(x) und -f(-x) und die Nacheinanderausführung f(f(x)) gezeichnet werden.

Wenn Du weitere Vorschläge hast, so sind die gern gesehen. Fietes Programm ist schön, ohne Zweifel. :zustimm:

Ich möchte aber mit meiner Lösung erreichen, dass man einfach durch Einbinden der Unit graf und wenige Parameter von jedem beliebigen Hauptprogramm aus, eine Funktion zeichnen kann. :)
Vielleicht kann man meine Unit auch als Komponente schreiben. Da ich aber keinerlei Ahnung habe, wie so etwas geht, muss ich da erst einmal passen.
Kann man eigentlich in eine Komponente ein ganzes Formular mit vielen Objekten einfügen? Ich weiß es nicht. :nixweiss:

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 24.10.12 22:17 
Hallo Mathematiker,

schönes Programm, allerdings kann ich persönlich damit nur wenig anfangen. Bei Mathe-Hausaufgaben vielleicht, aber da reicht mir normalerweise der Taschenrechner aus.
Was ich aber sehr viel mehr gebrauchen könnte, wäre eine DLL, mit der ich eben diese Oberfläche in anderen Programmen verwenden und darstellen kann.
Soweit ich weiß, gibt es auch Delphi.Net und ist dein Programm nicht mit Delphi geschrieben? Könntest du da nicht auch eine DLL erstellen, die man dann einfach mit z.B. C# verwenden kann?

Ich muss das fragen, weil ich den Quelltext leider wenn überhaupt nur sehr schwer verstehe und es damit auch nicht nutzen kann.


Und dann am besten nicht nur zwei Formeln darstellbar machen, sondern beliebig viele, so kann man das in mathematischen Programmen umfangreich nutzen. ^^


PS: Vielleicht kannst du auch das mm-Raster etwas dicker machen? Ich hab das nicht einmal auf den dritten Blick erkennen können, erst nachdem ich sehr genau hin geschaut habe und das ist ja nicht Sinn eines solchen Rasters. Man muss es ohne Probleme erkennen können.
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 24.10.12 22:26 
Hallo Palladin,
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Was ich aber sehr viel mehr gebrauchen könnte, wäre eine DLL, mit der ich eben diese Oberfläche in anderen Programmen verwenden und darstellen kann.
Soweit ich weiß, gibt es auch Delphi.Net und ist dein Programm nicht mit Delphi geschrieben? Könntest du da nicht auch eine DLL erstellen, die man dann einfach mit z.B. C# verwenden kann?

Eine DLL ist ein gute Idee, und schon habe ich zwei neue Probleme.
1. Delphi.Net mit meinem Delphi 5? Das dürfte wohl nicht gehen.
2. Wie erstelle ich eine DLL, die ein Formular enthält und an die ich Parameter (4 Zahlen) und eine Stringliste (Funktionen) übergebe? :nixweiss:
DLLs als Datencontainer kann ich, aber das ...? Rätsel über Rätsel!

user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Und dann am besten nicht nur zwei Formeln darstellbar machen, sondern beliebig viele, so kann man das in mathematischen Programmen umfangreich nutzen. ^^

Das geht schon jetzt. Im aufrufenden Formular müssen einfach in die Liste mit lwriteln(term) die Funktionen term eingetragen werden. Das können auch 10 oder mehr sein. Allerdings wird es dann unübersichtlich.
In meinem Beispiel habe ich im Moment nur die zwei Eingabezeilen. Es geht aber problemlos mehr.

Was das Raster angeht, werde ich evtl. die Farbe etwas dunkler machen.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
gerd8888
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 205
Erhaltene Danke: 3

Win7
Delphi 10.1 Starter (kostenlos) Lazarus
BeitragVerfasst: Mi 24.10.12 22:29 
Das schaut jetzt gut aus. Etwas stoert mich die Funktionseingabe, dass wenn man eine neue Funktion laden will auf ENDE gehen muss. Ich faende es besser, wenn man oben im einfachen edit die funktion eingeben koennte.

Aber man kann damit wirklich gut arbeiten.
Da Du dich Mathematiker nennst eine kurze Frage dazu: Gibt es eigentlich ein Programm, wo man die Flaeche (Integration) festlegen kann und angezeigt bekommt.
Z.B. bei der erste Ableitung der Geschwindigkeit, die Fläche waere der Weg.

(Nur noch eine Frage am Rande. Hast Du die Verbesserung (also mit der Ableitung jetzt so schnell waerend Deines Urlaubes mal so schnell nebenbei geschrieben.)
Beachtlich!
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 24.10.12 22:37 
Hallo Gerd8888,
user profile icongerd8888 hat folgendes geschrieben Zum zitierten Posting springen:
Etwas stoert mich die Funktionseingabe, dass wenn man eine neue Funktion laden will auf ENDE gehen muss. Ich faende es besser, wenn man oben im einfachen edit die funktion eingeben koennte.

Ich werde dies ändern, d.h. das Darstellungsfenster werde ich zum Hauptformular machen. Kein großes Problem.
user profile icongerd8888 hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es eigentlich ein Programm, wo man die Flaeche (Integration) festlegen kann und angezeigt bekommt. Z.B. bei der erste Ableitung der Geschwindigkeit, die Fläche waere der Weg.

Ich verstehe es so: Du möchstet einen Flächeninhalt angeben und das Programm soll von 0 oder einem anderen x aus die Fläche unter der Funktion markieren, die diesen Wert besitzt? Ist machbar, dauert aber etwas.
Denn ...
user profile icongerd8888 hat folgendes geschrieben Zum zitierten Posting springen:
Hast Du die Verbesserung (also mit der Ableitung jetzt so schnell waerend Deines Urlaubes mal so schnell nebenbei geschrieben.

Die Änderung dauerte 30 Minuten. Ich weiß, das ist Angeberei. :oops:
Es war nur ein Kurzurlaub: 2 Tage Sächsische Schweiz. Ab Freitag bin ich für 8 Tage weg, deshalb dauert das mit der Fläche etwas länger.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 24.10.12 22:45 
Problem 1 kann ich so auf Anhieb auch nicht lösen :D
Problem 2 auch nicht. :D Aber ich kann überlegen, ist nicht die Struktur der Kapselung in Delphi ähnlich aufgebaut, wie in C#? Dass du insgesamt zwei Formulare erstellst. Das Eine ist die Anzeigetafel, die eben die Daten im Konstruktor oder zum neu laden über eine entsprechende Methode (Funktion) empfängt. Das kann man ja auch über einen passenden Datentyp regeln.
Das zweite Formular ist für die Eingabe zuständig und konvertiert eine Nutzer-Eingabe in die Daten, mit denen die Anzeigetafel etwas anfangen kann. Auf diese Weise kann man in einem anderen Programm entweder vom Nutzer was zeichnen lassen, oder z.B. automatisch eine Statistik darstellen.
Keine Ahnung, ob das so funktioniert, wie ich mir das vorstelle, ich hab einfach keine Ahnung von Delphi, aber grob wüsste ich, wie ich es in C# machen würde. ^^ Natürlich kann es sein, dass gewisse Eigenarten deines Codes was gegen diese Vorgehensweise haben, aber die kann ich nicht betrachten, weil ich den Code nicht verstehe. :/
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 24.10.12 22:55 
Hallo Palladin700,
danke für Deine Hinweise. Ich werde mit das Alles mal überlegen und sehen, was machbar ist.
Irgendwie schaffe ich das schon.

Übrigens habe ich gerade die neue Revision 3 eingefügt. Es sind jetzt immerhin 4 Funktionen, alle im Darstellungsfenster eingebbar und auch das Raster ist etwas dunkler.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Palladin007
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 24.10.12 23:21 
Ich hoffe, das wird was. ^^
Wollte nämlich auch mal einfach so aus Fun einen Rechner schreiben und so ein Fenster würde da ganz gut funktionieren.
Ach ja, gibt es in Delphi sowas wie User-Controls? Das sind Formulare, die allerdings in ein anderes Formular eingebettet werden müssen und dort dann als Objekt verwendet werden können. Wenn das ein solches nicht selbstständiges Formular wäre, dann könnte man damit viel besser arbeiten und wenn man doch einfach nur so ein Fenster haben will, dann fügt man das einfach in ein extra Formular ein und sonst nichts.
Was auch sehr gut wäre, wenn dieses Formular nur aus dem Koordinaten-System bestehen würde. Die Einstellungen können dann als Parameter übergeben werden (wieder ein neuer Typ, z.B.), so könnte man das dann nahtlos in andere Anwendungen einfügen und verwenden.

Ach und ich würde mir einen aussage-kräftigeren Namen ausdenken, damit man etwas brauchbares in der Beschreibung von einem Programm, das das verwendet, erwähnen kann. ^^



Und in der neuen Version hast du gleich eingebaut, was ich sagen wollte, aber glaube vergessen habe. :D
Ursprünglich wollte ich sagen, erst die Anzeigetafel zu öffnen und dann nachträglich kann man eine Liste öffnen, wo man dann die Funktions-Gleichungen rein schreiben kann.
So, wie du es jetzt gemacht hast, gefällt es mir aber besser. ^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 25.10.12 07:47 
User-Controls kann man in Delphi mit Frames nachahmen. Über die DLL-Grenzen hinaus kann man aber trotzdem schlecht damit arbeiten.

Zur Interaktion mit der DLL wäre eine Schnittstelle zu einem passenden Objekt keine schlechte Idee. Die kann man auch in C# nutzen. So nach dem Motto CreatePlotter als Funktion und ich bekomme ein Interface zu diesem Plotterobjekt zurück.
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Do 25.10.12 08:52 
Hallo,
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Zur Interaktion mit der DLL wäre eine Schnittstelle zu einem passenden Objekt keine schlechte Idee. Die kann man auch in C# nutzen. So nach dem Motto CreatePlotter als Funktion und ich bekomme ein Interface zu diesem Plotterobjekt zurück.

Ich gestehe, ich verstehe wieder absolut nichts? :nixweiss:

Ich habe die Tutorials durchwühlt und Folgendes gefunden:
Die DLL habe ich, wie unter www.entwickler-ecke....en_8136.html?view=dl beschrieben, hergestellt.
In einem Programm rufe ich mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 procedure UserForm(appHandle:THandle); stdcallexternal 'GRAFDLL.DLL';
var
  Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
    UserForm(Application.Handle);
end;

das Fenster aus der DLL auf. Und es ist "cool"! :D Es funktoniert!
Die ursprüngliche Fehlermeldung "Win32 Error. Code 1400. Ungültiges Fensterhandle." konnte ich beseitigen, als ich die Create-Methode des Formularfensters geleert habe.
Dennoch komme ich mir vor, wie der berühmte Affe, der auf Tasten herumdrückt und einen Shakespeare-Text produzieren soll.

Schön wäre, wenn man beim Ruf der DLL-Routine einen Funktionsterm übergeben könnte. Allerdings habe ich gelesen, dass Stringübergaben problematisch sind. Und so habe ich das nächste Problem. :roll:

Beste Grüße
Mathematiker

Nachtrag: In der Revision 4 des Programms kann der Funktionsterm einen Parameter P enthalten. Dieser ist kontinuierlich veränderbar und zeigt so im Verlauf des Graphen seinen Einfluss, d.h., wird die Animation gestartet, ändert sich P und das Funktionsbild, inkl. Ableitungen, ..., wird sofort neugezeichnet.

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein


Zuletzt bearbeitet von Mathematiker am So 04.11.12 17:30, insgesamt 1-mal bearbeitet
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 25.10.12 10:58 
Ich würde für die Erstellung der DLL einen anderen Weg vorschlagen.
Die DLL Konzentriert sich auf das Berechnen und Zeichnen und bekommt vom Aufrufer ein Ziel vorgegeben.
Ich habe mal ein Beispiel angehängt (Exe/SRC)
Einloggen, um Attachments anzusehen!
_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS


Zuletzt bearbeitet von bummi am Do 25.10.12 11:53, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: Mathematiker
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Do 25.10.12 11:45 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Hallo Palladin,
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Was ich aber sehr viel mehr gebrauchen könnte, wäre eine DLL, mit der ich eben diese Oberfläche in anderen Programmen verwenden und darstellen kann.
Soweit ich weiß, gibt es auch Delphi.Net und ist dein Programm nicht mit Delphi geschrieben? Könntest du da nicht auch eine DLL erstellen, die man dann einfach mit z.B. C# verwenden kann?

Eine DLL ist ein gute Idee, und schon habe ich zwei neue Probleme.
1. Delphi.Net mit meinem Delphi 5? Das dürfte wohl nicht gehen.


DLLs sind Compilate mit Maschinencode und können n.m.W. mit jedem Delphi, das sog. nativen Code erzeugt (also nicht die .Net-Varianten) erstellt werden! DLLs haben erstmal überhaupt nichts damit zu tun, mit welcher Programmiersprache sie erstellt und mit welchem Compiler sie erzeugt wurden.

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
2. Wie erstelle ich eine DLL, die ein Formular enthält


Nach meinem Wissen gar nicht: DLLs enthalten nur Routinen (Funktionen/Prozeduren) und sind nicht graphiktauglich.

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
und an die ich Parameter (4 Zahlen) und eine Stringliste (Funktionen) übergebe? :nixweiss:
DLLs als Datencontainer kann ich, aber das ...? Rätsel über Rätsel!


Die DLL-Bibel der Delphianer ist die Anleitung von Assarbad.
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Do 25.10.12 11:56 
Hallo Bummi,
user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
Die DLL Konzentriert sich auf das Berechnen und Zeichnen und bekommt vom Aufrufer ein Ziel vorgegeben.

Danke. Sieht sehr gut aus. Wenn ich es richtig verstanden habe, kann man so eine Paintbox auf dem Hauptformular mit der Zeichnung versehen. Und die Parameterübergabe funktioniert auch. Sehr schön. Es wird aber etwas dauern, bis ich das umgesetzt habe.

Hallo Delphi-Laie,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
2. Wie erstelle ich eine DLL, die ein Formular enthält

Nach meinem Wissen gar nicht: DLLs enthalten nur Routinen (Funktionen/Prozeduren) und sind nicht graphiktauglich.

Dachte ich auch. Es geht aber, wie Du dem Anhang "graph_mit_dll" entnehmen kannst.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 25.10.12 12:04 
Zitat:

Dachte ich auch. Es geht aber, wie Du dem Anhang "graph_mit_dll" entnehmen kannst.


Komponenten (VCL) sicher verwenden in DLL und Hauptprogramm geht nur mit Laufzeitpaketen. Damit ist die DLL dann aber an die jeweilige Delphiversion gebunden. O.g. Beispiel solltest Du auch in anderen Spachen verwenden können.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: Mathematiker
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Do 25.10.12 12:56 
Hallo Bummi,
ich habe gerade begonnen, Deine schöne Lösung mit meiner Grafikroutine zu verbinden.
Beim Compilieren Deiner DLL kam bei
ausblenden Delphi-Quelltext
1:
  @DLLProc:=SaveExit;					

die Meldung "Der linken Seite kann nichts zugewiesen werden.". Was ist denn das? Ich habe wieder keine Ahnung.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Do 25.10.12 13:03 
Also Formulare in DLLs zu speichern geht zumindest bei C# ohne Probleme.

Ich hab auch mal ein kleines, aber vollständiges Programm mit allem Drum und Dran in einer DLL unter gebracht und dann von einer exe starten lassen. Ziel, warum ich das gemacht habe, war, dass dieses Programm ein Teil einer Gruppe war und man so schnell und einfach die einzelnen Teile mit der jeweiligen Oberfläche erneuern kann. Man muss nur die dll aus tauschen.

Ob das aber auch in dem vollen Umfang zwischen zwei verschiedenen Sprachen wie C# und Delphi funktioniert, weiß ich nicht.
Im Moment bin ich noch in der Schule, aber wenn ich Zuhause bin, wühle ich mich mal durch die einzelnen Ansätze und versuche sie in C# zu verwenden.


PS:
Und danke für den Aufwand. ^^
So eine Oberfläche ist wirklich was schönes, bloß reichen meine bisherigen Fähigkeiten noch nicht dazu aus, so etwas selber zu bauen.
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Do 25.10.12 16:53 
Hallo,
da die Umsetzung als DLL irgendwie stockt, habe ich mir das Programm an sich noch einmal vorgenommen.
In der Revision 5 kann nun zusätzlich auf der 1.Funktion ein Punkt markiert werden, für den der Funktionswert ermittelt wird. Dieser Punkt ist mit der Maus verschiebbar.
Auf Wunsch kann bei diesem Punkt eine Tangente angetragen werden.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 25.10.12 19:19 
"Der linken Seite kann nichts zugewiesen werden."
lass die zwei Stellen mit DLLProc und SaveExit einfach mal weg

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS