Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Txt-Datei automatisch als E-Mail versenden (https://www.delphipraxis.net/131905-txt-datei-automatisch-als-e-mail-versenden.html)

Jens Hartmann 2. Apr 2009 07:51


Txt-Datei automatisch als E-Mail versenden
 
Hallo,

hab mal ne frage zum Thema E-Mail. Ich weiß das es hier im Forum dazu hunderte gibt, kann allerdings momentan nicht das passende für mich finden.

Was ich bis jetzt raus gefunden habe ist, das man meine Sache wahrscheinlich mit einer Indy-Komponente lösen könnte.

Ich möchte automatisch zu einer bestimmten Zeit eine E-Mail mit Anhang einer Textdatei oder ähnlich an einen bestimmten E-Mail Empfänger senden. Provider sollten alle möglich sein.

Jetzt meine frage, wie mach ich das, welche Komponente am besten und wie gehe ich das Problem am besten an.

Gruß Jens

Bernhard Geyer 2. Apr 2009 08:00

Re: Txt-Datei automatisch als E-Mail versenden
 
Wenn der User deinem Programm das Passwort/Username anvertraut solltest du bei fast allen Providern mittels SMTP-Komponente die Mail abschicken können.

Falls er dir nicht vertraut wirst du auf MAPI umstellen müssen und hoffen das der Mail-Client MAPI-Tauglich ist.

Jens Hartmann 2. Apr 2009 08:08

Re: Txt-Datei automatisch als E-Mail versenden
 
Also, es ist so, das ich der User meinem Programm eine eigene E-Mail zur Verfügung stellen soll, von der ich auch nur senden will. Empfangen wird mein Programm nie was.

Das heißt für mich ja eigendlich, das er mir ohne weiteres die Daten zur Vefügung stellen kann.

Wie verhält sich sowas in einem internen Intranet, wo der eigendliche User nict über einen Internetzugang, sondern nur über Intranet verfügt.

Luckie 2. Apr 2009 09:10

Re: Txt-Datei automatisch als E-Mail versenden
 
Das geht doch genauso als wenn du eine Mail mit Anhang nach dem Kliock auf eine Schaltfläche verschicken willst. Und dazu sollte es genug Beispielcod eim Forum geben.

Jens Hartmann 2. Apr 2009 09:23

Re: Txt-Datei automatisch als E-Mail versenden
 
Das ist richtig, da nach suche ich ja auch in diesem Moment, nur vor laute Wald sieht man halt bald keine Bäume. Weißt du, wenn man nicht so 100% weiß, was da der richtige Weg ist, ist es schwer bei diesen vielen Beiträgen zu filtern. Wollte ja nur mal ein paar Hinweiße haben, die mir die Suche ein bißchen einfacher machen.

Gruß Jens

PS: Das mit der Indykomponente habe ich ja auch schon rausbekommen.

[EDIT] Also ich glaube ich habe was

Sowas hier

Jens Hartmann 2. Apr 2009 10:00

Re: Txt-Datei automatisch als E-Mail versenden
 
So habe aufjedenfall die Komponenten und meine Projektdatei angepaßt und habe auch mal das Beispiel eingefügt. :thumb:

Das das nicht funktionieren kann ist mir klar. Irgendwie muss man ja auch mal Server, Passwort etc bekannt geben. Auch der Zugriff muss ja irgendwie geregelt werden.

Kann mir jemand vieleicht mal ein Tutoral oder so nennen. Oder einen Link. Irgendwas, womit ich die Möglichkeit habe mich darein zu arbeiten?

Gruß Jens :gruebel:

nahpets 2. Apr 2009 10:25

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo,

schau mal hier: post961404.html#961404 slMail in dem Beispiel ist eine Stringliste, in die Du die Textdatei einlesen könntest.
Delphi-Quellcode:
IdMessage.Body.LoadFromFile('textdateiname');
wäre aber auch möglich.

Jens Hartmann 2. Apr 2009 10:47

Re: Txt-Datei automatisch als E-Mail versenden
 
Dank an alle zusammen, habe es aber schon hinbekommen.

Wie verhält sich das den bei einem Intranet, also wenn der USER keinen Internetzugang hat, sondern nur intern EMail versenden soll.

Trotzdem übrigens Danke.

Gruß Jens

Jens Hartmann 2. Apr 2009 12:39

Re: Txt-Datei automatisch als E-Mail versenden
 
Hab das jetzt alles soweit am laufen und es funktioniert, allerdings, bekomme ich keine Anhänge eingefügt. Ich habe die ganzen Varianten mit Attachment und so die ich im Forum gefunden habe versucht, allerdings ohne Erfolg. Wie hänge ich den eine ganz normale Textdatei oder PDF an ?

Gruß Jens

nahpets 2. Apr 2009 13:10

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo,

hilft Dir das?
Delphi-Quellcode:
IdMessage.Clear;
IdMessage.MessageParts.Clear;
IdMessage.Date                     := Now;
IdMessage.From.Text                := 'Wer.bin.ich@Und.wenn.ja.warum';
IdMessage.Recipients.EMailAddresses := 'bekomme.ich@die.mail';
IdMessage.BccList.EMailAddresses   := 'du.darfts@auch.lesen';
IdMessage.Subject                  := 'Irgendeinbetreff';
IdMessage.Body.Text                := slBody.Text;
TidAttachment.Create(idMessage.MessageParts,sFileName);
idSMTP.Connect(10000);
idSMTP.Send(IdMessage);
idSMTP.Disconnect;

Jens Hartmann 2. Apr 2009 13:27

Re: Txt-Datei automatisch als E-Mail versenden
 
Delphi-Quellcode:
TidAttachment.Create(mesgMessage.MessageParts,'.\29.03.2009.txt');
von der Sache her muss es das sein, das habe ich auch schon in vielen Varianten probiert. Auch über die Delphi Hilfe komm ich irgendwie nicht weiter.

egal, ob ich den File direkt angebe, oder über eine Var., Delphi schreibt mir immer zu viele Parameter

Gruß Jens

nahpets 2. Apr 2009 14:27

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo,

welche Versionen von Delphi und den Komponenten hast Du?

Wie sieht der Hinweis von CodeInsight aus?

Meine mich schwach daran erinnern zu können, dass sich da mal was geändert hat.

Jens Hartmann 2. Apr 2009 14:32

Re: Txt-Datei automatisch als E-Mail versenden
 
Ja, so irgendwas habe ich auch gelesen. Das Funktioniert wohl nur mit Indy 9.

Ich benutze Delphi 2007 (CodeGear RAD Studio) und da war Indy 10.1.1 enthalten. Allerdings, finde ich da keinen richtigen Hinweis für die Anwendung in der Hilfe.

Aber irgendwas muss da anders sein, weil die Möglichkeit die du mir aufgezeigt hast, habe ich Hundert-Fach hier im Forum gefunden, allerdings mehrmals mit dem Hinweis auf Indy 9

Gruß Jens

nahpets 2. Apr 2009 15:05

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo,

schau mal bitte hier: TIdAttachmentFile.html

Bitte geduldig warten, es dauert eine Weile, bis die Seite angezeigt wird, auch wenn es vorher den Eindruck erweckt, die Seite wäre schon geladen.

Jens Hartmann 2. Apr 2009 16:19

Re: Txt-Datei automatisch als E-Mail versenden
 
Meinst du das hier, wenn ja glaube ich versteh ich es noch nicht richtig...

Delphi-Quellcode:
    constructor Create(Collection: TIdMessageParts;
    const AFileName: String = '';
    reintroduce;

Jens Hartmann 2. Apr 2009 19:22

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo zusammen,

So ich habe die Lösung geknackt. Also mit der Indy 10.1.1 wird das ein bißchen anders gemacht. Wenn es jemand interessiert, hier die funktionierende Lösung. Wenn noch jemand Verbesserungsvorschläge hat, nehme ich die gerne an.

Delphi-Quellcode:
procedure TMailSendenForm.butnSendMailClick(Sender: TObject);
var
  FileName : String;
  FileData : TIdAttachmentFile;
begin
  FileName := FileEdit.Text;
  butnSendMail.Enabled := False; try
    with mesgMessage do begin
      Clear;
      From.Text := FromMailEdit.Text;     // von welchem account aus
      Recipients.Add.Text := AddMailEdit.Text; // an welche addi
      Subject := 'Datensatz vom '+ DateToStr(Now); // betreff
      Body.Assign(MemoVortext.Lines);          // die nachricht aus dem memo
      if FileExists(FileName) then
      begin
        FileData := TIdAttachmentFile.Create(MessageParts, FileName);
      end                                          //Body.LoadFromFile('.\29.03.2009.txt');
    end;
    with smtpSendMail do begin
      smtpSendMail.Username := FromMailEdit.Text;
      smtpSendMail.Password := PasswortEdit.Text;
      Host := SMTPEdit.Text;               //smtp-server hier web
      Connect; try
        Send(mesgMessage);
      finally Disconnect; end;
    end;
    showmessage('Mail wurde erfolgreich an [email]jens.hartmann@hu-gmbh.de[/email] gesendet');
  finally butnSendMail.Enabled := True; end;
end;
Besten Dank trotzdem für die Hilfe.

Gruß Jens

Jens Hartmann 21. Feb 2010 17:41

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo zusammen,

ich habe zur Zeit nochmal ein älteres Thema von mir zur Bearbeitung. Ich habe in die oben gezeigte E-Mail Funktion die Anhänge erweitert, da ich eine HTML-Dokument als Anhang versende, und die CSS Datei und das Kopf Bild mit versenden will.

Delphi-Quellcode:
  Attachment.Add(FileName);//HTML-Dokument welches folgende Dateien benötigt
Attachment.Add('C:\Users\jens.hartmann\Documents\Kopf1.bmp');
Attachment.Add('C:\Users\jens.hartmann\Documents\mb.css');
Das funktioniert auch alles super gut. Allerdings muss ich in meinem E-Mail Programm immer erst die beiden Dateien einmal öffnen, damit Sie in den entsprechenden Temp Ordner von Outlook geschrieben werden, um mein Stylesheet in dem HTML Dokument auch zu sehen.

Wie kann man diese Dateien so in die E-Mail integrieren, das nur das HTML-Dokument geöffnet werden muss. :gruebel:

Gruß Jens

implementation 21. Feb 2010 18:37

Re: Txt-Datei automatisch als E-Mail versenden
 
Ich würde sagen, du integrierst das Stylesheet gleich in das HTML-Dokument:
XML-Code:
<style type="text/css">
  ...
</style>

Jens Hartmann 22. Feb 2010 09:19

Re: Txt-Datei automatisch als E-Mail versenden
 
Zitat:

Zitat von implementation
Ich würde sagen, du integrierst das Stylesheet gleich in das HTML-Dokument:

Habe ich ja, allerdings muss ich das Stylesheet ja im selben Ordner wie das html zur Verfügung stellen. Will ich den Style jetzt komplett integrieren, könnte ich das zwar, müsste aber beim ändern im eine neue Version erstellen.
Delphi-Quellcode:
slHTML.Add('<head>');
slHTML.Add('<link rel="stylesheet" type="text/css" href="MB.css"');
slHTML.Add('<Style type="text/css"></style>');
slHTML.Add('<title>Protokolldatei</title>');
slHTML.Add('</head>');
:gruebel: Oder ist das wie oben falsch ? :gruebel:

Gruß Jens

nahpets 22. Feb 2010 11:49

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo,
Zitat:

Zitat von Jens Hartmann
Zitat:

Zitat von implementation
Ich würde sagen, du integrierst das Stylesheet gleich in das HTML-Dokument:

Habe ich ja, allerdings muss ich das Stylesheet ja im selben Ordner wie das html zur Verfügung stellen. Will ich den Style jetzt komplett integrieren, könnte ich das zwar, müsste aber beim ändern im eine neue Version erstellen.
Delphi-Quellcode:
slHTML.Add('<head>');
slHTML.Add('<link rel="stylesheet" type="text/css" href="MB.css"');
slHTML.Add('<Style type="text/css"></style>');
slHTML.Add('<title>Protokolldatei</title>');
slHTML.Add('</head>');
:gruebel: Oder ist das wie oben falsch ? :gruebel:

Gruß Jens

gemeint ist:
Delphi-Quellcode:
slHTML.Add('<head>');
slHTML.Add('<link rel="stylesheet" type="text/css" href="MB.css"');
slHTML.Add('<Style type="text/css">Der Inhalt vom Stylesheet kommt hier hin.</style>');
slHTML.Add('<title>Protokolldatei</title>');
slHTML.Add('</head>');

Jens Hartmann 22. Feb 2010 12:02

Re: Txt-Datei automatisch als E-Mail versenden
 
Zitat:

Zitat von nahpets
Delphi-Quellcode:
slHTML.Add('<Style type="text/css">Der Inhalt vom Stylesheet kommt hier hin.</style>');

Das ist mir schon klar. Aber dann müsste ich es folgendermaßen machen, was wiederum mein Problem wiedergibt...
Delphi-Quellcode:
slHTML.Add('<Style type="text/css">'+
  '.Stoerung { background-color : #FF0000; }'+
  '.Drucker-Stoerung { background-color : #FFFF00; }'
</style>');
Hat aber halt den Nachteil, das ich Grundsätzlich im Quellcode das Stylesheet anpassen muss.

Gruß Jens

nahpets 22. Feb 2010 12:19

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo,

mach Dir doch zwei Stringlisten, eine für's HTML eine für die CSS-Datei.

In die HTML-Datei setzt Du Dir 'nen Platzhalter, den Du durch den Text der CSS-Datei ersetzt. Ungefähr so:
Delphi-Quellcode:
slCSS.LaodFromFile('MB.CSS');
slHTML.Add('<head>');
slHTML.Add('<link rel="stylesheet" type="text/css" href="MB.css"');
slHTML.Add('<Style type="text/css"><#CSS></style>');
slHTML.Add('<title>Protokolldatei</title>');
slHTML.Add('</head>');
slHTML.Text := AnsiReplaceText(slHTML.Text,'<#CSS>',slCSS.text);
Du kannst die CSS-Datei getrennt pflegen und nutzen und nur für die Mail wird sie in die HTML-Seite "hineingewuselt".

Jens Hartmann 22. Feb 2010 12:59

Re: Txt-Datei automatisch als E-Mail versenden
 
Das ist richtig,

dann habe ich aber immer noch das Problem mit dem Bild. Wie trage ich das denn als StringList ein. Wenn ich deinen Entwurf nehme, stehen der Inhalt der Stringlist nur am Anfang der HTML-Dokuments.

Muss ich das ganz nicht noch irgendwie mit StringReplaced für #13#10 oder so bearbeiten.

Gruß Jens

nahpets 22. Feb 2010 13:13

Re: Txt-Datei automatisch als E-Mail versenden
 
Hallo,

das Bild bekommst Du nicht in 'ne Stringliste, eventuell geht das als Anhang der Mail, wie der Client damit umgeht, weiß ich nicht.

Das Stylesheet musst du nicht bearbeiten, der Text muss weder als "Einzelzeiler" noch speziell formatiert sein. Das Stylesheet selbst wird nur im HTML-Header benötigt. Im HTML-Dokument wird darauf referenziert, bzw. der Client sucht sich die passenden Layoutdefinitionen.

So sieht es vielleicht etwas schöner aus:
Delphi-Quellcode:
slCSS.LoadFromFile('MB.CSS');
slHTML.Add('<head>');
// kann entfallen slHTML.Add('<link rel="stylesheet" type="text/css" href="MB.css"');
slHTML.Add('<Style type="text/css">');
slHTML.Add('<#CSS>');
slHTML.Add('</style>');
slHTML.Add('<title>Protokolldatei</title>');
slHTML.Add('</head>');
slHTML.Text := AnsiReplaceText(slHTML.Text,'<#CSS>',slCSS.text);
Edit hat Schreibfehler gefunden.

Jens Hartmann 22. Feb 2010 14:31

Re: Txt-Datei automatisch als E-Mail versenden
 
Danke nahpets,

das funktioniert so. Aber das mit dem Kopfbild ist halt ein Problem.

Gruß Jens

Jens Hartmann 22. Feb 2010 20:25

Re: Txt-Datei automatisch als E-Mail versenden
 
Ich habe jetzt das ganze Netz per Google ergoogled und das ohne Erfolg. Naja was heißt ohne Erfolg. Es ist scheinbar so, das es mit den Bildern wirklich nicht so einfach ist.

Ich habe es aber jetzt nach Vorschlägen aus dem Netzt gelößt, ich habe die Bilddatei einfach auf unseren Server(Unsere Hompage) geladen und habe das Bild als Link angelegt. Besteht jetzt einen Internet Verbindung funktioniert es, ansonsten halt nicht.

Ich glaube das es auch im allgemeine so gemacht wird. Man kennt das ja von Outlook, allerdings würde mich mal interesieren, wie dort der Hinweis zum download hinkommt. Und wenn ich dort auf speichern Klicke, sind diese ja immer in der Mail vorhanden.

Wäre nun die Frage, wie man das einbinden kann.

Gruß Jens

BUG 22. Feb 2010 20:32

Re: Txt-Datei automatisch als E-Mail versenden
 
Base64 könnte dir helfen.
Das mit sich selbst per eMail (siehe Link) zuschicken ist aber umständlich, zum Umwandeln kannst du auch die Prozedur aus der Codelib nehmen (Base64Base64).

Jens Hartmann 22. Feb 2010 21:48

Re: Txt-Datei automatisch als E-Mail versenden
 
Zitat:

Zitat von BUG
Base64 könnte dir helfen.
Das mit sich selbst per eMail (siehe Link) zuschicken ist aber umständlich, zum Umwandeln kannst du auch die Prozedur aus der Codelib nehmen ( Base64 ).

Danke, das werde ich morgen aufjedenfall mal noch testen. Wobei mir das mit unserer Website auch schon ganz gut so gefällt.

Gruß Jens

Sir Rufo 22. Feb 2010 22:47

Re: Txt-Datei automatisch als E-Mail versenden
 
Möglichkeit 1: (Bild als Attachment)

Das Bild muss noch zusätzlich mit einer Content-ID versehen werden, dann kannst du innerhalb der HTML-Mail auf dieses Bild zugreifen.

Wie das aussieht, wie man darauf kommt?

Schick dir doch selber mal eine mail (z.B. via Outlook) und schau dir dann die Mail an, wie die aufgebaut ist.

Möglichkeit 2: (Bild im HTML-Code)

Öffne Word, tippe ein wenig Text, packe ein Bild dazu und speicher das ganze als "Webseite, gefiltert (*.htm;*.html)"
Wenn dort genau nur 1 Bild enthalten ist, dann wird dieses Bild in der html-Datei gespeichert.

Jens Hartmann 2. Mär 2010 08:00

Re: Txt-Datei automatisch als E-Mail versenden
 
Danke für die vielen antworten.

Ich habe die Version mit dem Verweis auf die Homepage zur Zeit gewählt. Funktioniert auch echt gut. Auch das mit dem Stylesheet funktioniert ohne Probleme. Allerdings wenn ich die Datei dann aus dem IE Drucken will, wird der Stylesheet beim drucken nicht berücksichtigt.

Kann man das irgendwie realisieren. Ich habe nur eine paar Spaltenfarben im Sheet. Diese werden allerdings auf dem Drucker nicht ausgegeben. :gruebel:

Gruß Jens

Jens Hartmann 5. Mär 2010 06:58

Re: Txt-Datei automatisch als E-Mail versenden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Morgen zusammen,

ich hab mal noch eine Frage zu Style. Ich habe zwei Überschriften im Kopf des HTML Dokument. Diese entstehen aus dem Firmenschriftzug von uns. Allerdings wird normalerweise die beiden Zeilen näher aneinander geschrieben. Wie kann ich so was hinbekommen. Nachdem ich das ganze mit Google gesucht habe, bin ich auf folgende Lösung gekommen, die allerdings wie man im Anhang sieht nicht funktioniert.
Delphi-Quellcode:
      slHTML.Add('<head>');
      slHTML.Add('<Style type="text/css"> .zahl {line-height: 1.5;}>'); //Zeilenhöhe
      slHTML.Add('<#CSS>');
      slHTML.Add('</style>');
      slHTML.Add('<title>Protokolldatei</title>');
      slHTML.Add('</head>');
      slHTML.Text := AnsiReplaceText(slHTML.Text,'<#CSS>',slCSS.text);

      slHTML.Add('<body>');
      slHTML.Add('

<span style="font-family: century gothic,">');
      slHTML.Add('<img src= "http://www.hu-gmbh.de/images/01_home/comp_streifen_home.png" width= "900" height= "150" align= "rigth" alt= "Titel" >');
      slHTML.Add('<p class="zahl">'); //Zeilenhöhe für Bereich aktiv schalten
      slHTML.Add('<h1 style="color:#000080; align='+
        '"right">Musterfirma</h1>');
      slHTML.Add('<h2 style="color:#000000; align='+
        '"right">Systemtechnik GmbH</h2>');
      slHTML.Add('</p>'); //Zeilenhöhe wieder normal Bereich ausschalten
      slHTML.Add('<h1 style="color:#FFFFFF; background-color:#000080;">Objekt: '
                 +Kunde+'</h1>');
Danke schon mal für Eure Hilfe und

Gruß Jens

Sir Rufo 5. Mär 2010 10:31

Re: Txt-Datei automatisch als E-Mail versenden
 
so in etwa?
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Test</title>
<style type="text/css">
.Firmenname1 { color:#000080; font-size:200%; font-style:bold }
.Firmenname2 { color:#000000; font-size:120% }
</style>
</head>
<body>

<div>
 

<span class="Firmenname1">Musterfirma</span>
<span class="Firmenname2">Systemtechnik GmbH</span></p>
</div>

</body>
</html>

Jens Hartmann 8. Apr 2010 17:06

Re: Txt-Datei automatisch als E-Mail versenden
 
Sorry, das die antwort so lange auf sich warten lies.

Aber, trotzdem noch Danke, das war die Lösung...

Delphi-Quellcode:
      slHTML.Add('<style type="text/css">'+
        '.Firmenname1 { color:#000080; font-size:234%; font-style:bolder; font-family: century gothic; }'+
        '.Firmenname2 { color:#000000; font-size:173%; font-family: century gothic; }'+
        '.Objekt1 { text-shadow:#c0c0c0 3px 3px 5px; color:#FFFFFF;'+
        ' font-size:200%; font-style:bolder;'+
        ' font-family: century gothic; background-color:#000080; }'+
        '.Event { color:#FFFFFF;'+
        ' font-size:200%; font-style:bolder;'+
        ' font-family: century gothic; background-color:#FFCC00; }'+

      slHTML.Add('<img src= "http://www.myhomepage.de/images/01_home/comp_streifen_home.png" width= "900" height= "150" align= "rigth" alt= "Titel" >');
      slHTML.Add('<div>');
      slHTML.Add('

<span class="Firmenname1">Musterfirma</span>
'+
        '<span class="Firmenname2">Musterfirma</span></p>');
{$IFDEF DEMO}
      slHTML.Add('

<span class="Objekt1">Dokument wurde durch eine Demoversion'+
        ' von print + save erstellt!</span></p>');
{$ELSE}
      slHTML.Add('

<span class="Objekt1">Standort/Objekt: '+Kunde+'</span></p>');
{$ENDIF}
      slHTML.Add('

<span class="Event">Auslösendes Ereignis: '+AbsenceString+'</span></p>');
      slHTML.Add('</div>');
      slHTML.Add('<table border="0" style="border-collapse:separate;"'+
                 'width="100%" style="'+
                 'border-left:5px solid #000080;border-right:5px solid #000080;'+
                 'border-top:5px solid #000080;border-bottom:5px solid #000080;>');

      slHTML.Add('<tr>');
        '</style>');
Danke und Gruß

Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz