|
| Forklaring af 'mystik' effekt/VAR-referenc~ Fra : Alex B. P. |
Dato : 04-04-03 09:50 |
|
Hej NG !
Jeg er ved at lave en UNIT, som håndterer E-Mail's i en større projekt, og
undrer mig over følgende opførsel under run-time.
Jeg her rimelig forståelse for Delphi syntax'en, men står dog lidt
uforstående overfor en logisk fejl, ved run-time, ved eksekvering af
følgende kode:
Dette compilerer og virker - > Altså hvis det er erklæret som en PROCEDURE
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-----------------------------
Procedure
TTeleEmail.PackReplyEmlAttachments(SubFolder,EmlFileNameAndExt:String;VAR
ChilkatEmailObj:ChilkatEmail;OutAttFileNames:TStrings;VAR
NumOfAttFiles:Byte);
VAR
idx:Byte;
Begin
// Result := 0;
idx := 0;
NumOfAttFiles := OutAttFileNames.Count;
ChilkatEmailObj.Mailer := DefaultXMailerTag;
FOR idx := 0 TO NumOfAttFiles-1 DO
Begin
ChilkatEmailObj.AddFileAttachment(OutAttFileNames[idx]);
end;
end;
function
TTeleEmail.AddAttToReplyEmail(ContactRespID:String;OutAttachmentFileNames:TS
trings):Integer;
VAR
inp:Byte;
Begin
inp := 0;
TeleEmail.PackReplyEmlAttachments(ContactRespID,ReplyEmailNameInZip,ChilkatE
mailOut,OutAttachmentFileNames,inp);
end;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-----------------------------
Dette compilerer, MEN virker ikke - > ?? (Hvorfor virker det ikke, hvis
erklkæret som en FUNCTION)
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-----------------------------
function
TTeleEmail.PackReplyEmlAttachments(SubFolder,EmlFileNameAndExt:String;VAR
ChilkatEmailObj:ChilkatEmail;OutAttFileNames:TStrings):Byte
VAR
idx,NumOfFiles:Byte;
Begin
Result := 0;
idx := 0;
NumOfAttFiles := OutAttFileNames.Count;
ChilkatEmailObj.Mailer := DefaultXMailerTag;
FOR idx := 0 TO NumOfAttFiles-1 DO
Begin
ChilkatEmailObj.AddFileAttachment(OutAttFileNames[idx]);
end;
Result := NumOfFiles;
end;
function
TTeleEmail.AddAttToReplyEmail(ContactRespID:String;OutAttachmentFileNames:TS
trings):Integer;
Begin
Result :=
TeleEmail.PackReplyEmlAttachments(ContactRespID,ReplyEmailNameInZip,ChilkatE
mailOut,OutAttachmentFileNames);
end;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-----------------------------
Jeg håber nogen kan bringe list lys over sagen / forklare hvad forskellen
udgør, hvorfor en pointer ikke peger, hvor jeg forventer v/funtion'en
........????
/ABP
| |
Olav M.J. Christians~ (04-04-2003)
| Kommentar Fra : Olav M.J. Christians~ |
Dato : 04-04-03 10:41 |
|
"Alex B. P." <alexbp@post.tele.dk> skrev i en meddelelse
news:3e8d4749$0$24725$edfadb0f@dread14.news.tele.dk...
[snip]
> Jeg her rimelig forståelse for Delphi syntax'en,
> men står dog lidt uforstående overfor en logisk
> fejl, ved run-time, ved eksekvering af følgende kode:
[snip]
Hvilken fejl får du?
--
M.v.h.
Olav
| |
Alex B. P. (07-04-2003)
| Kommentar Fra : Alex B. P. |
Dato : 07-04-03 20:35 |
|
Det kører uden EXCEPTION's på runtime, men pointeren peger åbenbart på en
instans af E-Mail-objektet, som ikke er den samme, jeg gemmer via en
SaveAsEml-metode via en indkøbt komponent.
Hvis jeg ændrer metoderne lidt, (som tidl. beskrevet, samt VAR spec.
overførsel via Procedure, istedet for function, ja så bliver der faktisk
vedhæfte de valgte attachment's til *.EML-filen - hvorfor mon ??
Alex
"Olav M.J. Christiansen" <omjc@intete-kontor.dk> skrev i en meddelelse
news:3e8d536c$0$32007$edfadb0f@dread12.news.tele.dk...
> "Alex B. P." <alexbp@post.tele.dk> skrev i en meddelelse
> news:3e8d4749$0$24725$edfadb0f@dread14.news.tele.dk...
> [snip]
> > Jeg her rimelig forståelse for Delphi syntax'en,
> > men står dog lidt uforstående overfor en logisk
> > fejl, ved run-time, ved eksekvering af følgende kode:
> [snip]
>
> Hvilken fejl får du?
>
> --
> M.v.h.
> Olav
>
>
| |
Alex B. P. (07-04-2003)
| Kommentar Fra : Alex B. P. |
Dato : 07-04-03 20:38 |
|
Det kører uden EXCEPTION's på runtime, men pointeren peger åbenbart på en
instans af E-Mail-objektet, som ikke er den samme, jeg gemmer via en
SaveAsEml-metode via en indkøbt komponent.
Hvis jeg ændrer metoderne lidt, (som tidl. beskrevet, samt VAR spec.
overførsel via Procedure, istedet for function, ja så bliver der faktisk
vedhæfte de valgte attachment's til *.EML-filen - hvorfor mon ??
Altså, ingen fejl, bare en *.EML-fil som kun indeholder plain-text body,
headers o.s.v. men ingen attachment i 1. model.
Alex
"Olav M.J. Christiansen" <omjc@intete-kontor.dk> skrev i en meddelelse
news:3e8d536c$0$32007$edfadb0f@dread12.news.tele.dk...
> "Alex B. P." <alexbp@post.tele.dk> skrev i en meddelelse
> news:3e8d4749$0$24725$edfadb0f@dread14.news.tele.dk...
> [snip]
> > Jeg her rimelig forståelse for Delphi syntax'en,
> > men står dog lidt uforstående overfor en logisk
> > fejl, ved run-time, ved eksekvering af følgende kode:
> [snip]
>
> Hvilken fejl får du?
>
> --
> M.v.h.
> Olav
>
>
| |
|
|