AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Einfache Freepascal IDE
Thema durchsuchen
Ansicht
Themen-Optionen

Einfache Freepascal IDE

Ein Thema von schöni · begonnen am 18. Jan 2010 · letzter Beitrag vom 17. Apr 2010
Antwort Antwort
Seite 3 von 7     123 45     Letzte »    
schöni
Registriert seit: 23. Jan 2005
Hallo!

Jetzt möchte ich Euch mal ein kleines Projekt vorstellen. Es handelt sich um eine sehr einfach gehaltene IDE für den Freepascal Compiler.

Zu diesem Projekt motiviert wurde ich einerseits durch den Umstand, das der Freepascal Compiler, von Lazarus abgesehen, noch immer mit der etwas angestaubten Turbo Vision IDE geliefert wird, obwohl es leistungsfähige Windowas Entwicklungsumgebungen gibt. Wenn das Freepascal Team von dem einige, wie ich den Eindruck gewonnen habe, auch hier in der DP angemeldet sind, bereit ist, diese IDE an Stelle der alten, mit FreeVision geschriebenen zu verteilen, werde ich den Debugger noch versuchen, nachzurüsten und ebenso die Codevervollständigung. In diesem Fall wird diese IDE OpenSource.

Andererseits fasziniert mich der Formulardesigner von Delphi. Weil es da zahlreiche Nachbauten gibt, die ich gerne nachvollziehen möchte und außerdem mir eine Lösung hirfür unter Nutzung von Quellcode aus der DP und aus dem sonstigen Internet zusammengestellt habe, brauche ich vollständigkeitshalber eine IDE, in die ich diesen Designer einbauen kann. In der vorliegenden Version der IDE ist jedoch kein Form-Designer eingebaut.

In dieser Version gibt es noch keinen intergrierten Debugger, obwohl die Menüeinträge dafür bereits vorhanden sind. Auch gibt es noch keine Codevervollständigung, obwohl auch hier die Menüeinträge dafür vorhanden sind. Werden die betreffenden Menüeinträge ausgewählt, passiert nichts, außer dem Schließen des Menüs.

Auch funktioniert der Aufruf des Konsolenfensters noch nicht im Menü "Datei->DOS aufrufen".
Die integrierte Hilfe, folgt, wenn die IDE fertig ist. Das ist der Fall, wenn alle Funktionen, die im Menü sichtbar sind, auch alle funktionieren.

Der Freepascalcompiler muss über das Menü "Tools->Tools einrichten" in die IDE integriert werden.
Das funktioniert exakt so, wie das mit dem Einrichtungsdialog der Delphi IDE funktioniert. Ich habe diesen Dialog so gestaltet, wie er bis Delphi 7 gestaltet war. Alternativ kann der Programmpfad Eures Freepascal Compilers auch in die Datei "fp.tls" eingetragen werden. Ich habe vor den Pfad dort das Wort "Compiler" gesetzt, welches im Menü "Tools" erscheint, wenn der Compiler in der IDE bekannt ist. Nach einem Leerzeichen folgt der Compilerpfad.

ACHTUNG:
----------------------------------------------------------------

Der Aufruf des Compilers muss über das Menü Compiler erfolgen!

Bei Aufruf über das Tools Menü wird eine Exception ausgelöst!

----------------------------------------------------------------

Wer das gute alte Turbo Pascal noch kennt oder bereits mit der Textmode IDE von Freepascal gearbeitet hat, sollte mit dieser IDE auf Anhieb zurecht kommen.

Getestet habe ich das Design mit Registern für den Quelltexteditor, wie das aus der Delphi IDE bekannt ist. Die MDI Variante ist noch fehlerhaft und deshalb empfehle ich dieses Design nicht.

Unterhalb des Quelltexteditors gibt es 4 Fenster in Registern angeordnet. Diese sind:

-Compiler-Ausgaben
-Debugger Ausgaben(derzeit noch uninteressant)
-Ausgaben Ihrer Anwendung
-Meldungen

Compiler Ausgaben:

Hier erscheinen alle Meldungen des Compilers während der Übersetzung.



Ausgaben Ihrer Anwendung

Hierhin schreibt das übersetzte Programm alle Ausgaben. Unter "Optionen->Umgebungseinstellungen->Vorgaben kann dieses Verhalten so geändert werden, das die Programmausgaben in die Windowsconsole umgeleitet werden.


Meldungen

Hier sollen Fehlermeldungen der Anwendung sichtbar werden.

Jetzt warte ich auf Eure möglichst konstruktive Kritik.
Miniaturansicht angehängter Grafiken
freepascalide_191.jpg  
Angehängte Dateien
Dateityp: zip fpide_194.zip (1,97 MB, 100x aufgerufen)
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
 
mse1
 
#21
  Alt 10. Feb 2010, 14:23
Zitat von Florian Hämmerle:
Ja also ich bin auch der Meinung, dass man jetzt hier nicht auf Aussagen herumhacken sollte, sondern lieber konstruktive Kritik an der IDE anbringen sollte.
Die Hinweise bezogen sich auf:
Zitat von schöni:
Wenn das Freepascal Team von dem einige, wie ich den Eindruck gewonnen habe, auch hier in der DP angemeldet sind, bereit ist, diese IDE an Stelle der alten, mit FreeVision geschriebenen zu verteilen, werde ich den Debugger noch versuchen, nachzurüsten und ebenso die Codevervollständigung. In diesem Fall wird diese IDE OpenSource.
und sollen schöni helfen, sein Ziel zu erreichen.
Martin Schreiber
  Mit Zitat antworten Zitat
schöni

 
Delphi 7 Personal
 
#22
  Alt 10. Feb 2010, 21:28
Hallo Ihr alle!

Danke zuerst für Euer Interesse an der IDE und vorab für die kritischen Hinweise!

Zitat von mse1:
Ich reagiere lediglich allergisch, wenn ich sehe, dass Leute von MSEide+MSEgui nur die IDE-binary herunterladen, auf das Paket mit der Entwicklungsumgebung verzichten, obwohl dessen Notwendigkeit überall erwähnt wird, README.TXT nicht lesen und dann behaupten, MSEide habe kein syntax highlighting.
Und ich reagiere allergisch, wenn Eigenschaften bei einem Programm zugesichert werden, die dann fehlen. In der Grundeinstellung, wenn ich die mseIDE zu ersten Mal starte, sehe ich nur ein Hauptfenster mit dem Menü und der Werkzeugleiste+Komponentenpalette, sonst nichts, und das auch noch mit viel zu kleiner Schrift. Wäre nett vom Entwicklungsteam, da mal defaultmäßig Nutzerfreundlichere Einstellungen vorzunehmen. Wer die OPtik dann wieder so haben will, wie sie jetzt ist, kann ja die Readme Datei studieren und gemäß den dortigen Anweisungen die Einstellungen anpassen.

In Lazarus erscheint auch Quelltexteditor und Formdesigner bereits beim Start und das Syntaxhighlighting ist defaultmäßig eingeschaltet, auch dann, wenn ich es versäumt habe, die Readme zu lesen. Die Quelltexte sind inzwischen so umfangreich, das ich, um das Verhalten der IDE zu ändern ebenso lange brauche um die Quelltexte im erforderlichen Umfang zu verstehen, wie ich brauche, um meine IDE auf diesen Entwicklungsstand zu bringen.

Weil wir gerade bei zugesicherten Eigenschaften sind, Der User Insider2004, der auch in der DP Mitglied ist, hat im Thread "Lazarus Konkurrenz zu Delphi 2005?" behauptet, das im neuen Lazarus 0.9.29 Delphi Quellcode ohne Änderung nach Lazarus portierbar sei. Wenn dem wirklicxh so wäre, dann könnte doch mal einer der dieses Lazarus zum Laufen gebracht hat, die Quelltexte nach Lazarus portieren. Vorher Toolbar 2000- und SpTBX Komponenten enfernen, das mach ich dann vorher. Dann wäre die IDE von heute auf morgen portiert. Selbstverständlich erhält derjenige, der die Portierung machen kann, dann auch die Quelltexte. Einfach PN an mich. Die portierten Quelltexte werden dann automatisch Open Source. Dann müsste allerdings noch die GPL zum Paket hinzugefügt werden.

