Fragen zu TApplication

Für Fragen von Einsteigern und Programmieranfängern...
Aries
Beiträge: 18
Registriert: Fr 26. Okt 2012, 01:41

Fragen zu TApplication

Beitrag von Aries »

Ich habe einige Fragen zu TApplication:

- Was ist eine TAppilcation? englisch Application = deutsch Anwendung. Eine Konsolenanwendung ist auch eine Anwendung, scheint aber keine TApplication zu sein.

- Warum muss man eine TAppilcation nicht deklarieren?

- Was bewirkt "Application.Initialize;"?

- Was bewirkt "Application.Run;"?

- Wenn ich eine TApplication benutze, wie kann ich dann die Konsole ausschalten oder ausblenden?

- Welchen Nutzen hat der Befehl "RequireDerivedFormResource := True;"?

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Fragen zu TApplication

Beitrag von mse »

In Lazarus kenne ich mich nicht so gut aus, die folgenden Aussagen gelten für MSEgui, dürften aber auch für Lazarus zutreffen.
Aries hat geschrieben: - Was ist eine TAppilcation? englisch Application = deutsch Anwendung. Eine Konsolenanwendung ist auch eine Anwendung, scheint aber keine TApplication zu sein.
tapplication ist eine Klasse, welche die Programminstanz darstellt und "managed". Z.B. verteilt tapplication die vom Betriebssystem eintreffenden Botschaften und besorgt das geordnete Beenden bei Programmende.
- Warum muss man eine TAppilcation nicht deklarieren?
Weil eine Instanzvariable bereits in einer Bibliotheks-unit angelegt ist. In MSEgui beispielsweise in der unit msegui oder in msenogui für nicht visuelle Programme.
- Was bewirkt "Application.Initialize;"?
Erzeugt die tapplication Instanz falls nicht bereits geschehen und initialisiert alle notwendigen Listen und verwendeten Bibliotheken und dergleichen. Bei MSEgui muss diese Funktion nicht explizit aufgerufen werden.
- Was bewirkt "Application.Run;"?
Startet eine "main event loop". Das heisst, es werden Ereignisse (Mausbewegungen, Tastendrücke...) vom Betriebssystem abgeholt und auf die interessierten Klasseninstanzen verteilt bis das Programm z.B. durch setzen von "application.terminated:= true;" beendet wird.
- Wenn ich eine TApplication benutze, wie kann ich dann die Konsole ausschalten oder ausblenden?
Unter Windows wird das Anzeigen einer Konsole durch Angabe "{$apptype console}" in der Program-Pascal-Datei bewirkt, "{$apptype gui}" hat keine Konsole.
http://www.freepascal.org/docs-html/pro ... 850001.2.3
- Welchen Nutzen hat der Befehl "RequireDerivedFormResource := True;"?
Vermutlich erzeugt er eine Exception beim Versuch ein Formularklasse zu instantiieren, für die keine *.lfm Resourcen eingelinkt sind. In MSEgui wird das durch die Klasse selbst bestimmt.

Martin
Zuletzt geändert von mse am So 9. Dez 2012, 12:07, insgesamt 3-mal geändert.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Fragen zu TApplication

Beitrag von mschnell »

Aries hat geschrieben:- Was ist eine TAppilcation? englisch Application = deutsch Anwendung. Eine Konsolenanwendung ist auch eine Anwendung, scheint aber keine TApplication zu sein.
Bei "Applications", nicht aber z.B. bei "Command line Tools" wird die TApplication Klasse verwendet.

Die Hauptaufgabe der Klasse ist, eine Event-Queue für den Mainthread des Programms zur Verfügung zu stellen. Hierdurch wird die "normale" Object-Pascal Programmier-Mehtodik - das "Eventgesteuerte Programmieren" - möglich, bei dem der Applikations-Programmierer (fast) alle Aktivitäten im "run-to-completion"-Stil in "Events" unterbringt, die durch irgendwelche Ereignisse ausgelöst werden. Die Ereignisse (GUI-Aktivitäten wie Mouse und Keyboard, TTimer, Meldungen von anderen Threads, ...) werden (auch) außerhalb des Mainthreads generiert, in der Queue zwischengespeichert bis der Mainthread dafür Zeit hat, und dann in den Event-Handlern im Mainthread bearbeitet.

Je nachdem wie der Build-Mode-Macro "LCL-Widget-Typ" gesetzt ist, werden beim Kompilieren unterschiedliche Implementierungen der Klasse TApplication eingebaut (durch die "Interface" Unit angelinkt).

