Hallo Delphi Freunde,
also jetzt funktioniert es, hat aber zwei Makel.
In der Visitenkarte wird die Geschäftliche Telefonnummer als erstes angezeigt.
Der zweite Eintrag ist die Faxnummer und dahinter steht auch Geschäftlich.
Man erkennt nicht, dass das die Faxnummer ist.
So habe ich im Source noch ein Tel.: und ein Fax: davorgestellt.
Die Visitenkarte sieht ganz ansprechend aus, nur habe ich in den Editfeldern vor den Nummern Tel.: und Fax: zu stehen.
Das empfinde ich als Makel.
Vieleicht kennt ja jemand eine Lösung des Problems. Aber im Großen und Ganzen kann ich damit leben.
Viele Grüße aus Berlin
von
Micha(onk)
Hier der Vcard-Source:
BEGIN:VCARD
VERSION:4.0
FN:Musti Mustermann
ORG:Mustermann AG
TITLE:Bürohonk
TEL;TYPE=work:Tel.: 22 55 22 66 //Hier ist der Makel
TEL;TYPE=work,fax,voice:Fax: 22 55 22 67 // und hier auch
TEL;TYPE=cell:0177 / 1 10 22 55 22
EMAIL:m.mustermann@test.de
URL;work:
www.mustermann.de
X-MS-OL-DEFAULT-POSTAL-ADDRESS:0
LABEL;TYPE=work,postal,parcel:Mustermannstr. 33\n12203 Berlin
:;;Mustermannstr. 33;Berlin;12203n\Deutschland
note:Ich bin Mustermannfähig.
REV:20140301T221110Z
END:VCARD
Hier ist der Source:
Delphi-Quellcode:
procedure TForm1.btVCardClick(Sender: TObject);
var pfad,pfaddesktop,komplettpfad,s,jahr:
string;
firma,notizen,vorname,strasse,plz,ort,Position,anrede,nachname,email,webseite,fax,festnetz,mobil,adressdaten:
String;
begin
jahr:=formatdatetime('
yymmdd',now);
festnetz:=dapc.FieldByName('
TelefonFirma').asstring;
Position:=dapc.FieldByName('
Position').asstring;
notizen:=dapc.FieldByName('
notizen').asstring;
anrede:=dapc.FieldByName('
anrede').asstring;
vorname:=dapc.FieldByName('
vorname').asstring;
nachname:=dapc.FieldByName('
nachname').asstring;
firma:=dapc.FieldByName('
firma').asstring;
email:=dapc.FieldByName('
email').asstring;
webseite:=dapc.FieldByName('
webseite').asstring;
fax:=dapc.FieldByName('
fax').asstring;
// festnetz:=dapc.FieldByName('festnetz').asstring;
mobil:=dapc.FieldByName('
mobiltelefon').asstring;
// adressdaten:=dapc.FieldByName('adressegeschäftlich').asstring;
strasse:=dapc.FieldByName('
strasse').asstring;
plz:=dapc.FieldByName('
plz').asstring;
ort:=dapc.FieldByName('
ort').asstring;
pfad:=ExtractFilePath(Application.ExeName) + '
\vcard.txt';
if FileExists(pfad)
then
DeleteFile(pfad);
if not FileExists(pfad)
then
begin
AssignFile(tFile, pfad);
ReWrite(tFile);
WriteLn(tFile, '
BEGIN:VCARD');
WriteLn(tFile, '
VERSION:4.0');
// WriteLn(tfile,'N;LANGUAGE=de:'+ name + ''); // Wenn ich das auskommentiere, wird im Edit speichern unter form1 angezeigt
// wenn ich das ingnoriere werden korrekt der Nachname, das Komma und der Vorname angezeigt
WriteLn(tFile, '
FN:' + vorname + '
' + nachname + '
');
WriteLn(tFile, '
ORG:' + firma + '
');
WriteLn(tFile, '
TITLE:' + Position + '
');
WriteLn(tFile, '
TEL;TYPE=work:' + '
Tel.: ' + festnetz + '
');
// Hier ist der 1. Makel.
WriteLn(tFile, '
TEL;TYPE=work,fax,voice:' + '
Fax: ' + fax + '
');
// Hier ist der 2. Makel.
WriteLn(tFile, '
TEL;TYPE=cell:' + mobil + '
');
WriteLn(tFile, '
EMAIL:' + email + '
');
WriteLn(tFile, '
URL;work:' + webseite + '
');
WriteLn(tFile, '
X-MS-OL-DEFAULT-POSTAL-ADDRESS:0');
WriteLn(tFile, '
LABEL;TYPE=work,postal,parcel:' + strasse + '
\n' + plz +
'
' + ort + '
');
WriteLn(tFile, '
:;;' + strasse + '
;' + ort + '
;' + plz +
'
n\Deutschland');
WriteLn(tFile, '
note:' + notizen + '
');
WriteLn(tFile, '
REV:20140301T221110Z');
WriteLn(tFile, '
END:VCARD');
closefile(tFile);
end;
pfaddesktop:=controler.getshellfolder(CSIDL_DESKTOP);
komplettpfad:=pfaddesktop + '
\MZ-Handout\';
s:= dapc.FieldByName('
firma').AsString + '
_' + dapc.FieldByName('
vorname').AsString + '
' +
dapc.FieldByName('
nachname').AsString;;
if directoryexists(komplettpfad)
then
pfaddesktop:=komplettpfad + jahr + '
_' + s + '
.vcf';
RenameFileEx(pfad , pfaddesktop );
end;