Einfach PN an mich von demjenigen, der die Portierung machen kann.

Sollte ja gehen, wenn das brandneue Freepascal wirklich so kompatibel zu Delphi ist.

Zitat von mse1:
Wenn ich richtig verstanden habe, möchte schöni seine IDE als Ersatz der mit Free Pascal mitgelieferten fp IDE anbieten.
Ja, das Angebot steht.

Zitat von mse1:
Um dieses Ziel zu erreichen, müsste schöniIDE auf allen oder wenigstens auf den wichtigsten Plattformen, welche von FPC unterstützt werden, laufen. Delphi kommt daher als Entwicklungsumgebung nicht in Frage.
fp wird von den Free Pascal Entwicklern auch deshalb geschätzt, da es mittels SSH ausgezeichnet auf externen Rechnern betrieben werden kann. Auch dies müsste von Anfang an berücksichtigt werden, wenn schöniIDE als Ersatz für fp dienen sollte.
Danke für die Hinweise!

Hmmm, ich habe versucht, mit Lazarus zu entwickeln, aber die Synedit Komponenten sind dort nicht so gut ausgebaut. Das fängt mit der SearchEngine an, die nicht nur für die Funktion "Gehe zu Zeile X", sondern auch für den Debugger zum Auffinden der aktuellen Quellcodezeile gebraucht wird. Um da einen Workaround zu schreiben, brauche ich zu viel Zeit, die ich bei Verwendung der Delphi Synedit Kompos für anderes verwenden kann.

Außerdem, hat nicht jemand Kylix, um die IDE wenigstens für linux zu übersetzen? Im Zweifelsfall müsste ich die SpTBX- und Toolbar-2000 KOmponenten aus der IDE entfernen. Toolbars gibt es ja auch von der IDE her. Wie sieht es mit Delphi auf den anderen Plattformen aus? Gibt es das wirklich nur für Windows?

Und wie steht es mit WINE, dem Windoes Emulator auf Linux? Was wäre, wenn die IDE dort liefe?
Dann wäre sie schon mal für Linux verfügbar. Ist zwar vom Design her dann nicht so schön, wie wenn die IDE direkt auf Linux läuft, aber ist doch erst mal egal, wie das Betriebssystem die Software zum Laufen kriegt. Sofern die Performance nicht wesentlich darunter leidet.

Ok, dann würde die IDE für Linux verwendbar sein, falls sie auf WINE läuft. Aber auf ARM, MAC...?


Was heißt "die IDE auf externen Rechnern" betreiben?

Statt SSH spreche ich den Debugger über die Message WM_COPYDATA an. Ich gebe dann einen String mit.
Von der IDE zum Debugger enthält dieser String die Kommandos für den Debugger, Vom Debugger zur IDE kommen die ERgebnisse der Ausdruckauswertungen, Name der aktuellen Quelldatei, Quellcodezeile, Funktionsname...

Ich muss die Lazarus Version des Debuggers verwenden, wegen der Portabilitätsprobleme und wegen des
von Embarcadero verschiedenen Debuginfo Formates.

Wie umfangreich werden da die Änderungen, um die Übertragung der Botschaften statt mit Windows Messages mit SSH zu machen?

Das ist in der aktuell downloadbaren Version noch nicht enthalten, ein Update der IDE folgt, sobald der Debugger funzt.

Die Debuggerquellen nach Delphi portieren scheitert an den Unterschieden in den beiden Pascal Dialekten.

Wie könnte ich das mit SSH erreichen?


Zitat von Hisoka:
aber hier fehlen mir die Grundgedanken von Free Pascal. Denn die Anwendung ist weder offen noch für mehrere Plattformen gedacht.
Wenn die IDE für Freepascal übernommen wird, wird sie Open Source. Windows Only liegt an der mangelnden Portabilität des Pascal Codes.
Bezüglich Synedit-Kompos hat es sicher einen Grund, warum die auf Lazarus nicht so umfangreich sind.
Oben hab ich schon gesagt, was mir da fehlt. Wenn jemand versucht, die IDE für Lazarus zu übersetzen, dürfte er, wenn ich die verwendeten Fremdkomponenten entferne, an genau dieser Stelle scheitern.

Außerdem habe ich in der IDE für den Directory Dialog das ShellTreeView eingesetzt, weil kein fertiger Directory-Auswahldialog in Delphi da ist. Den gibt es aber wiederum in Lazarus.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
 
#23
  Alt 10. Feb 2010, 21:43
Zitat von schöni:
Und wie steht es mit WINE, dem Windoes Emulator auf Linux? Was wäre, wenn die IDE dort liefe?
Dann wäre sie schon mal für Linux verfügbar. Ist zwar vom Design her dann nicht so schön, wie wenn die IDE direkt auf Linux läuft, aber ist doch erst mal egal, wie das Betriebssystem die Software zum Laufen kriegt. Sofern die Performance nicht wesentlich darunter leidet.

Ok, dann würde die IDE für Linux verwendbar sein, falls sie auf WINE läuft. Aber auf ARM, MAC...?
Wenn du die IDE aber unter Wine laufen lässt, dann kannst du keine Programme für Linux kompilieren. Und unter Windows für Linux kompillieren ist quasi kaum (oder nur schwer) möglich.
米斯蘭迪爾
  Mit Zitat antworten Zitat
schöni

 
Delphi 7 Personal
 
#24
  Alt 10. Feb 2010, 21:52
Zitat von Daniel G:
Zitat von schöni:
Und wie steht es mit WINE, dem Windoes Emulator auf Linux? Was wäre, wenn die IDE dort liefe?
Dann wäre sie schon mal für Linux verfügbar. Ist zwar vom Design her dann nicht so schön, wie wenn die IDE direkt auf Linux läuft, aber ist doch erst mal egal, wie das Betriebssystem die Software zum Laufen kriegt. Sofern die Performance nicht wesentlich darunter leidet.

Ok, dann würde die IDE für Linux verwendbar sein, falls sie auf WINE läuft. Aber auf ARM, MAC...?
Wenn du die IDE aber unter Wine laufen lässt, dann kannst du keine Programme für Linux kompilieren. Und unter Windows für Linux kompillieren ist quasi kaum (oder nur schwer) möglich.
Wieso nicht für Linux kompilieren? Kann die IDE auf der Linuxseite nicht entweder, wie man es unter Windows machen würde, für die Linux Plattform übersetzen? Oder gleich den auf der Linux Plattform installierten Freepascal Compiler aufrufen. Die IDE bietet einen Toolsdialog an, der die Einrichtung des Compilers für die IDE erlaubt. Die IDE verwendet den Kommandozeilencompiler. Und wenn da derjenige auf der Linux-Plattform im Toolsdialog verfügbar gemacht wird. Im Menüpunkt "Compilieren" gibt es die Option "Zielplattform". Dort zum Beispiel "Linux" einstellen und fertig. Wüsste nicht, warum das nicht klappen sollte. Aus allen gesetzten Optionen baut die IDE eine Kommandozeile, die dem Compiler übergeben wird. Und wenn da als Zielplattform Linux eingestellt ist und noch dazu zwar die IDE auf WINE liefe, diese aber den FPC Compiler der Linuxplattform einbindet?

Wer die downloadbare IDE auf seinen Rechner lädt, muss zuerst seinen Freepascal Compiler in der IDE als Tool einrichten. Der Dialog dazu ist genau so aufgebaut, wie der in Delphi eingebaute.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
 
