Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Lazarus 1.2 veröffentlicht (https://www.delphipraxis.net/179494-lazarus-1-2-veroeffentlicht.html)

michaelthuma 13. Mär 2014 13:05

AW: Lazarus 1.2 veröffentlicht
 
Für IntelliJ gibt es zumindest ein FPC Plugin ... zumindest FPC.PasIdea Grad auch in der community edition die Android support hat. Ist bestimmt noch einiges zu tun.

Zitat:

Zitat von QuickAndDirty (Beitrag 1251847)
Wenn man erstmal die LCL in 'nem Dynamisch linkbaren Package hat, ist es dann nicht auch möglich ein Freepascal+LCL Plugin für Visualstudio und Eclipse zu bauen?
:duck:


Sir Rufo 13. Mär 2014 14:22

AW: Lazarus 1.2 veröffentlicht
 
Zitat:

Zitat von JamesTKirk (Beitrag 1251813)
Zitat:

Zitat von Sir Rufo (Beitrag 1251605)
Und die Unterscheidung ob Datei oder Verzeichnis ist sowieso egal, der PathDelimiter am Ende darf einfach nicht entfernt oder angehängt werden.

Ich weiß grad leider nicht, wie's konkrekt umgesetzt wurde. Das müsste man also ausprobieren...

Nö, es kommt immer ein Ergebnis ohne PathDelimiter raus, egal was man da rein gibt ... kann doch nicht so schwer sein ... obwohl, evtl. war das vorher so und haben die das geändert, weil die meisten damit nicht zurechtkamen ;)

QuickAndDirty 13. Mär 2014 16:05

AW: Lazarus 1.2 veröffentlicht
 
Zitat:

Zitat von michaelthuma (Beitrag 1251857)
Für IntelliJ gibt es zumindest ein FPC Plugin ... zumindest FPC.PasIdea Grad auch in der community edition die Android support hat. Ist bestimmt noch einiges zu tun.

Zitat:

Zitat von QuickAndDirty (Beitrag 1251847)
Wenn man erstmal die LCL in 'nem Dynamisch linkbaren Package hat, ist es dann nicht auch möglich ein Freepascal+LCL Plugin für Visualstudio und Eclipse zu bauen?
:duck:


Super, aber wie bekommen wir da unseren visuellen GUI Editor?
Ich denke dazu braucht es dynamisch linkbare Packages.

michaelthuma 13. Mär 2014 16:39

AW: Lazarus 1.2 veröffentlicht
 
Wäre sehr ungewöhnlich würde ein GUI Editor in dem Umfeld mitgeliefert werden. Wer nimmt Java und Anverwandtes für visuelle Entwicklung... Das wird wohl für Lazarus oder ähnliche Alternativen reserviert bleiben. Ich finde allein recht nett, dass auch mal eine andere IDE überhaupt mal ein Pascal mitberücksichtigt.

Auch wenn bspw. sehr viel geschimpft wird über den FM. Das potentielle Interesse von jenen die solch eine erquickliche Kombi benötigen ist schon da oder wird zumindest als spannend bis praktisch empfunden. Genauso wie die DB Anbindung von FPC oder Delphi allgemein ...

Zitat:

Zitat von QuickAndDirty (Beitrag 1251881)
Zitat:

Zitat von michaelthuma (Beitrag 1251857)
Für IntelliJ gibt es zumindest ein FPC Plugin ... zumindest FPC.PasIdea Grad auch in der community edition die Android support hat. Ist bestimmt noch einiges zu tun.

Zitat:

Zitat von QuickAndDirty (Beitrag 1251847)
Wenn man erstmal die LCL in 'nem Dynamisch linkbaren Package hat, ist es dann nicht auch möglich ein Freepascal+LCL Plugin für Visualstudio und Eclipse zu bauen?
:duck:


Super, aber wie bekommen wir da unseren visuellen GUI Editor?
Ich denke dazu braucht es dynamisch linkbare Packages.


Popov 13. Mär 2014 18:29

AW: Lazarus 1.2 veröffentlicht
 
Zitat:

Zitat von Sir Rufo (Beitrag 1251864)
Nö, es kommt immer ein Ergebnis ohne PathDelimiter raus, egal was man da rein gibt ... kann doch nicht so schwer sein ... obwohl, evtl. war das vorher so und haben die das geändert, weil die meisten damit nicht zurechtkamen ;)

Ich persönlich vertraue nie drauf, dass da wo Path steht, immer auch ein PathDelimiter am Ende steht. Ich weiß, dass es bei ExtractFilePath so ist und dementsprechend bei ExtractFileDir nicht, also alles der Regel nach. Das sind aber auch die einzigen Funktionen denen ich blind vertraue, muss ich auch, denn das muß ja funktionieren: ExtractFilePath(s) + 'Datei.dat'. Ansonsten sind in meinen Codes tausende von IncludeTrailingPathDelimiter Funktionen verteilt. Selbst meinen Funktionen traue ich nicht, obwohl ich mich an die Konvention halt. Man kann es mal vergessen. Aber sicher ist sicher.

himitsu 13. Mär 2014 19:26

AW: Lazarus 1.2 veröffentlicht
 
Wobei ExtractFilePath und ExtractFileDir auch ihre Bugs haben.

Denn bei den Rootpfaden muß auch ein DIR den Backslash am Ende haben!

C: ist das Laufwerk, aber C:\ ist der Path/Dir, denn C: ist relativ zum CurrentDir des Laufwerks.

Sir Rufo 13. Mär 2014 19:37

AW: Lazarus 1.2 veröffentlicht
 
Zitat:

Zitat von himitsu (Beitrag 1251911)
Wobei ExtractFilePath und ExtractFileDir auch ihre Bugs haben.

Denn bei den Rootpfaden muß auch ein DIR den Backslash am Ende haben!

C: ist das Laufwerk, aber C:\ ist der Path/Dir, denn C: ist relativ zum CurrentDir des Laufwerks.

Das Root-Verzeichnis nimmt hier eine Sonderrolle ein, da es keinen Namen dafür gibt (Root ist nur eine Bezeichnung).
Es wird lediglich durch den Laufwerksbuchstaben (C:) bzw. Freigabe (\\myserver\data) und dem darauf folgenden PathDelimiter bestimmt.

JamesTKirk 14. Mär 2014 06:30

AW: Lazarus 1.2 veröffentlicht
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1251847)
Wenn man erstmal die LCL in 'nem Dynamisch linkbaren Package hat, ist es dann nicht auch möglich ein Freepascal+LCL Plugin für Visualstudio und Eclipse zu bauen?

Warum sollte ich mir dieses schwergewichtige Eclipse antun, wenn Lazarus um ein vielfaches performanter ist? Und die Unterstützung von Pascal Code (Refactoring, etc.) ist sicherlich auch nicht auf nem ähnlichen Level wie in Lazarus, da in letzterem die Entwickler selbst in Lazarus arbeiten und dadurch fehlende Featues leicht ins Auge fallen. Von Visual Studio will ich da noch gar nicht mal reden, das hat ja nichtmal rudimentären Pascal Support (das Oxygene Plugin mal ausgenommen).

Nichtsdestotrotz würde technisch natürlich nichts dagegen sprechen...

Zitat:

Zitat von Patito (Beitrag 1251851)
Nur Hersteller von GUI-Komponenten haben natürlich ein Problem, wenn sie eine Trial-Version herausgeben wollen.
Richtig kaufen sollte man solche Komponenten ja sowieso nicht ohne Source.

Ich glaub DevArt bietet ne Trial seiner *DAC Komponenten an, welche dann halt für ne bestimmte Free Pascal Version ist (wenn keine IDE-Integration benötigt wird, dann muss man es nichtmal von der Lazarus Version abhängig machen).

Gruß,
Sven

schöni 14. Mär 2014 08:45

AW: Lazarus 1.2 veröffentlicht
 
Zitat:

Zitat von JamesTKirk
Ja, das fehlt noch. Ich habe letztes Jahr mal damit begonnen, dass umzusetzen, aber überraschenderweise ist besonders die Unterstützung unter Windows recht schwierig (wegen indirekter Auflösung von globalen Variablen, die unterschiedlichen Code für Package/nicht-Package benötigt...)

Zitat:

Zitat von Patito
Zitat:

Zitat von QuickAndDirty
]
Ich arbeite gerne damit. Allerdings fehlt wirklich sowas wie ein Package-Konzept(dynamisch gelinkte Packages) für FreePascal!
Das erschwert unnötig einen Professionellen Ansatz mit massig zugekaufter Vorleistung.

Das habe ich früher auch mal gedacht, aber qualitativ gute 3rd-Party Libraries (für Excel, Word, pdf, CAD, Geräte-Steuersoftware...)
gibt es doch eher selten als (proprietäres versionsabhähgiges) Delphi-Packages, normalerweise kauft man so ein qualitativ hochwertiges
Ding als DLL. Dafür gibt es dann einen freien Open-Source Pascal-Wrapper und gut.

Hmmmm, so extrem lange dauert solche Neuübersetzung auch wieder nicht, aber es gibt bei fehlerhafter Programmierung den gravierenden Nachteil, das dann die Übersetzung fehl schlägt. Hatte das bei Lazarus 1.0.6. Jetzt hab ich die Version 1.0 installiert, mit derich sehr zufrieden bin. Die 1.2er Version hab ich noch nicht getestet. Werde das nur machen, wenn ich das unabhängig von meiner 1.0 Version machen kann.

Die hier zitierten Argumente relativieren das Package Problem nun auch wieder, aber für mich ist und bleibt dieses Problem auch ein interessanter Aspekt. Ich habe nämlich noch immer nicht verstanden, warum hier die totale Neuübersetzung überhaupt erforderlich ist. Mir ist klar, das dies der Fall ist, wenn die Komponenten als neue Units statisch eingebunden werden. ABER: Kann man diese nicht auch als normale Dlls einbinden, per Interfaces?

Ein Komponentenmanager könnte so aussehen (nur Interface)

type
IComponentFactory = Interface(IInterface)
function GetComponents(Index: Integer): TComponent;
procedure SetComponents(Index: Integer; value: TComponent);
property Components[Index]: TComponentList read GetComponents write SetComponents;
property ComponentCount: Integer; //Anzahl aktuell in IDE verfügbare Komponenten
end;

Nun müssten die Komponenten von außen per dll angeschlossen werden;

Wo ist da mein Denkfehler, wenn da einer ist? In den Eigenschaftseditoren gibt es doch auch Methoden wie Get/SetVerb u.a. die könnte man doch veranlassen, passenden Quelltext in den Codeeditor zu schreiben. Dabei sollte es egal sein, ob das von der IDE oder von der geladenen Dll aus passiert. Ich stelle die Frage jetzt mal hier. Bei genügend Interesse am Thema darf das auch in einen separaten Thread ausgelagert werden oder Ihr teilt hier mit, das ich bitte einen separaten Thread dazu auf machen soll. Soll ich?

QuickAndDirty 14. Mär 2014 09:23

AW: Lazarus 1.2 veröffentlicht
 
Zitat:

Zitat von schöni (Beitrag 1251975)
Zitat:

Zitat von JamesTKirk
Ja, das fehlt noch. Ich habe letztes Jahr mal damit begonnen, dass umzusetzen, aber überraschenderweise ist besonders die Unterstützung unter Windows recht schwierig (wegen indirekter Auflösung von globalen Variablen, die unterschiedlichen Code für Package/nicht-Package benötigt...)

Zitat:

Zitat von Patito
Zitat:

Zitat von QuickAndDirty
]
Ich arbeite gerne damit. Allerdings fehlt wirklich sowas wie ein Package-Konzept(dynamisch gelinkte Packages) für FreePascal!
Das erschwert unnötig einen Professionellen Ansatz mit massig zugekaufter Vorleistung.

Das habe ich früher auch mal gedacht, aber qualitativ gute 3rd-Party Libraries (für Excel, Word, pdf, CAD, Geräte-Steuersoftware...)
gibt es doch eher selten als (proprietäres versionsabhähgiges) Delphi-Packages, normalerweise kauft man so ein qualitativ hochwertiges
Ding als DLL. Dafür gibt es dann einen freien Open-Source Pascal-Wrapper und gut.

Hmmmm, so extrem lange dauert solche Neuübersetzung auch wieder nicht, aber es gibt bei fehlerhafter Programmierung den gravierenden Nachteil, das dann die Übersetzung fehl schlägt. Hatte das bei Lazarus 1.0.6. Jetzt hab ich die Version 1.0 installiert, mit derich sehr zufrieden bin. Die 1.2er Version hab ich noch nicht getestet. Werde das nur machen, wenn ich das unabhängig von meiner 1.0 Version machen kann.

Die hier zitierten Argumente relativieren das Package Problem nun auch wieder, aber für mich ist und bleibt dieses Problem auch ein interessanter Aspekt. Ich habe nämlich noch immer nicht verstanden, warum hier die totale Neuübersetzung überhaupt erforderlich ist. Mir ist klar, das dies der Fall ist, wenn die Komponenten als neue Units statisch eingebunden werden. ABER: Kann man diese nicht auch als normale Dlls einbinden, per Interfaces?

Ein Komponentenmanager könnte so aussehen (nur Interface)

type
IComponentFactory = Interface(IInterface)
function GetComponents(Index: Integer): TComponent;
procedure SetComponents(Index: Integer; value: TComponent);
property Components[Index]: TComponentList read GetComponents write SetComponents;
property ComponentCount: Integer; //Anzahl aktuell in IDE verfügbare Komponenten
end;

Nun müssten die Komponenten von außen per dll angeschlossen werden;

Wo ist da mein Denkfehler, wenn da einer ist? In den Eigenschaftseditoren gibt es doch auch Methoden wie Get/SetVerb u.a. die könnte man doch veranlassen, passenden Quelltext in den Codeeditor zu schreiben. Dabei sollte es egal sein, ob das von der IDE oder von der geladenen Dll aus passiert. Ich stelle die Frage jetzt mal hier. Bei genügend Interesse am Thema darf das auch in einen separaten Thread ausgelagert werden oder Ihr teilt hier mit, das ich bitte einen separaten Thread dazu auf machen soll. Soll ich?

1. Relativiert das nichts, denn wenn ich eine Trial für meine Komponenten ausliefern will geht das nicht! Genau so sieht es aus wenn ich closed source Komponenten verkaufen möchte.

2. Packages sind DLLs nur das sie sich beim Laden in die VMT der Anwendung einfügen. Wenn du das Problem umgehen willst das eine DLL eine eigene VMT hat, kannst du natürlich idealerweise alle Komponten auf Interfaces umstellen, das muss dann auch für alle Bezüge der Kompenenten untereinander gelten. Jedes property, jede Funktion oder Prozedur. Ich fände es aber gut so, vor allem wenn es KEINE Pascall DLLs sind sondern Stdcall DLLS.
Aber wie willst du von einer nur als Interface verfügbaren Komponente erben?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr.
Seite 2 von 4     12 34      

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