Alle momentanen Implementierungen ("LCL-Widget-Typen") erlauben nur eine einzige Instanz von TApplication in einem Programm, die mit dem Mainthread verheiratet sein muss, weil der Code nicht threadfest ("reentrant") geschrieben ist (was ihn deutlich verkomplizieren würde). Theoretisch wären auch Implementierungen möglich, bei denen jeder Thread über ein TApplication Objekt und damit über eine eigene Event-Queue verfügen würde. Damit könnte dann z.B. TTimer auch in Threads verwendet werden. Da hat sich aber noch keiner rangegeben (ich glaube, in mse geht das.)

Außerdem gibt es momentan in Lazarus (wohl aber in mse) keine Implementierung von TApplication, die nicht die Anbindung an eine GUI voraussetzt. Deshalb kann man z.B. in Linux "Daemons", CGI-Programmen etc., Verfahren wie TTimer, TThread.Synchronize, TApplication.QueuAsyncCall etc. nicht verwenden. Die Verwendung von Lazarus für komplexe "embedded" Anwendungen wird dadurch erheblich erschwert.
Aries hat geschrieben:- Warum muss man eine TAppilcation nicht deklarieren?
Das macht die Automatische Pascal-Code Generierung in Lazarus, wenn man ein entsprechendes Projekt aufsetzt. Du kannst aber natürlich auch ein neues "Programm" - Projekt aufsetzen und Tapplication "von Hand" einbauen.
Aries hat geschrieben:- Was bewirkt "Application.Initialize;"?
Die TApplication-Instanz mit Namen Application wird initialisiert, also die Event-Queue Betriebssystem-/GUI-System-spezifisch eingerichtet und mit der GUI (als eine der Event-Sourcen) und dem aktuellen (Main-) Thread (als Event-Handler) verheiratet.)
Aries hat geschrieben:- Was bewirkt "Application.Run;"?
Die Event-Queue wird als "normalerweise-no-return" Unterprogramm von Application.Run (im MainThread) gestartet. Damit sind alle "Events" Unterprogramme von Application.Run. Ein spezieller Event-Aufruf (der durch "Application.Terminate" erzeugt wird), bewirkt (bei Bearbeitung durch die Queue)statt des Aufrufs eines Event-Handlers ein Return aus Application.Run.
Aries hat geschrieben:- Wenn ich eine TApplication benutze, wie kann ich dann die Konsole ausschalten oder ausblenden?
Was genau meinst Du mit "Konsole" ? Ich denke Form1.Hide versteckt die GUI. Eine Text-Konsole (für Standard-In und Standard-Out) wird für GUI-Progaramme doch sowieso normalerweise nicht angezeigt (kann man - glaube ich - aber aktivieren).
Aries hat geschrieben:- Welchen Nutzen hat der Befehl "RequireDerivedFormResource := True;"?
Keine Ahnung. Tut mir Leid :(

Was hast Du eigentlich vor ? (Anscheinend willst Du einen Daemon o.ä. schreiben. Da gibt es die genannten Einschränkungen ...)

-Michael

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: Fragen zu TApplication

Beitrag von theo »

mschnell hat geschrieben:
Aries hat geschrieben:- Welchen Nutzen hat der Befehl "RequireDerivedFormResource := True;"?
Keine Ahnung. Tut mir Leid :(
http://lazarus-ccr.sourceforge.net/docs ... ource.html

@Aries: Ich nehme an du bist ein Einsteiger. Dafür suchst du viel zu weit. Das muss man alles nicht unbedingt wissen, jedenfalls nicht am Anfang.
Deshalb "versteckt" Lazarus auch die eigentliche Programmdatei "*.lpr"

Gewöhne dich einfach erst einmal an das System mit den Formularen, Komponenten und Ereignisbehandlungsmethoden.
Der Rest leuchtet dir dann mit der Zeit ein.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Fragen zu TApplication

Beitrag von Socke »

theo hat geschrieben:@Aries: Ich nehme an du bist ein Einsteiger. Dafür suchst du viel zu weit. Das muss man alles nicht unbedingt wissen, jedenfalls nicht am Anfang.
Deshalb "versteckt" Lazarus auch die eigentliche Programmdatei "*.lpr"

Gewöhne dich einfach erst einmal an das System mit den Formularen, Komponenten und Ereignisbehandlungsmethoden.
Der Rest leuchtet dir dann mit der Zeit ein.
Diese Aussage finde ich gefährlich. Auch als Einsteiger darf man sich schon in die Tiefen eines Programms hinabbegeben -- mit dem Risiko, dass man hinterher mehr weiß als vorher. Fremden Quelltext zu lesen kann wirklich hilfreich sein, eine Programmiersprache besser zu verstehen.
mschnell hat geschrieben:Außerdem gibt es momentan in Lazarus (wohl aber in mse) keine Implementierung von TApplication, die nicht die Anbindung an eine GUI voraussetzt. Deshalb kann man z.B. in Linux "Daemons", CGI-Programmen etc., Verfahren wie TTimer, TThread.Synchronize, TApplication.QueuAsyncCall etc. nicht verwenden. Die Verwendung von Lazarus für komplexe "embedded" Anwendungen wird dadurch erheblich erschwert.
Unter Lazarus gibt es die Klasse TCustomApplication (in der Unit custapp). Davon wird auch die "Standard-"Klasse TApplication (mit dem ganzen GUI-Kram) abgeleitet. Man kann aber auch seine eigenen (eher komplexen) Konsolenanwendungen darauf aufbauen (über das Menü: Neu -> Konsolenanwendung).

TTimer ist ein Widgetset und arbeitet nicht direkt mit dem Betriebssystem. Daher geht es wie TThread.Synchronize und TApplication.QueueAsyncCall immer über die Hauptbotschaftenschleife. Diese gibt es in TCustomApplication aber gar nicht (man müsste dies also selbst implementieren).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: Fragen zu TApplication

Beitrag von theo »

Socke hat geschrieben: Diese Aussage finde ich gefährlich.
Ich weiss nicht, bei Aries sehe ich im Moment die Gefahr eher darin, dass er sich in Details verzettelt (RequireDerivedFormResource etc.) und dabei den Wald vor lauter Bäumen nicht mehr sieht, oder die Lust an Lazarus verliert.

Man lernt ja auch nicht Autofahren, indem man zuerst die Technik der Benzineinspritzung büffelt.
Hier fehlt mMn in diesem Forum manchmal etwas das Gespür für den Kenntnisstand des Fragenden.
Es kann natürlich sein, dass ich mich da bei Aries täusche, er sagt ja nicht viel über sich oder seine Ziele.

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:

Re: Fragen zu TApplication

Beitrag von Christian »

1+ für Theo an dieser Stelle
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Fragen zu TApplication

Beitrag von Socke »

theo hat geschrieben:Man lernt ja auch nicht Autofahren, indem man zuerst die Technik der Benzineinspritzung büffelt.
Der Zusammenhang "Ohne Gaspedal kein Autofahren" finde ich schon recht wichtig ;-) [Achtung: hier gibt es einen Bezug zum Thema, auch wenn er nicht offensichtlich ist und vielleicht ein wenig an den Haaren herbei gezogen erscheint].
theo hat geschrieben:Hier fehlt mMn in diesem Forum manchmal etwas das Gespür für den Kenntnisstand des Fragenden.
Es kann natürlich sein, dass ich mich da bei Aries täusche, er sagt ja nicht viel über sich oder seine Ziele.
Wie gut, dass wir dich haben und du darauf aufpasst. Ich versuche für meinen Teil aufkommende Fragen qualitativ hochwertig (und hoffentlich verständlich) zu beantworten.
theo hat geschrieben:Gewöhne dich einfach erst einmal an das System mit den Formularen, Komponenten und Ereignisbehandlungsmethoden.
Der Rest leuchtet dir dann mit der Zeit ein.
Um zu der Aussage zurückzukehren: Für meinen Teil finde ich eine Aussage: "Finde dich damit ab, du verstehst es eh nicht" (so lese ich den Text) äußerst abweisend und sehr demotivierend. Wenn ich auf eine Frage eine solche Antwort erhalte, bin ich weg und suche mir meine Antwort woanders -- oder wende mich ganz ab.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: Fragen zu TApplication

Beitrag von theo »

@Socke: Was ist denn mit dir los?
Ich glaube wir reden besser morgen weiter.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Fragen zu TApplication

Beitrag von mse »

Ich finde Aries stellt genau die richtigen Fragen und verdient auch richtige Antworten.

Martin

Aries
Beiträge: 18
Registriert: Fr 26. Okt 2012, 01:41

Re: Fragen zu TApplication

Beitrag von Aries »

Danke für die Antworten. Das war schon sehr hilfreich.
mschnell hat geschrieben: Was genau meinst Du mit "Konsole" ?
Sowas: http://www.csharpme.de/Bilder/konsole.jpg
mschnell hat geschrieben:Ich denke Form1.Hide versteckt die GUI. Eine Text-Konsole (für Standard-In und Standard-Out) wird für GUI-Progaramme doch sowieso normalerweise nicht angezeigt (kann man - glaube ich - aber aktivieren).
Hängt davon ab, ob man unter "Neu" auf "Anwendung" oder "Programm" klickt, obwohl da im Code gar keine Ursache für ersichtlich ist. mse hat Recht, mit "{$apptype gui}" erscheint keine Konsole.
mschnell hat geschrieben:Was hast Du eigentlich vor ?
Verstehen wie Lazarus funktioniert und Lazarus beherrschen. Anwendungen erstellen kann man ja sehr schnell auch als Einsteiger, mit dem Verstehen ist es schwieriger. Viel Code wird automatisch erzeugt und in zig verschiedene Dateien aufgeteilt. Teilweise kann gleicher Code zu unterschiedlichen Ergebnissen führen, was natürlich daran liegen muss, das in irgendwelchen verdeckten Dateien sich der Code doch unterscheidet. Ich versuche da ein Verständnis für zu entwickeln. Beispiel: Wenn man über den Projektinspektor das LCL-Package hinzufügt oder entfernt, in welcher Datei wird das dann festgehalten? Am sichtbaren Programmcode ändert sich nichts.
theo hat geschrieben: @Aries: Ich nehme an du bist ein Einsteiger.
Jein. In manchen Gebieten bin ich schon relativ weit, in anderen liege ich ziemlich zurück, wie mir scheint. Z. B. bei der Fachwortkenntnis. Ich verstehe z. B. nicht genau, was mit Programminstanz, Event-Queue, Build-Mode-Macro, LCL-Widget-Typ und Widgetset gemeint ist, was jedoch nicht unbedingt bedeutet, das ich sowas nicht schonmal angewandt habe.
theo hat geschrieben: Gewöhne dich einfach erst einmal an das System mit den Formularen, Komponenten und Ereignisbehandlungsmethoden.
Formulare kann ich benutzen.

Erfolgreich benutzt habe ich auch schon:
- OnCreate
- OnActivate
- OnTimer
- OnKeyDown
- OnKeyUp
- OnMouseMove
- OnMouseWheel
- OnEditingDone

Was meinst Du mit Komponentensystem?
theo hat geschrieben:Man lernt ja auch nicht Autofahren, indem man zuerst die Technik der Benzineinspritzung büffelt.
Eine Analogie wäre eher das Autobauen. Wenn einem die Motoren geliefert werden, kann man Autos auch bauen, ohne selbst Motoren zu bauen. Aber in der Schule lernt man auch erst einmal Rechnen, bevor man einen Taschenrechner benutzen darf. Ich würde diese ganzen Programmierautomatismen in Lazarus gerne erst einmal verstehen, bevor ich sie anwende (Anwenden tue ich sie jetzt lange genug ohne Verständnis).

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Fragen zu TApplication

Beitrag von mse »

Aries hat geschrieben: Jein. In manchen Gebieten bin ich schon relativ weit, in anderen liege ich ziemlich zurück, wie mir scheint. Z. B. bei der Fachwortkenntnis. Ich verstehe z. B. nicht genau, was mit Programminstanz, Event-Queue, Build-Mode-Macro, LCL-Widget-Typ und Widgetset gemeint ist, was jedoch nicht unbedingt bedeutet, das ich sowas nicht schonmal angewandt habe.
Programminstanz meint alles was zu einem laufenden Programm gehört (Speicher, Ausführungszustand...). Event-Queue ist eine Warteschlange, worin Ereignisse in ihrer zeitlichen Reihenfolge zwischengespeichert werden.
Lazarus -und MSEide, die hatte sie sogar ein paar Jahre früher- ;-) haben die Möglichkeit, verschiedene Build-Modes zur Erzeugung verschiedener Versionen eines Programmes einzurichten (mit/ohne Debug Info, mit/ohne Optimierung, für Linux/für Windows...). Build-Mode-Macros sind Platzhalter, welche abhängig vom aktuellen Build-Mode durch verschiedene Texte ersetzt werden.
Ein Widgetset ist eine Bibliothek, welche die Basis-Funktionen und visuellen Komponenten eines GUI-Programmes zur Verfügung stellt. Lazarus kann verschiedene Widgetsets verwenden, die Windows-eigene Schnitstelle, Qt, GTK+ und Carbon (und/oder Cocoa?) (=LCL-Widget-Typ).
Im Gegensatz dazu benutzt MSEgui eine eigene von mir in Pascal geschriebene Plattform-unabhängige Widgetset-Bibliothek.
Ich würde diese ganzen Programmierautomatismen in Lazarus gerne erst einmal verstehen, bevor ich sie anwende (Anwenden tue ich sie jetzt lange genug ohne Verständnis).
Genau. Und darum verzichtet MSEide wenn immer möglich auf Automatismen und stellt stattdessen die bequeme Möglichkeit des bewussten Einrichtens und Bearbeitens des Projektes zur Verfügung.