#25
  Alt 10. Feb 2010, 22:00
Hm, ok, ich hab gedacht, WINE sei ein Emulator. Erst jetzt habe ich gelesen, was der Name "WINE" eigentlich bedeutet.
米斯蘭迪爾
  Mit Zitat antworten Zitat
Hisoka

 
FreePascal / Lazarus
 
#26
  Alt 10. Feb 2010, 23:00
Der Name Hinter WINE sagt nicht alles. Aber der wichtige Punkt ist, niemand will eine halb funktionierende IDE und erst recht will niemand ein Windows Programm unter Linux laufen lassen wenn es nicht notwendig ist. Da sich WINE Anwendungen nicht ins System einpflegen und da die WinAPI nur teilweise funktioniert, ist eine solche Lösung nie optimal.


Also so würde es wohl kein ersatz werden. Auch glaube das die Free Pascal Entwickler keine IDE wollen würden die nicht portabel ist. Denn viele der Lazarus/FPC Entwickler stammen aus dem Linux Lager und dort will man native Anwendungen.


Ich glaube ich Spreche für viele Linux Nutzer wenn ich sage: Ich nutze lieber VIM zum Entwickeln als eine IDE die WINE nutzt. Gerade im Delphi Bereich dürften die Linuxnutzer immer noch ein Trauma von Kylix haben, denn das war genau das was du versuchst und es wurde schlecht akzeptiert.


Zur IDE selbst:
sie startet zumindest unter WINE, aber wirklich toll ist sie nicht. Also selbst der Lazarus Code Editor scheint besser zu sein. Da muss also noch etwas nach gebessert werden.(Tabs funktionieren nicht)
dazu können "X" zum schließen von Tabs nicht schaden.
Auch frage ich mich was die Leiste unten soll. Sie nimmt Platz weg und bringt nichts oder?
Für später wären Programmvorlagen vielleicht nicht schlecht.

Ansonsten ein netter Anfang aber wie schon erwähnt nichts für mich. Ich mag es wenn die Anwendungen in meinem System einheitlich sind.
  Mit Zitat antworten Zitat
Daniel

 
Delphi 10.4 Sydney
 
#27
  Alt 11. Feb 2010, 07:36


Also eigentlich hat das Thema damit begonnen, dass Schöni eine auf seine Bedürfnisse zugeschnittene IDE erstellen wollte. Der Spaß und die Freude am Projekt dürften da wohl mit ein nennenswerter Aspekt in der Motivation gewesen sein. Ich hatte nicht den Eindruck, dass dieses Projekt jegliche Bedürfnisse befriedigen soll oder gar in Konkurrenz zu Projekten wie Lazarus, Eclipse oder dem VisualStudio treten soll.
Daniel R. Wolf
  Mit Zitat antworten Zitat
mse1
 
#28
  Alt 11. Feb 2010, 07:47
Zitat von schöni:
Wäre nett vom Entwicklungsteam, da mal defaultmäßig Nutzerfreundlichere Einstellungen vorzunehmen. Wer die OPtik dann wieder so haben will, wie sie jetzt ist, kann ja die Readme Datei studieren und gemäß den dortigen Anweisungen die Einstellungen anpassen.
Die relevanten Zeilen lauten:
Zitat:
4. Run 'yourdirectory/bin/mseide' on linux or
'yourdirectory\bin\mseide.exe' on windows.
5. In 'Settings'-'Configure MSEide'-'${MSEDIR}' select 'yourdirectory/msegui'.
6. In 'Project'-'Open' select 'yourdirectory/msegui/apps/demo/demo.prj'.
7. 'Target'-'Continue'.
5. ist unter anderem darum notwendig, damit MSEide die Syntax-Definitionsdateien findet.
MSEide kann nämlich nicht nur Pascal Texte auszeichnen, sondern mit entsprechenden Definitionsdateien beliebige Programmiersprachen. Mitgeliefert werden Definitionen für Pascal, C/C++ und SQL, weitere kannst du selbst schreiben, es ist einfacher ASCII-Text. Aber eben, diese Dateien befinden sich im Entwicklungsumgebungs-Paket und sind nicht nicht im exe eingebaut.
Das exe hat auch keine vollständige Fenster Einstellungen, diese befinden sich in anpassbaren Projekt-Templates welche ebenfalls im Entwicklungsumgebungspaket enthalten sind.
Zitat:
In Lazarus erscheint auch Quelltexteditor und Formdesigner bereits beim Start und das Syntaxhighlighting ist defaultmäßig eingeschaltet, auch dann, wenn ich es versäumt habe, die Readme zu lesen.
MSEide wird nicht nur zur Entwicklung von MSEgui-Pascal Programmen verwendet, sondern zum Beispiel auch für embedded Projekte mit AVR32 in C, wo der Formulardesigner keinen Sinn macht.
Zitat:
Die Quelltexte sind inzwischen so umfangreich, das ich, um das Verhalten der IDE zu ändern ebenso lange brauche um die Quelltexte im erforderlichen Umfang zu verstehen, wie ich brauche, um meine IDE auf diesen Entwicklungsstand zu bringen.
Das bezweifle ich. Der Entwicklunsaufwand für MSEide+MSEgui betrug etwa 14'000 Stunden bis zur vollen Funktionalität.
Für eine einfache IDE mit integriertem debugger (gdb) musst du mit etwa 2000 Stunden rechnen. Inklusive Formulardesigner und entsprechendem Widgetset geht es kaum unter 10'000 Stunden.

Zitat:
Was heißt "die IDE auf externen Rechnern" betreiben?

Statt SSH spreche ich den Debugger über die Message WM_COPYDATA an. Ich gebe dann einen String mit.
Von der IDE zum Debugger enthält dieser String die Kommandos für den Debugger, Vom Debugger zur IDE kommen die ERgebnisse der Ausdruckauswertungen, Name der aktuellen Quelldatei, Quellcodezeile, Funktionsname...
Das heisst, dass IDE, Compiler und Debugger auf einem fremden System unter möglicherweise anderem Betriebssystem laufen. Lediglich die Anzeige läuft auf dem lokalen Computer.
Da fp in einem Textterminal angezeigt wird, sind die Anforderungen an die Übertragungskapazität vom/zum entfernten Rechner niedrig.
Zitat:
Ich muss die Lazarus Version des Debuggers verwenden, wegen der Portabilitätsprobleme und wegen des
von Embarcadero verschiedenen Debuginfo Formates.

Wie umfangreich werden da die Änderungen, um die Übertragung der Botschaften statt mit Windows Messages mit SSH zu machen?
Das wäre dann gdb. Die Dokumentation ist hier:
http://sourceware.org/gdb/current/onlinedocs/gdb/
Beachte vor allem den Bereich GDB/MI.
Bei Remote-Debugging läuft lediglich ein Teil des Debuggers (gdbserver) und das zu testende Programm auf dem entfernten Rechner. Die Verbindung von gdb (läuft auf dem lokalen Rechner) und gdbserver (läuft auf dem entfernten Rechner) geschieht dabei z.B. mit TCP/IP und passiert gdb intern, darum musst du dich nicht kümmern.

Martin
Martin Schreiber
  Mit Zitat antworten Zitat
mse1
 
#29
  Alt 11. Feb 2010, 07:55
Zitat von Daniel:


Also eigentlich hat das Thema damit begonnen, dass Schöni eine auf seine Bedürfnisse zugeschnittene IDE erstellen wollte.
schöni möchte, dass das FPC-Team die textbasierte fp IDE durch seine graphische IDE ersetzt. Damit dies möglich wird, sind einige Grundvoraussetzungen notwendig.
Martin Schreiber
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#30
  Alt 11. Feb 2010, 08:48
Bitte macht ein eigene Thema für MSE und Co. auf. Diese(s) könnt ihr dann hier verlinken.
Hier sollte es nur um die IDE von Schöni gehen!
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 7     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz