 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Wie findest du das Projekt? |
Gut |
|
86% |
[ 19 ] |
Schlecht |
|
0% |
[ 0 ] |
Interessiert mich nicht! |
|
13% |
[ 3 ] |
|
Stimmen insgesamt : 22 |
|
Autor |
Nachricht |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 19.01.2010, 20:47 Titel: |
|
|
Nein, kein Header. Das soll ganz normaler Quelltext sein, der einfach im Quelltext an passender Stelle (am besten ganz am Anfang) eingefügt wird und natürlich editierbar ist.
Mir fällt gerade noch was ein: Es geht um die - möglichst komfortable - Deklaration / Dimensionierung von Variablen. Da finde ich es zunächst prinzipiell übersichtlicher, wenn Variablen nicht mitten im Quellcode deklariert werden, sondern jeweils direkt am Anfang des Unter/Haupt—Programms.
Das erfordert jedoch eine ziemlich mühsame Hin- und Her-Springerei im Quelltext. Wie wäre es, wenn die IDE das besorgt?
Also, sobald eine nicht deklarierte Variable verwendet wird, stellt die IDE das fest, springt an den Kopf des Unterprogramms und unterbreitet einen Vorschlag zur Dimensionierung. Der Benutzer hat dann folgende Auswahlmöglichkeiten:
- Den Vorschlag übernehmen / ändern / verwerfen
- Das Ganze eine Ebene höher in das Hauptprogramm transferieren. Wobei das Spiel dort wieder wie gehabt beginnen kann.
Sobald die Deklaration beendet oder auch gar nicht erfolgt ist, springt mittels „shortcut“ der Cursor wieder an die ursprüngliche Ausgangsposition im Quellcode zurück.
Noch mehr Vorschläge gefällig oder langt’s langsam? |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 19.01.2010, 20:54 Titel: |
|
|
Ich nehme immer alle Vorschläge an und freue mich, deine bisherigen waren auch ziemlich gut.
Bei dem neuesten bin ich mir über die Machbarkeit nicht sicher.
Und zum Thema Header: Wenn meine IDE automatisch einen Header mit Deklerationen schreibt und den dann automatisch ganz oben einfügt kommt das meines Wissens nach auf das gleiche raus wie wenn man die Dekleration ganz oben einfügt. Wenn es einen Grund dagegen gibt kannst du mich gerne verbessern.
Deine Vorschläge hab ich mir alle aufgeschrieben, gerade gibt es größere Umbauten intern, aber sobald das fertig ist gehts mit den kleineren Sachen weiter. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 19.01.2010, 21:28 Titel: |
|
|
Die Planungsphase für Vererbung ist jetzt abgeschlossen.
Ich schreibe hier nur, dass wenn ich einen riesigen Fehler übersehen habe, der noch erkannt wird.
Also, der Syntax wird wie folgt sein:
Code: | type a
i as integer
declare sub p()
end type
sub a.p()
print i
end sub
type b
a_Interface()
i2 as integer
end type
a_Impl(b)
type c
b_Interface()
end type
b_Impl(c)
dim as c b1
b1.i = 76
b1.p()
sleep |
Anstatt eine Zeile "extends parentName" sind es zwei Zeilen, da zwei Zeilen kaum mehr sind aber das mir so sehr viel Aufwand abnimmt. Das erste ist ein Makro, dass die Dekleration vererbt, das zweite die Implementierung. Ich habe das Konzept schon getestet und es funktioniert, auch mit Ketten von Vererbungen (hier: a->b->c).
Es kommt noch besser: Die aus C++ bekannte Mehrfachvererbung, die nur von wenigen Sprachen unterstützt wird, funktioniert bei diesem Konzept. Wenn irgendjemand noch Einwände hat wäre es gut, wenn er sie jetzt nennt. Und das eine Zeile besser als zwei wäre ist mir klar, aber mir wird wirklich sehr viel Arbeit erspart. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.01.2010, 21:32 Titel: |
|
|
SL hat Folgendes geschrieben: | Nein, kein Header. Das soll ganz normaler Quelltext sein, der einfach im Quelltext an passender Stelle (am besten ganz am Anfang) eingefügt wird und natürlich editierbar ist.
|
Warum denn nicht in einer Header-Datei? Die sind schließlich auch in anderne Sprachen genau für so was gedacht. "Weil VBDOS es so machte"? Alt ist nicht immer gut! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 19.01.2010, 23:37 Titel: |
|
|
Jojo hat Folgendes geschrieben: | "Weil VBDOS es so machte"? Alt ist nicht immer gut! |
Nein, DOS ist mausetot! Doch so umwerfend sind die Fortschritte bei FB auch nicht. Als VBDOS noch "lebte" konnte man problemlos auf Papier drucken, Schriftarten und Schriftgröße einstellen (na gut, allzu viele waren es nicht) und genau bestimmen in welcher Zeile und Spalte der Buchstabe auf’s Papier sollte. Wie geht das mit FB?
(Sorry Stueber, das war jetzt eine ziemliche Thema-Abweichung. Ich hätte dir ja gerne zur "Vererbung" was geschrieben, doch ehrlich gesagt, ich werde das vermutlich nicht benötigen und Ahnung habe ich davon auch keine. Bei mir ist das "B" von "BASIC“ wörtlich zu nehmen.) |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.01.2010, 23:45 Titel: |
|
|
naja, das hat eher wenig mit FB als mit der wesentlich höhren abstraktionsebene der windows-druck-api zu tun.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 20.01.2010, 18:41 Titel: |
|
|
Mächtige APIs sind meistens eben mehr oder weniger Komplex. Und mit der GDI ist es fast kein Unterschied (Nein, es ist eigentlich überhaupt kein Unterschied...) ob man auf einen Bildschirm zeichnet, mit einem Drucker druckt (Ob nun lokal, übers Netzwerk oder übers Internet oder auf einem virtuellen Drucker, macht btw. auch keinen Unterschied im Quellcode) oder z.B. auf einem Plotter. Oder auf einem Webstuhl. Oder.... |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 20.01.2010, 20:58 Titel: |
|
|
Zitat: | Also, sobald eine nicht deklarierte Variable verwendet wird, stellt die IDE das fest, springt an den Kopf des Unterprogramms und unterbreitet einen Vorschlag zur Dimensionierung. Der Benutzer hat dann folgende Auswahlmöglichkeiten |
Ich bitte zu beachten, dass die Variablendeklaration vielleicht auch nur im aktuellen SCOPE-Block gewünscht ist, z. B. in der aktuellen Schleife oder in der Schleife drumherum usw. Halte ich für recht kompliziert, wenn ich mich in einem stark verschachtelten Konstrukt erst mal nach außen vorarbeiten muss. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 22.01.2010, 13:53 Titel: |
|
|
Ich halte das auch für etwas kompliziert.
Aber dafür kann ich etwas neues Berichten:
Schaut euch diesen Quelltext an:
Code: | type a
public:
i as integer
declare sub p()
end type
sub a.p()
print i
end sub
type b extends a
i2 as integer
declare sub p3()
end type
sub b.p3()
i = 4
end sub
type c extends b
end type
dim as c t
t.i = 33
t.p3()
t.p()
sleep |
Was er macht sollte den meisten klar sein: Er erzeugt eine Instanz von c, setzt den Member i auf 33, ruft dann das sub p3() auf und dann noch das sub p().
Wie man aber der Dekleration entnehmen kann hat der Type c gar keine Member. Trotzdem funktioniert das kompilieren bei mir ohne Probleme. Der Trick ist, dass vor dem Compilieren der Code nochmal temporär verarbeitet wird. Alle Type-Deklerationen werden von meinem Tool gelesen, umgeschrieben und wieder in die .bas Datei geschrieben. Dabei werden Variablen in Propertys umgesetzt. Als Schlüsselwort dient hier "extends". Wenn ihr Screenshots oder ein Video sehen wollt lad ich sowas gerne hoch. Ich schätze, dass ich das eigentliche Programm heute Abend hochladen kann. |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 22.01.2010, 14:31 Titel: |
|
|
Eventuell solltest du deine bemühungen den compiler zu erweitern, bzw auszutricksen ausgliedern und fortsetzen. Das an die IDE zu binden ist in meinen augen verschwendung. Der Vor-compiler von dir scheint ja schon einiges zu können. Eventuell solltest du das auch im Englischen Forum publizieren, damit sich die entwickler was abgucken können  _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 22.01.2010, 14:33 Titel: |
|
|
Der ist nicht an die IDE gebunden.
Der funktioniert mit jeder IDE, die ganzen Test hab ich mit FBIde gemacht, ohne Probleme. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 22.01.2010, 16:06 Titel: |
|
|
Ja das ist ja das Tolle, dass es ein externes Modul ist.
Ist erfreulich, dass du das doch noch mit der "extends"-Syntax umgesetzt hast und ins englische Forum gehört das sowieso, sag ich ja schon seit langem  |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 22.01.2010, 19:01 Titel: |
|
|
Ist jetzt im englischen Forum.
Ihr könnt den Vorcompiler jetzt testen.
http://users.freebasic-portal.de/stueber/Tools/pre.zip
Die Installation ist einfach:
1. öffne deinen FB Ordner
2. Downloaded und entpackt pre.zip
3. benennt fbc.exe im FB Ordner um in fbc2.exe
4. kopiert QtCore4.dll, mingwm10.dll, libgcc_s_dw2-1 und fbc.exe aus pre.zip in deinen FB Ordner
Jetzt kannst du den Vorcompiler mit jeder IDE benutzen. (FBIde hab ich getestet)
Die Version enthält auch einfache Templates. Beispiel:
Code: | template container
As t1 var1
Declare Sub p()
End template
Sub container.p()
Print var1
End Sub
Dim As container<<<string>>> c
c.var1 = "Hallo2"
c.p()
Dim As container<<<integer>>> c2
c2.var1 = 42
c2.p()
Sleep
|
Der Code läuft auch mit dem Vorcompiler.
Templates sind aber viel weniger entwickelt als Vererbung, sowohl technisch als auch von den Bugs her.
Bekannte Fehler:
Private und Public werden nicht richtig vererbt. (daran arbeite ich gerade)
Eventuell sind Endlosschleifen möglich, aber selten.
Im Zusammenhang mit Types sollte kein : und _ verwendet werden, der Code ist sonst in den meisten Fällen fehlerhaft.
Zeilennummern von Fehlern stimmen nicht.
Der Quelltext liegt bei und steht unter der GPL. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 28.01.2010, 20:42 Titel: |
|
|
Der PreCompiler ermöglicht ja schon Vererbung und Templates, der nächste Schritt wären dann Klassen.
Wie wäre es damit:
Code: | Class MyClass
Constructor ()
x = 5
y = 5
End Constructor
As Integer x
As Integer y
Method methode_function() As Integer
Return x
End Method
Method methode_sub()
Print y
End Method
End Class |
Der Vorteil von FB ist, dass die Types quasi schon Klassen sind, nur haben sie Einschränkungen. Dieser Code ließe sich durch leichte Anpassungen sofort compilieren.
Daraus müsste in etwa folgendes werden:
Code: | Type _MyClass
Declare Constructor()
As Integer x
As Integer y
Declare Function method_function() As Integer
Declare Sub method_sub()
End Type
Constructor _MyClass()
x = 5
y = 5
End Constructor
Function _MyClass.method_function() As Integer
Return x
End Function
Sub _MyClass.method_sub()
Print y
End Sub
Dim As _MyClass MyClass |
Eine Methode mit Rückgabewert ist eine Function und ohne eine Sub. Die "In-Class"-Methoden müssten also gegen entsprechende Deklarationen ersetzt werden und der Code hinter die Klasse kopiert werden.
Das Ganze müsste dann wieder mit der Vererbung zusammenlaufen aber generell sollte das doch ne gute Lösung sein.  |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 29.01.2010, 22:25 Titel: |
|
|
@modd: wie im IRC besprochen, kann man machen.
So, es ist Freitag Abend. Lange ist es her dass es etwas neues zur eigentlichen IDE gab. Heute habe ich zwar nichts neues fertiges aber hier ist mal ein Bild zum neuen Designer:
Die Neuerungen:
- Property Manager (an Stelle von Dialogen), als DockWidget
- Controls werden über einen Baum ausgewählt (an Stelle des Dialogs), auch als DockWidget
Dann noch die wichtigste Änderung, die eigentlich der Grund für das Neuschreiben war:
Früher waren Buttons, Checkboxen, etc. fest im Quelltext des Designers integriert. Auch alle Einstellungen waren fest im Quelltext eingebaut. Das Hinzufügen eines neuen Controls war schwer und der Quelltext war schwer nachzuvollziehen. Das alles hat dazu geführt das der Designer nur schwer zu pflegen war, daher habe ich alle genannten Probleme behoben.
Man könnte sich fragen wie man Buttons setzen kann wenn es doch nicht im Quelltext steht. Die Lösung sind XML Dateien. Der Designer ist eigentlich kein Designer sondern ein XML Parser. Er stellt nur Widgets zur Verfügung die in den XML Dateien beschrieben sind und baut dann aus Informationen in den XML Dateien eine Ausgabe Datei. Diese Ausgabe Datei ist auch eine XML Datei die von der IDE unmittelbar vor dem Compilieren in eine temporäre .bas Datei umgewandelt wird, ebenfalls nach den Regeln in der XML Datei.
So sieht eine XML Datei für ein Control aus (Beispiel: Button):
Code: | <Controls>
<ControlName>Button</ControlName>
<Template>QPushButton</Template>
<Lib>Winapi</Lib>
<Type>Buttons</Type>
<Property>
<Name>text</Name>
<Type>string</Type>
<MustHave>true</MustHave>
<Default>Button-Text</Default>
<ScriptValueChange>widget2.setButtonText(new_value)</ScriptValueChange>
</Property>
<Property>
<Name>x</Name>
<Type>integer</Type>
<MustHave>false</MustHave>
<Default>0</Default>
<Min>0</Min>
<Max>3000</Max>
<Tooltip>X-Position des Fensters</Tooltip>
<ScriptValueChange>widget2.moveWidget(new_value,y);</ScriptValueChange>
</Property>
<Property>
<Name>y</Name>
<Type>integer</Type>
<MustHave>false</MustHave>
<Default>0</Default>
<Min>0</Min>
<Max>3000</Max>
<Tooltip>Y-Position des Fensters</Tooltip>
<ScriptValueChange>widget2.moveWidget(x,new_value)</ScriptValueChange>
</Property>
<Property>
<Name>width</Name>
<Type>integer</Type>
<MustHave>false</MustHave>
<Default>100</Default>
<Min>0</Min>
<Max>3000</Max>
<Tooltip>Breite des Fensters</Tooltip>
<ScriptValueChange>widget2.resizeWidget(new_value,height)</ScriptValueChange>
</Property>
<Property>
<Name>height</Name>
<Type>integer</Type>
<MustHave>false</MustHave>
<Default>60</Default>
<Min>0</Min>
<Max>3000</Max>
<Tooltip>Höhe des Fensters</Tooltip>
<ScriptValueChange>widget2.resizeWidget(width,new_value)</ScriptValueChange>
</Property>
</Controls> |
Auch der Zusammenhang zwischen Bspw. dem Property width und der Breite in der Vorschau wird nicht im Designer Quelltext festgelegt. Der Zusammenhang wird über Scripts gemacht, die Scriptsprache hat Schleifen, Bedingungen, Funktionen und sogar Objekte. Das wird erreicht durch die Script Klassen von Qt.
Eventuelle Fragen oder Vorschläge werden wie immer beachtet und beantwortet. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 06.02.2010, 23:22 Titel: Designer 2.0 |
|
|
Der Designer der bei der aktuellen öffentlichen Version der IDE dabei ist, ist ja ganz nett, aber er hat einige Schwachstellen:
- unübersichtlich (überall Dialoge)
- komplizierter Quelltext
- Eigenschaften und Controls hinzufügen dauert ewig und ist für nicht-Experten kaum machbar
- zurückparsen zur Vorschau sehr Fehleranfällig und kaum verwandbar
In einigen Chats mit Sebastian haben wir dafür eine Lösung gesucht die ich heute vorstelle.
Alle Informationen die der Designer benutzt (Controls, Eigenschaften, Reaktion auf ändern der Eigenschaften) werden extern vom Programm gelagert. Die Beschreibung von Controls und Eigenschaften wird über .xml Dateien gemacht (weiter oben ein Beispiel) und die Reaktion auf das Ändern einer Eigenschaft wird gescriptet, ist also frei anpassbar, Bsp. das Ändern der Buttonbeschriftung beim Ändern der Eigenschaft "text".
Ausserdem werden die Controls jetzt nicht mehr über einen Dialog erzeugt, sondern werden über einen viel übersichtlicheren Baum erzeugt.
Auch Eigenschaften werden nicht mehr über Dialoge geändert, dafür wird jetzt ein Propertymanager verwendet.
Features:
- Drag'n'drop für Position und Größe der Controls
- Controls werden in .xml Dateien beschrieben
- Eigenschaften auch
- Die Kategorien im Control Baum sind auch frei erzeugbar
- Winapi und GTK
- Zusammenhänge werden gescriptet
- erweiterbar auf beliebige andere Bibliotheken (wenn das Layout-Management ähnlich dem von Winapi oder GTK ist)
- plattformunabhängig
- Management von Parent->Child
Download: hier
Da der GTK Modus noch nicht fertig ist entfällt ein Linux Download.
Wenn der Designer fertig ist wird er fest in die IDE integriert.
Das Modul das die Ausgabe .xml Dateien verwendbar macht folgt in den nächsten Tagen.
Screenhots:
Der ganze Designer
Der Control-Baum
Der Propertymanager
 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 07.02.2010, 18:50 Titel: |
|
|
Ich hab den Designer etwas getestet und folgendes ist mir aufgefallen:
Ohne Window geht ja gar nichts, also sollte der Container/Window immer offen sein und am besten ganz oben stehen.
Aus der Windowswelt ist man Doppelklicks gewöhnt, beim Designer werden dabei aber immer zwei Elemente erzeugt.
Wenn man beispielsweise einen Button erzeugt hat und danach eine Liste erstellen will, muss man erst wieder ins eignetliche Fenster klicken, also raus aus dem Button, sonst wird die Liste in den Button gesetzt und man kann nichts mit anfangen. Dementsprechend sieht die erzeugte XML auch aus, eins ins andere verwurschtelt.
Ansonsten lief das Ganze bei mir sehr flüssig und auch ohne Abstürze
Wenn man das dann noch in sein Projekt einbinden kann, werd ich wieder etwas testen. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 08.02.2010, 21:11 Titel: |
|
|
Hab mal ein paar Kritikpunkte verbessert und neue Features eingebaut:
- Controls werden über Doppelklicks eingefügt
- Fenster haben wie die anderen Controls auch die schwarzen Quadrate für die Größe
- eine Baumansicht mit allen Controls die man gesetzt hat und die Möglichkeit ihnen Namen zu geben für bessere Übersicht im Baum und im späteren XML
- viele Fehler wurden behoben |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 11.02.2010, 22:55 Titel: |
|
|
Heute hat sich viel getan bei der IDE, deswegen ein kurzer Statusbericht:
- Der Designer ist jetzt komplett in die IDE integriert
- Das Kompilieren von XML Dateien ist jetzt mit der IDE möglich und wurde erfolgreich von mir getestet
- Ich habe angefangen auf Scintilla umzusteigen und bin schneller voran gekommen als gedacht. Da ich schon die meisten wichtigen Funktionen des alten Code Editors nachgebaut habe folgt bald eine neue IDE Version. Durch Scintilla werden bald Features wie Codefalten, Codetips und Autovervollständigung möglich.
- Das Laden von Guis ist fast fertig und wird in der nächsten Version dabei sein.
Update:
Der neue Syntax-Highlighter ist gerade fertig geworden. Er highlightet viel schneller als der alte und behebt viele Bugs des alten. Ausserdem kann er jetzt mit Präprozessoren und Operatoren umgehen, was der alte nicht konnte.
Hier ein Screenshot davon:
Update2: Ich habe gerade festgestellt dass FreeBASIC auch mehrzeilige Kommentare hat. Der neue Syntaxhighlighter kann jetzt auch mit mehrzeiligen Kommentaren umgehen. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 14.02.2010, 22:44 Titel: |
|
|
So, in den letzten Wochen hat sich viel rund um die IDE getan, deswegen stell ich euch jetzt mal die aktuellste Version vor, auch wenn ich mir für diese Version viel mehr Ziele gesetzt hatte als ich erreicht habe.
Neue Features
Neuer GUI-Designer
Wie man meinen letzten Posts entnehmen kann habe ich einen neuen GUI Designer entwickelt, der auf XML-Dateien basiert und viele Vorteile im Vergleich zum alten bringt.
Er erzeugt ein XML das kurz vor dem Kompilieren in Code umgesetzt wird. Ausserdem kann er die XML Dateien wieder laden um die GUI weiter zu bearbeiten. Die Bedienung wurde auch verbessert.
Einstellungen werden über einen Property-Browser gemacht, alle Widgets die gesetzt wurden werden in einen Control-Baum eingefügt und Widgets werden über einen Baum erzeugt (anstatt über Buttons).
Auch fällt vermutlich auf, dass nicht jedes Control immer die schwarzen Quadrate hat sondern nur das Control mit dem Fokus.
http://users.freebasic-portal.de/stueber/bilder/designer.PNG
So gehts:
1. Ein neues Projekt anlegen
2. Klick auf Projekt->GUI Designer
3. Nach dem "designen" auf Designer->XML erzeugen klicken
4. Als Speicherort den Projektpfad wählen und dem XML einen Namen geben.
5. Eine leere Datei zum Projekt hinzufügen oder eine .bas Datei öffnen.
6. Mit "declare sub gui_xml()" die GUI Funktion deklarieren und mit gui_xml() die GUI erzeugen.
Neue Projektdateien
Man könnte meinen dass das kein Feature ist. Damit hätte man eigentlich auch recht aber durch die neuen Projektdateien kommen zwei neue Features hinzu.
Zum einen das Speichern von Profilen zum kompilieren. Beim erzeugen eines neuen Projekts werden die beiden Profile "Debug" und "Release" erzeugt, aber man kann theoretisch unendlich viele verwenden. Mit einem Klick in der Toolbar kann das aktuelle Profil geändert werden.
Die zweite Neuerung ist zwar klein aber für viele Leute sehr wichtig: Es werden jetzt relative Pfade benutzt. Um genau zu sein müssen alls .bas Dateien sich sogar im Ordner der Projektdatei befinden (wird noch ein bisschen freier gemacht).
Durch die neuen Projektdateien können die alten Projektdateien natürlich nicht mehr verwendet werden.
Neuer Einstellungsdialog
In der Vergangenheit kam oft der Wunsch mehr einstellen zu können.
Der neue Einstellungsdialog enthält zwar noch nicht alle Einstellungen die sinnvoll wären aber lässt dafür viele Einstellungen im Bezug auf den Syntaxhighlighter zu. In Zukunft wird sich in diesem Dialog noch viel mehr Einstellen lassen.
Umstieg auf Scintilla
Durch den Umstieg auf Scintilla sind viele wichtige Features wie Codefalten und Calltips in greifbare Nähe gerückt (wenn auch noch nicht eingebaut). Trotzdem wurden schon einige Kleinigkeiten von Scintilla in die IDE eingebaut:
- Der Zeilenzähler von Scintilla
- Zoom in und Zoom out
- Einrücken
- Ein neuer Syntax-Highlighter, der auch mit Präprozessoren und mehrzeiligen Kommentaren zurecht kommt und unterschiedliche Schriftgrößen erlaubt.
>>>Download<<<
Bekannte Probleme
- löschen von Widgets im Designer funktioniert noch nicht
- das Laden und Erzeugen von XML Dateien klappt zwar, aber das Codeerzeugen funktioniert nur mit Fenstern
- sehr lange mehrzeilige Kommentare werden nicht richtig hervorgehoben
Zukünftige Pläne:
Die nächste Version wird in ca. 2-4 Wochen erscheinen und folgende Features auf jedenfall mit sich bringen:
- Projektvorlagen
- Einen voll funktionsfähigen GUI-Designer
- mehr Einstellungen
- mehr Features von Scintilla sollen genutzt werden (Calltips)
Update:
Der GUI Designer tut jetzt wie er soll und das Löschen von Widgets ist jetzt auch möglich. Ausserdem wurde ein kritischer Bug behoben und der Designer hat jetzt 5 Controls zur Auswahl (es werden noch viel mehr ).
>>>Download<<< |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|