Martin

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: Fragen zu TApplication

Beitrag von theo »

Aries hat geschrieben:
theo hat geschrieben: @Aries: Ich nehme an du bist ein Einsteiger.
Jein. In manchen Gebieten bin ich schon relativ weit, in anderen liege ich ziemlich zurück, wie mir scheint. Z. B. bei der Fachwortkenntnis. Ich verstehe z. B. nicht genau, was mit Programminstanz, Event-Queue, Build-Mode-Macro, LCL-Widget-Typ und Widgetset gemeint ist, was jedoch nicht unbedingt bedeutet, das ich sowas nicht schonmal angewandt habe.
Ich wollte dir sicher nicht zu Nahe treten und du hast das wahrscheinlich auch nicht so aufgefasst.
Diese Information, die du uns jetzt gibst, finde ich wichtig.
Man kann Fragen beantworten wie ein Lexikon, oder man kann versuchen den Fragenden dort abzuholen wo er ist und eine passende aber vielleicht nicht allumfassende Antwort zu geben. Ich bevorzuge auch aus effizienzgründen die zweite Variante.
Jetzt ist mir klar, was du wissen möchtest. Die konkreten Fragen hier hat dir mse ja schon beantwortet.
Aries hat geschrieben: Ich würde diese ganzen Programmierautomatismen in Lazarus gerne erst einmal verstehen, bevor ich sie anwende (Anwenden tue ich sie jetzt lange genug ohne Verständnis).
Das ist gut. Der Satz in Klammern ist aber auch wichtig um zu erkennen was dir schon klar ist.

Hintergrundinformationen kann übrigens man oft auch von Quellen, die sich mit Delphi befassen übernehmen.
Es ist vlllt. nicht alles 100%ig identisch, aber für die grossen Fragen reicht es meistens.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Fragen zu TApplication

Beitrag von mschnell »

theo hat geschrieben: Gewöhne dich einfach erst einmal an das System mit den Formularen, Komponenten und Ereignisbehandlungsmethoden.
Der Rest leuchtet dir dann mit der Zeit ein.
Für Einsteiger ist es natürlich absolut sinnvoll, zunächst mit "normalen" GUI-Programmen anzufangen, weil die sich leicht testen lassen.

Dass bei "embedded" und "Daemon" Projekten dann vieles nicht so gut unterstützt ist wie bei GUI-Projekten stellt sich dann erst später heraus.

Aber auch hier ist es oft sinnvoll zuerst ein GUI-Projekt zu machen, und dabei den GUI Code und den Programm-Logik-Code sauber in einzelne Units zu trennen (ist sowieso der professionellere Stil als stumpfes RAD) und ein Arbeits-Projekt dann durch ersetzen der GUI-Uinits zu erzeugen.

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Fragen zu TApplication

Beitrag von mschnell »

Socke hat geschrieben:Unter Lazarus gibt es die Klasse TCustomApplication (in der Unit custapp). Davon wird auch die "Standard-"Klasse TApplication (mit dem ganzen GUI-Kram) abgeleitet. Man kann aber auch seine eigenen (eher komplexen) Konsolenanwendungen darauf aufbauen (über das Menü: Neu -> Konsolenanwendung).
In einer Open Source-Umgebung kann man glücklicherweise alles machen :D
Allerdings ein komplettes neues "Interface" (aka "LCL Widget Type" zu bauen, das (z.B. ohne eine GUI-Anbindung) eine voll funktionsfähige Event-Queue installiert (also z.B. TTimer, Procedure...Message..., TThread.Synchronize und Application.QueueAsyncCall unterstützt), ist eine Aufgabe, die kaum lösbar ist ohne auf jede Menge schlecht dokumentierte Interna der RTL/LCL zurückzugreifen oder "das Rad neu zu erfinden".

Hab ich 'mal angefangen. Kann ich nicht empfehlen :evil:

-Michael

Antworten