Utils.pas

Zur Vorstellung von Komponenten und Units für Lazarus
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6212
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

@Christian & @Schnullerbacke
Ich würde nicht das 'einfach reinpacken', sondern vielleicht gleich das ganze in strukturierter Weise angehen. Sonst kommt da innerhalb kürzerster Zeit - das hab ich nicht verbockt, das gehöhrt da nicht rein, ist ne alte Version,..
Vor allen, die Diskussionen 'Meiner ist länger, besser,... oder das hat dadrinne nichts verloren,...' sind entberlich. Jeder will was beitragen und zusätzlich sollte man nach fertigen Räder sehen können und sie nicht laufend selbst entwickeln.

Vor allem wenn die Paket auch von Namen und Version identifizierbar sind, dann haben wir sicherlich auch später was davon und wissen vielleicht wo welche Bugs noch schlummmern und ob sie in der aktuellen Version schon gefixt sind.


Q: Gibts begleitend zum Forum schon ein SVN bzw. in Abstimmung mit dem Lazarus-Mainforum einen Bereich ?


Ich bin zwar kurz bei Lazarus dabei, aber seit Jahrzehnten bei Pascal bzw. Delphi (Erster Kontakt mit Turbo Pascal 3.0 unter CPM auf ner 8080er CPU).
Würde auch gerne strukturiert meine Erfahrungen einfliessen lassen, da Pascal/Delphi/Lazarus neben meiner Arbeit auch noch Hobby geblieben ist.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@af0815

Sind schon meistens Sachen, die eben leider bei Delphi (7 enterprise) auch schon nicht da waren. GetFileList(Path, Ext: string; const AList: TStringList) gabs z.B. auch in FileMisc nicht. Manchmal ist das aber ganz Hilfreich wenn man z.B. alle *.txt aus einem Verzeichnis braucht aber nicht über TFileDialog gehen will. Kann man auch noch so ändern, das es gleich noch Unterverzeichnisse mitnimmt.

Aber strukturiert ist schon recht, nur SVN könnte da nachteilig sein. Ich find das auch immer saublöd wenn man aus der Umbegung raus muß um nen CheckOut zu machen. Bei Delphi hatte ich den Jedi-Server laufen und den Client in der Oberfläche eingebunden, das geht nur leider für Linux wieder nicht. CVS ist da wohl für den Moment einfacher, weil es eben Clients für Windoofs und Linux (die Gleichen) gibt. WinCVS und gcvs sind das Gleiche in grün, damit wäre man also ganz gut bedient und "for free" gibt es die auch.

Bei den SVN-Clients siehts da schon schlechter aus. Jedenfalls ist mir noch kein Client untergekommen den es für beide BS gibt. Und MacOS darf man in dem Zusammenhang auch nicht vergessen.

So eine Integration in Lazarus wäre also bestimmt ne schöne Sache, beschleunigt ja auch die Arbeit nicht unerheblich.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

svn ansich gibts doch für beide os ? und was ist so schlimm daran mal 7 zeichen in nem terminal einzugeben ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6212
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

@alle
alles easy, es geht mir nicht um die Diskussion: CVS, SVN, Sourcesafe,... etc. sondern NUR darum, guten Code so gezielt und sauber wie möglich, strukturiert abzulegen. Von mir aus als tar, zip und weis der Henker. Was wichtig ist, meiner Meinung nach:

* Klare Lizenz (wie darf ich das verwenden)
* Wer ist Ansprechpartner (ergibt sich ev. aus der Lizenz)
* Klarer Inhalt (um was handelt es sich)
* Klare Ablagestruktur (was ist final, beta, alpha)

aber was erkläre ich, die meisten sind doch eh keine Neuling bei Projekten. ich denke daran, das sich auch später dann Personen orientieren können, die nicht gewöhnt sind, sich die Zusammenhänge aus den Sourcen mal schnell zu holen.

Ich nehme an, das man das ev. auch über die WissensDB bzw. die Downloadecke machen kann bis der Umfang ein anderes Managmentsystem bedingt.

Eventuell kann man ja, dann die Beiträge auch noch in die originale Lazarus Wiki einfliessen lassen.

@schnullerbacke
es gibt soviele Dinge die schön wären bei Lazarus, vielleicht helfen mal die kleinen Dinge (Code Snipets) um die großen irgendwann möglich zu machen. Aber ich muss ja jetzt nicht gleich das SVN (CVS,...) hineinprogrammieren, nur um paar Codestücke sauber abzulegen.

@alle
Programme mit 10tauseneden Zeilen haben meistens auch mit kleinen units angefangen, deswegen danke an Christian für den ersten Schritt.

Bezüglich jcl und Lazarus, warum nicht sehen, was geht. Nur dort habe oft das Problem, das die Routinen zwar super sind, aber die Doku dazu - sagen wir mal, spärlich ist. Das hat mich schon öfters abgehalten sie einzusetzen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

af0815 hat geschrieben:
* Klare Lizenz (wie darf ich das verwenden)
* Wer ist Ansprechpartner (ergibt sich ev. aus der Lizenz)
* Klarer Inhalt (um was handelt es sich)
* Klare Ablagestruktur (was ist final, beta, alpha)


Es denke, bei der utils handelt es sich um eine unit, die eine Funktionensammlung von nützlichen Funktionen beinhaltet. Von daher macht eine Sortierung nach alpha, beta, gamma in meinen Augen wenig Sinn.

Bin aber deiner Meinung, dass es schnell unübersichtlich werden kann, wenn wir die utils nicht anständig durchnummerieren. Aber vielleicht reicht es, wenn wir das Datum der Änderung sowie den Inhalt in den Dateikopf schreiben? Außerdem die Namen hinter die Funktionen der Autoren.

Wir sollten aber auch dafür sorgen, dass wir nicht in unnötiger Bürokratie versinken.

Wäre nur schnell mein Vorschlag. Was meint denn der Christian, von dem die Unit stammt?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

ich denke ein svn repositore wäre schon schön auch für andere sachen die wir eventuell gemeinsam pflegen alles andere ist ziemlich weit weg von der realität
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Dann böte sich wohl ne Trennung nach Funktionsgruppen an, das entspricht auch am ehesten dem methodischen Vorgehen. Etwa FileMisc, APIMisc, DateMisc, ConvertMisc usw.. Dann sieht man am Unit-Namen schon ein bißchen was man da wahrscheinlich findet.

Sobald ich etwas mehr Zeit hab werd ich mir mal Gedanken um die Integration von CVS/SVN in die Lazarus-Umgebung machen. Dergestalt, das sich das nachträglich integrieren läßt. Shared-Object sollte dann aber beim FPC schon richtig laufen, damit man nicht an einen Client gebunden ist. Wobei das im Moment eher nachrangig ist, "for free" gibt es da eh nicht viel Auswahl. Die GPL sollte aber schon eingehalten werden, sonst schert das aus dem FPC/Lazarus-Habitus aus, was wohl weniger gelungen wäre.

Dafür wären mal ein paar Hinweise gut, welche Clients im einzelnen verwendet werden. Bei SVN könnte man sich auf das Original beziehen, das gibt es zumindest für Win und Linux auch als Quellcode.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

bei cvs kannst du auch das original nehmen
was ist SharedObjet wieder son erfundener ausdruck ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Pardon, da waren di Finger zu langsam... :oops:

shared-object
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Ciam
Beiträge: 22
Registriert: Di 3. Okt 2006, 11:51

Beitrag von Ciam »

hmm können wir nichtmal eine auflistung machen was da so drin ist und was hinzugekommen ist ??

das würde ich für sehr sehr sinnvoll halten

sonst wird das irgendwann unübersichtlich

lach so wie meine g_tools die aber leider alle nicht auf lazarus laufen weils einfach zu delphi spezifisch ist

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

das geht dann mit "svn log" also was nun erstellen wir nen sourceforge account oder was
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Würde sich wohl anbieten bei sourceforge. Zunächst würde ich mal als Client RapidSVN empfehlen. Gibts für Linux und für Windoofs und hat ne ähnliche Oberfläche wie WinCVS (gcvs). Alle jeweils for free zu haben. Bei WinCVS braucht man aber noch Python dazu, allerdings hatte ich letztens Probleme die richtige Version zu finden, WinCVS fordert ne ziemlich alte Version.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

svn checkout
svn update
svn log

3 befehle die man sich jawohl merken kann man braucht nicht immer ne klickie buntie oberfläche wobei ich mich gegen ein ide plugin sicher nicht sträuben würde
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

@schnullerbacke deine geänderte IsNumeric crasht bei der ersten gelegenheit

da hat murphy wieder zu geschlagen hab natürlich n audio x release damit gemacht

hier ne überarbeitete version n paar neue routinen sind auch drin

//Überarbeitete Version ist im ersten Beitrag zu finden

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

So, Leute ich hänge hier mal Testweise meine aktuelle Version der Utils.pas an. Unter Windows und gnome funktionieren die Routinen

GetProcessforExtension(InfoTyp : TProcessinfoTyp;Extension : string) : string;
und
GetMimeTypeforExtension(Extension : string) : string;

kann die bitte mal jemand unter Suse und Ubuntu im KDE testen ? Denke nicht das die dort funktionieren aber möglich ists ja. getProcessforExtension liefert ein Programm mit dem der übergebene Dateityp geöffnet werden kann und zwar das Standartprogramm...

Und GetMimetyp brauch ich wohl nicht zu erklären.
Dateianhänge
Utils.pas
(23.33 KiB) 110-mal heruntergeladen
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten