Newsgroup: it.comp.software.newsreader
Titolo: Sondaggino sull'encoding in uscita

Altro sondaggino su un aspetto diverso. 
Ho realizzato una funzioncina che mi determina al volo mentre sto
scrivendo l'encoding migliore da usare. Migliore nel senso di Dialog,
ovvero uso una lista che parte da US-ASCII per poi passare ad i vari
ISO, fino ad arrivare ad UTF8, e da questa determino l'encoding più
"vicino" all'inizio della lista.
La mia domanda è questa, come utilizzare questo encoding?
1) Uso questo e basta, non usando altre impostazioni utente.
2) Permetto cmq all'utente di scegliere un suo encoding di default ed
eventualmente usare questo se lo ritiene?
Insomma come si comportano i vostri newsreader (di sicuro sta cosa la fa
Dialog, altri non saprei)? Oppure come vi piacerebbe si comportassero?
-- 
El nino made me do it.
 |\ |       |HomePage   : 
http://nem01.altervista.org
 | \|emesis |XPN (my nr): 
http://xpn.altervista.org

 che usavo verra` presto abbandonato

 eventualmente usare questo se lo ritiene?
Per me, è più che sufficiente la prima e anzi apprezzo fortemente
questa possibilità che hai implementato.
-- 
09.04.2004 00:29:52, daRkSidE

 vietano l'UTF8], o annullare.
Beh francamente questo mi sembra eccessivo. :-)
-- 
Doesn't expecting the unexpected make the unexpected become the
expected?


 questa possibilità che hai implementato.
Thanks, cerco quando possibile di "acchiappare" le idee buone degli
altri newsreader. :-)
Tralaltro è stato di una semplicità disarmante con Python, ci vogliono 4
righe di codice :-D
-- 
Testa di Vieri deviata da De Rosa" ( Bruno Longhi)


 altri newsreader. :-)
Che è quello che faccio anch'io per Dialog. :-)
-- 
09.04.2004 21:18:58, daRkSidE
Foobar: Charlie Haden - Egberto Gismonti - Silence

 Beh francamente questo mi sembra eccessivo. :-)
E' piu` o meno quello che fa un reader piuttosto diffuso  ;)
-- 
Enrico C
 News: 
www.40tude.com/dialog
 - Mail: 
www.ritlabs.com/the_bat
 
 Local News/Mail Server: 
http://tglsoft.de/misc/hamster_en.htm

 E' piu` o meno quello che fa un reader piuttosto diffuso  ;)
Ehm quale?
-- 
Losing a husband can be hard. In my case it was almost impossible.


 Ehm quale?
Il piu` diffuso. L'innominabile ;)
Se non sbaglio fa proprio qualcosa del genere, ma non usandolo non lo
conosco bene.


 conosco bene.
Pensa che io pensavo che non lo supportasse nemmeno l'utf-8 :-D
-- 
"Quanto erano distanti i veicoli al momento della collisione?"
(Avvocati)



|    
|   
| const
|    
|    suonounicode = 'X:\winnt2\media\ir_inter.wav';
|   // specificare il percorso di un suono di avviso
|   
|   MessageXPost = 'X'+#39+'Posted to:';
|   MessageFup2  = 'FUP2:';
|   MessageFup2WhatIs  = ' [Follow-up to: / Risposte a:] ';  
|   MessageUnicode = '[Unicode Message / Messaggio Unicode]';
| 
|   
|   function PlaySound(Filename: PChar; Options: LongWord): Boolean;
|          external 'sndPla...@winmm.dll stdcall';
|    // funzione Playsound ripresa dallo script Postshow
|     
| 
| Procedure XPost_and_FUp2_Information (var Message: TStringlist;
| Servername: string; IsEmail: boolean);
| var  
| 
|   Unic, // var Unicode
|   FUP2,
|   XPost,
|   Header: boolean;
|   i, 
|   SigLine: integer;
|   s, 
|   Fup2Group,
|   XPostGroups: string;
|      
|         
| begin
|   if IsEmail=true then exit;
|   FUP2:=false;
|   XPost:=false;
|   Header:=true;
|   SigLine:=0;
|   for i:=0 to Message.count-1 do
|     begin;
|     s:= message.strings[i];
|     if s='' then header:=false;
|     if header=true then
|       begin;  
|       
|       // Controllo se Unicode                          
|       if Pos('Content-Type: text/plain; charset="utf-',s)>0 then Unic:=true;
|       
|       
|       if Pos('Followup-To:',s)>0 then
|         begin;
|         FUP2:=true;
|         Fup2Group:=copy(s,13,length(s)-12);
| //      WriteToLog(MessageFup2+Fup2Group,1);
|         end;
|       if Pos('Newsgroups:',s)>0 then
|         if Pos(',',s)>0 then
|           begin;
|           XPost:=true;
|           XPostGroups:=copy(s,12,length(s)-11);
| //        WriteToLog(MessageXPost+XPostGroups,1);
|           end;
|       end
|     else
|       if s='-- ' then
|         SigLine:=i;
| //  WriteToLog('Analysierte Zeile: '+s,1);
|     end;
|   
|   
|   if FUP2=true then                                                  
|     if Sigline=0 then
|        Message.Add(MessageFup2+MessageFup2WhatIs+Fup2Group)          
|     else            
|        Message.Insert(Sigline,MessageFup2+MessageFup2WhatIs+Fup2Group);          
|      
|   if XPost=true then
|     if Sigline=0 then
|       Message.Add(MessageXPost+XPostGroups)
|     else
|       Message.Insert(Sigline,MessageXPost+XPostGroups);
| 
| 
|    if Unic=true then // se messaggio Unicode
|      begin;                                      
|      PlaySound(suonounicode, 1); 
|      if Sigline=0 then
|        Message.add(MessageUnicode)           
|      else            
|        Message.Insert(Sigline,MessageUnicode);             
|      end;
| 
|   if (FUP2=true) or (XPost=true) or (Unic=true) then
|     if Sigline=0 then
|       Message.Add('')
|     else
|       Message.Insert(SigLine,'');
| end;
| 
| 
| function OnBeforeSendingMessage(var Message: TStringlist; Servername:
| string; IsEmail: boolean):boolean;
| begin;
|   result:=true;
|   XPost_and_FUp2_Information (Message, Servername, IsEmail);
| end;
| 
| begin
| end.

 momento dell'invio :)
Idea molto carina :)
Peccato (per quanto mi riguarda) che tu abbia tolto la stringa
"separatore", che mi serviva per l'incolonnamento (inoltre a me
piacerebbe che mettesse automaticamente una riga prima ed una dopo, per
non rimanere appiccicato al messaggio od alla firma)... 
mi sa proprio che, almeno queste banalità, è ora che impari a farle
#^_^# :D

 "separatore", che mi serviva per l'incolonnamento
che peraltro non era presente nella versione originale che tu hai
modificato, ma in una successiva versione modificata da Antonio :)

 #^_^# :D
Sì, ho scelto una forma compatta per non ingombrare troppo, 
però le cose che dici tu si possono riprendere dalla versione
modificata by Gandalf :)
 
[Unicode Message / Messaggio Unicode]
FUP2: [Follow-up to: / Risposte a:]  it.comp.software.newsreader


 MLC :)
...che a sua volta l'ha presa pari pari da altri script :)
-- 
Maria Luisa C - 14/04/04 12.11.16

 Non è proprio quello che avevo in mente [chiedere conferma prima dell'invio UTF,
In realta`, nella mia versione "privata" fa anche questo, con un pop-up,
ma con  un sistema  ancora molto poco elegante e non pubblicabile, per ora
:/
-- 
Le FAQ italiane del newsreader 40tude Dialog
http://fido.altervista.org/Dialog/faq.html
http://www.lillathedog.net/dialog/faq.html


||  
||  // 
||  
||  //  Script originale: XPost - FUP2 warning:
||  //  
http://www.40tude.com/dialog/wiki/index.php?title=ScriptFup2Warning
||  
||  // Modifiche 0.1:
||  // *** aggiunto avviso per esteso in inglese e in italiano in caso di FUP2;         
||  // *** aggiunto avviso di codifica UTF (Unicode);
||  // *** segnale sonoro al momento dell'invio di un messaggio Unicode;
||     
||  // Modifiche 0.2
||  // *** aggiunta riga vuota prima della firma dopo gli avvisi
||  // *** se il messaggio è Unicode, appare una finestra che mostra il messaggio
||  // *** conv i caratteri convertiti in formato Unicode
||  // *** e si può scegliere se inserire o meno l'avviso di Unicode
||   
||  
||  //---------------------------- Impostazioni ---------------------------------//
||  
||  const
||          
||     suonounicode = 'X:\winnt2\media\ir_inter.wav';
||    // specificare il percorso di un suono di avviso
||    
||    MessageXPost = 'X'+#39+'Posted to:';
||    MessageFup2  = 'FUP2:';
||    MessageFup2WhatIs  = ' [Follow-up to: / Risposte a:] ';  
||    MessageUnicode = '[Unicode Message / Messaggio Unicode]';
||                                                    
||  
||    fColor = clBlue;
||    // font color; other possibilities are: 
||    // clAqua, clBlack, clBlue, clDkGray, clFuchsia, clGray, clLime, clLtGray,
||    // clMaroon, clNavy, clOlive, clPurple, clRed, clSilver, clTeal, clWhite, clYellow. 
||    
||    wBGcolor = clWhite;
||    // background color; look at the previous color names.
||    
||    wWidth = 650; 
||    // window width (pixels).
||    
||    wHeight = 450;
||    // window height (pixels).
||    
||    fName = 'Verdana';
||    // font name; you can change it with another on your box:
||    // look at "Settings - General Settings - View" for a list of your fonts.
||    
||    fSize = 9;
||    // font size.
||    
||    fItalic = false;
||     // italic text?  true / false
||     
||    fBold = false;
||     //bold text?  true / false
||     
||    fUnderline = false;
||     // underlined text?  true / false 
||      
||  //-------------------------- Fine Impostazioni -------------------------------// 
||                    
||     
||  
||  function PlaySound(Filename: PChar; Options: LongWord): Boolean;
||           external 'sndPla...@winmm.dll stdcall';
||    
||  
||  var
||  UnicodeForm:TForm;  
||  UnicodeList: TStringList;
||  UnicWarn:Boolean;
||    
||    
||  procedure BtUnicodeAvvisoClick(Sender: TObject); //avviso
||  begin
||  UnicWarn := true;
||  UnicodeForm.Close;
||  end;
||  
||  procedure BtUnicodeNoavvClick(Sender: TObject); //non avvisare
||  begin
||  UnicWarn := false;
||  UnicodeForm.Close;     
||  end;
||   
||      
||  
||  Procedure XPost_and_FUp2_Information (var Message: TStringlist;
||  Servername: string; IsEmail: boolean);
||  var     
||  
||    FUP2,
||    XPost,
||    Header: boolean;
||    i, 
||    SigLine: integer;
||    UnicodeMemo: TMemo;  
||    s, 
||    Fup2Group,
||    XPostGroups: string;
||    UnicodeBtAvviso : TButton;
||    UnicodeBtNoAvv: TButton;                 
||           
||    
||          
||  begin
||    if IsEmail=true then exit;
||    FUP2:=false;
||    XPost:=false;
||    Header:=true;
||    SigLine:=0;
||    for i:=0 to Message.count-1 do
||      begin;
||      s:= message.strings[i];
||      if s='' then header:=false;
||      if header=true then
||        begin;  
||        
||        // Controllo se Unicode                          
||        if Pos('Content-Type: text/plain; charset="utf-',s)>0 then 
||        begin;     
||       
||                
||        PlaySound(suonounicode, 1);     
||        Sleep(1000);
||        
||        // Buildform 
||        UnicodeForm:=tform.create(nil);  
||        UnicodeForm.Height := wHeight;
||        UnicodeForm.Width := wWidth;
||        UnicodeForm.position := poScreenCenter;
||        UnicodeForm.BorderStyle := bsSingle;
||        UnicodeForm.Caption := 'Messaggio Unicode';
||        UnicodeMemo := TMemo.Create(UnicodeForm);   
||        UnicodeMemo.Parent := UnicodeForm;
||        UnicodeMemo.Top := 10;
||        UnicodeMemo.Left := 10;
||        UnicodeMemo.Height := UnicodeForm.ClientHeight-70;
||        UnicodeMemo.Width := UnicodeForm.ClientWidth-20;
||        UnicodeMemo.ScrollBars := ssBoth;
||        UnicodeMemo.Color := wBGcolor;
||        UnicodeMemo.Font.Size := fSize;
||        
UnicodeMemo.Font.Name
 := fName;
||        UnicodeMemo.Font.Color := fColor;
||        UnicodeMemo.Font.Style := [];
||        if fItalic then UnicodeMemo.Font.Style := UnicodeMemo.Font.Style + [fsItalic];
||        if fBold then UnicodeMemo.Font.Style := UnicodeMemo.Font.Style + [fsBold];
||        if fUnderline then UnicodeMemo.Font.Style := UnicodeMemo.Font.Style + [fsUnderline];
||        UnicodeMemo.TabStop := false;
||        UnicodeMemo.ReadOnly := true;
||        UnicodeBtNoAvv := TButton.Create(UnicodeForm);
||        UnicodeBtNoAvv.Parent := UnicodeForm;
||        UnicodeBtNoAvv.Top := UnicodeMemo.Top+UnicodeMemo.Height+UnicodeBtNoAvv.height+6;
||        UnicodeBtNoAvv.Left := UnicodeForm.Width DIV 2 - UnicodeBtNoAvv.Width-15;
||        UnicodeBtNoAvv.Caption := '&Non avvisare';
||        UnicodeBtNoAvv.OnClick := @BtUnicodeNoavvClick;
||        UnicodeBtAvviso := TButton.Create(UnicodeForm);
||        UnicodeBtAvviso.Parent := UnicodeForm;
||        UnicodeBtAvviso.Caption := '&Avvisa';
||        UnicodeBtAvviso.TabOrder := 0;
||        UnicodeBtAvviso.Cancel := true;
||        UnicodeBtAvviso.OnClick := @BtUnicodeAvvisoClick;
||        UnicodeBtAvviso.Top := UnicodeBtNoAvv.Top;
||        UnicodeBtAvviso.Left := UnicodeBtNoAvv.Left+80;
||        // end BuildForm
||        
||         //FillMemo
||         UnicodeList := TStringList.Create();
||         //UnicodeList := Avviso;
||         UnicodeMemo.Lines.Assign(Message);
||          
||         UnicodeList.free;
||         //end FillMemo
||        
||         UnicodeForm.showmodal;     
||         UnicodeForm.free;   
||  
||        end;      
||      
||        
||         if Pos('Followup-To:',s)>0 then
||          begin;
||          FUP2:=true;
||          Fup2Group:=copy(s,13,length(s)-12);
||  //      WriteToLog(MessageFup2+Fup2Group,1);
||          end;
||         if Pos('Newsgroups:',s)>0 then
||          if Pos(',',s)>0 then
||            begin;
||            XPost:=true;
||            XPostGroups:=copy(s,12,length(s)-11);
||  //        WriteToLog(MessageXPost+XPostGroups,1);
||            end;
||         end
||         
||         
||      else
||  
||        if s='-- ' then
||          SigLine:=i;
||  //  WriteToLog('Analysierte Zeile: '+s,1);
||      end;
||    
||    
||  
||    if (FUP2=true) or (XPost=true) or (UnicWarn=true) then
||      if Sigline=0 then
||        Message.Add('')
||      else
||        Message.Insert(SigLine,''+#13+#10);
||        
||        
||        
||    if FUP2=true then                                                  
||      if Sigline=0 then
||         Message.Add(MessageFup2+MessageFup2WhatIs+Fup2Group)          
||      else            
||         Message.Insert(Sigline,MessageFup2+MessageFup2WhatIs+Fup2Group);          
||       
||    if XPost=true then
||      if Sigline=0 then
||        Message.Add(MessageXPost+XPostGroups)
||      else
||        Message.Insert(Sigline,MessageXPost+XPostGroups);
||  
||  
||     if UnicWarn=true then // avviso Unicode
||       if Sigline=0 then
||         Message.add(MessageUnicode)           
||       else            
||         Message.Insert(Sigline,MessageUnicode);             
||  
||  
||  
||    if (FUP2=true) or (XPost=true) or (UnicWarn=true) then
||      if Sigline=0 then
||        Message.Add(''+#13+#10)
||      else
||        Message.Insert(SigLine,''+#13+#10);



||  
||  
||  //  Basato sullo script  XPost - FUP2 Warning
||  //  
http://www.40tude.com/dialog/wiki/index.php?title=ScriptFup2Warning
||   
||  // Modifiche di Enrico C:
||  // *** aggiunto avviso per esteso in inglese e in italiano in caso di FUP2;         
||  // *** aggiunto avviso di codifica UTF (Unicode);
||  // *** segnale sonoro al momento dell'invio di un messaggio Unicode;
||  // *** aggiunta riga vuota prima della firma dopo gli avvisi
||  // *** se il messaggio è Unicode, appare una finestra che mostra il messaggio stesso
||  // *** con i caratteri convertiti in formato Unicode
||  // *** e si può scegliere se inserire o meno l'avviso, o annullare del tutto l'invio.
||  
||  //  Le istruzioni del buildform della finestra si basano sullo script Postshow
||  //  
http://www.40tude.com/dialog/wiki/index.php?title=PostShow
|| 
||  
||  //---------------------------- Impostazioni ---------------------------------//
||  
||  const
||          
||     suonounicode = 'X:\winnt2\media\ir_inter.wav';
||    // specificare il percorso di un suono di avviso, per esempio
||    // suonounicode = 'C:\windows\media\ir_inter.wav';

||  UnicodeForm:TForm; // la finestra 
||  UnicodeList: TStringList; // lista per visualizzare il contenuto della finestra
||  UnicWarn:Boolean; // se si vuole inserire l'avviso "Messaggio Unicode"
||  UnicStop:Boolean; // se si vuole annullare l'invio di un messaggio Unicode 
||                      
||     procedure BtUnicodeNoAvvClick(Sender: TObject); //le azioni del tasto Invia senza avviso
||  begin
||  UnicStop := false;
||  UnicodeForm.Close;     
||  end;
||  
||  procedure BtUnicodeAvvisoClick(Sender: TObject); // le azioni del tasto Invia con avviso
||  begin
||  UnicWarn := true;
||  UnicodeForm.Close;
||  end;
||  
||   
||  procedure BtUnicodeAnnullaClick(Sender: TObject); //le azioni del tasto Annulla invio
||  begin
||  UnicWarn := false;
||  UnicStop := true;
||  UnicodeForm.Close;
||  end;
||   
||  
||  // Qui inizia la procedure che fa il grosso del lavoro
||  Procedure XPost_and_FUp2_Information (var Message: TStringlist;
||  Servername: string; IsEmail: boolean);
||  var     
||  
||    FUP2, // se è stato impostato il FUP2
||    XPost, // se il messaggio è in crosspost
||    Header: boolean; 
||    i, // contatore
||    SigLine: integer; //in che riga si trova la firma, se non c'è firma è 0
||    UnicodeMemo: TMemo; //l'area interna della finestra  
||    s, // contiene le righe del messaggio, una alla volta
||    Fup2Group, //gruppo su cui si chiedono le risposte (FUP2)
||    XPostGroups: string; // gruppi in crosspost
||    UnicodeBtAvviso : TButton; //i tre pulsanti
||    UnicodeBtNoAvv: TButton;   //i tre pulsanti              
||    UnicodeBtAnnulla: TButton; //i tre pulsanti    
||    
||          
||  begin
||    if IsEmail=true then exit; //se è un'email lascia perdere!
||    FUP2:=false; //resetta alcune variabili
||    XPost:=false;
||    Header:=true;      
||    UnicWarn := false;
||    UnicStop := false;
||    SigLine:=0;
||    for i:=0 to Message.count-1 do // per tutte le righe del messaggio
||      begin
||      s:= message.strings[i];
||      if s='' then header:=false;  
||      if header=true then
||        begin  
||        
||  // Controlla se Unicode e nel caso...                         
||  if Pos('Content-Type: text/plain; charset="utf-',s)>0 then 
||  begin     
||       
||  PlaySound(suonounicode, 1); // suona il suono predefinito    
||  Sleep(1000);
||        
||  // Buildform - costruisce la finestra e i tasti
||  UnicodeForm := TForm.Create(nil);
||  UnicodeForm.Caption := 'Messaggio Unicode'; // titolo della finestra
||  UnicodeForm.Height := wHeight;
||  UnicodeForm.Width := wWidth;
||  UnicodeForm.position := poScreenCenter;
||  UnicodeForm.BorderStyle := bsSingle;
||  UnicodeMemo := TMemo.Create(UnicodeForm);
||  UnicodeMemo.Parent := UnicodeForm;
||  UnicodeMemo.Top := 10;
||  UnicodeMemo.Left := 10;
||  UnicodeMemo.Height := UnicodeForm.ClientHeight-60;
||  UnicodeMemo.Width := UnicodeForm.ClientWidth-20;
||  UnicodeMemo.ScrollBars := ssBoth;
||  UnicodeMemo.Color := wBGcolor;
||  UnicodeMemo.Font.Size := fSize;
||  
UnicodeMemo.Font.Name
 := fName;
||  UnicodeMemo.Font.Color := fColor;
||  UnicodeMemo.Font.Style := [];
||  if fItalic then UnicodeMemo.Font.Style := UnicodeMemo.Font.Style + [fsItalic];
||  if fBold then UnicodeMemo.Font.Style := UnicodeMemo.Font.Style + [fsBold];
||  UnicodeMemo.TabStop := false;
||  UnicodeMemo.ReadOnly := true;
||  UnicodeBtNoAvv := TButton.Create(UnicodeForm);
||  UnicodeBtNoAvv.Parent := UnicodeForm;
||  UnicodeBtNoAvv.Top := UnicodeMemo.Top+UnicodeMemo.Height+UnicodeBtNoAvv.height/2;
||  UnicodeBtNoAvv.Left := UnicodeForm.Width DIV 2 - UnicodeBtNoAvv.Width-50;
||  UnicodeBtNoAvv.Caption := '&Senza Avviso';
||  UnicodeBtNoAvv.OnClick := @BtUnicodeNoAvvClick; 
||  UnicodeBtAvviso := TButton.Create(UnicodeForm);
||  UnicodeBtAvviso.Parent := UnicodeForm;
||  UnicodeBtAvviso.Caption := '&Invia';
||  UnicodeBtAvviso.TabOrder := 0;
||  UnicodeBtAvviso.OnClick := @BtUnicodeAvvisoClick;
||  UnicodeBtAvviso.Top := UnicodeBtNoAvv.Top;
||  UnicodeBtAvviso.Left := UnicodeBtNoAvv.Left+80;
||  UnicodeBtAnnulla := TButton.Create(UnicodeForm);
||  UnicodeBtAnnulla.Parent := UnicodeForm;
||  UnicodeBtAnnulla.Caption := '&Annulla Invio';
||  UnicodeBtAnnulla.OnClick := @BtUnicodeAnnullaClick;
||  UnicodeBtAnnulla.Top := UnicodeBtNoAvv.Top;
||  UnicodeBtAnnulla.Left := UnicodeBtAvviso.Left+80;
|| // end BuildForm
|| 
|| //FillMemo - Inserisce il testo del messaggio nella finestra
||  UnicodeList := TStringList.Create();
||  UnicodeMemo.Lines.Assign(Message);       
||  UnicodeList.free;
|| //end FillMemo
||        
||  UnicodeForm.showmodal;     
||  UnicodeForm.free;   
||  
||  end;      
||  
||  
||  
||  // Nei prossimi IF, inserisce le righe di avviso opportune a seconda dei casi
||  // (FUP2, Xpost, Unicode)
||  // prima della firma se presente oppure in fondo al messaggio.
||  // Inserisce anche delle righe bianche per separare gli avvisi dal testo e dalla firma.

|| // Questa è la funzione richiamata quando si preme il tasto di invio,
|| // che richiama la procedure XPost_and_FUp2_Information
|| // che esegue tutto quanto abbiamo visto sopra.
|| // Se la procedure restituisce UnicStop = true, diamo valore false a result,
|| // e ciò annulla l'invio.
||       
||   function OnBeforeSendingMessage(var Message: TStringlist; Servername:
||   string; IsEmail: boolean):boolean;
||   begin;  
||     result:=true;
||    
||     XPost_and_FUp2_Information (Message, Servername, IsEmail);
||     
||      if UnicStop = True then result:=false;  
||       
||   end;
||   
||   begin
||   end.


Un ultimo ritocco [0.4], per dare la possibilita` di salvare un
messaggio Unicode in fase di invio su un file txt esterno [con un clic
sulla cornice della finestra di avviso] 
||   program OnBeforeSendingMessage;
||   uses Forms,StdCtrls;
||                     
||   // Script "Unicode+Fup2+Xpost Information"

||   // *** e si può scegliere se inserire o meno l'avviso, o annullare del tutto l'invio;
||   // *** è opzionalmente possibile salvare il testo Unicode su un file d'appoggio esterno.
||   
||   //  Le istruzioni del buildform della finestra si basano sullo script Postshow
||   //  
http://www.40tude.com/dialog/wiki/index.php?title=PostShow
||  
||   
||   //---------------------------- Impostazioni ---------------------------------//
||   
||   const
||           
||      suonoUnicode = 'X:\winnt2\media\ir_inter.wav';
||     // specificare il percorso di un suono di avviso, per esempio
||     // suonounicode = 'C:\windows\media\ir_inter.wav';
||                        
||     fileUnicode = 'C:\Unicode.txt';      
||     // Il file d'appoggio dove, a richiesta, si può salvare il testo del messaggio
||     // Specificare un percorso esistente. 
||     // Il file verrà creato se mon esiste, sovrascritto se già esiste  
||     // E' importante però che si indichi una cartella esistente, per evitare errori.

||   UnicodeMemo: TMemo; //l'area interna della finestra  
||   UnicodeList: TStringList; // lista per visualizzare il contenuto della finestra
||   UnicWarn:Boolean; // se si vuole inserire l'avviso "Messaggio Unicode"
||   UnicStop:Boolean; // se si vuole annullare l'invio di un messaggio Unicode 
||                       
||      procedure BtUnicodeNoAvvClick(Sender: TObject); //le azioni del tasto Invia senza avviso
||   begin
||   UnicStop := false;
||   UnicodeForm.Close;     
||   end;
||   
||   procedure BtUnicodeAvvisoClick(Sender: TObject); // le azioni del tasto Invia con avviso
||   begin
||   UnicWarn := true;
||   UnicodeForm.Close;
||   end;
||   
||    
||   procedure BtUnicodeAnnullaClick(Sender: TObject); //le azioni del tasto Annulla invio
||   begin
||   UnicWarn := false;
||   UnicStop := true;
||   UnicodeForm.Close;
||   end;
||  
||   procedure BtUnicodeSalvaClick(Sender: TObject); // le azioni del clck [Salva su file esterno] sulla cornice della finestra
||   begin
||   UnicodeMemo.Lines.SaveToFile(fileUnicode);
||  
||  // UnicWarn := false;
||  // UnicStop := true;
||  // UnicodeForm.Close;
||   end;
||                                                 
||    
||    
||   
||   // Qui inizia la procedure che fa il grosso del lavoro
||   Procedure XPost_and_FUp2_and_Unicode_Information (var Message: TStringlist;
||   Servername: string; IsEmail: boolean);
||   var     
||   
||     FUP2, // se è stato impostato il FUP2
||     XPost, // se il messaggio è in crosspost
||     Header: boolean; 
||     i, // contatore
||     SigLine: integer; //in che riga si trova la firma, se non c'è firma è 0
||  

||   UnicodeForm.Caption := 'Messaggio Unicode  [clic sui bordi della finestra per salvare il testo su '+fileUnicode+' ]'; 
||   UnicodeForm.Height := wHeight;
||   UnicodeForm.Width := wWidth;
||   UnicodeForm.position := poScreenCenter;
||   UnicodeForm.BorderStyle := bsSingle;
||   UnicodeForm.OnClick := @BtUnicodeSalvaClick; ///
||   
||  
||   UnicodeMemo := TMemo.Create(UnicodeForm);
||   UnicodeMemo.Parent := UnicodeForm;
||   UnicodeMemo.Top := 10;
||   UnicodeMemo.Left := 10;
||   UnicodeMemo.Height := UnicodeForm.ClientHeight-60;
||   UnicodeMemo.Width := UnicodeForm.ClientWidth-20;
||   UnicodeMemo.ScrollBars := ssBoth;
||   UnicodeMemo.Color := wBGcolor;
||   UnicodeMemo.Font.Size := fSize;
||   
UnicodeMemo.Font.Name
 := fName;
||   UnicodeMemo.Font.Color := fColor;
||   UnicodeMemo.Font.Style := [];
||   if fItalic then UnicodeMemo.Font.Style := UnicodeMemo.Font.Style + [fsItalic];
||   if fBold then UnicodeMemo.Font.Style := UnicodeMemo.Font.Style + [fsBold];
||   UnicodeMemo.TabStop := false;
||   UnicodeMemo.ReadOnly := true;
||   UnicodeBtNoAvv := TButton.Create(UnicodeForm);
||   UnicodeBtNoAvv.Parent := UnicodeForm;
||   UnicodeBtNoAvv.Top := UnicodeMemo.Top+UnicodeMemo.Height+UnicodeBtNoAvv.height/2;
||   UnicodeBtNoAvv.Left := UnicodeForm.Width DIV 2 - UnicodeBtNoAvv.Width-50;
||   UnicodeBtNoAvv.Caption := '&Senza Avviso';
||   UnicodeBtNoAvv.OnClick := @BtUnicodeNoAvvClick; 
||   UnicodeBtNoAvv.Cancel := true;  // Dando ESC si invia nornalmente senza Avviso

||      XPost_and_FUp2_and_Unicode_Information (Message, Servername, IsEmail);


||   program OnBeforeSendingMessage;
Bravo, 7+ [cit.] :)
Ma mi spieghi come mai hai usato l'OnBeforeSendingMessage piuttosto che
un più ovvio/banale/semplice (credo) OnOutgoingMessageCheck? ^__^
-- 
Fare Well!    FIAG 
http://www.fiag.it
 ~ X-Privat 
http://www.x-privat.org
G             40tude Dialog 2.0.10.1it (beta 33) 
http://snurl.com/dialog
Dialog, Agent, Pimmy, Xnews, Gravity... news:it.comp.software.newsreader
Mozilla Suite, Firefox, Thunderbird... news:it-alt.comp.software.mozilla

 un più ovvio/banale/semplice (credo) OnOutgoingMessageCheck? ^__^
Ma a quel punto, il charset e` gia` stato assegnato?
Chiedo, non so.
Comunque ci si puo` provare :)


 Ma a quel punto, il charset e` gia` stato assegnato? Chiedo, non so.
Nemmeno io lo so, ma immagino di sì visto che lo calcola in tempo reale.
Il problema, però, è riuscire a controllare quale sia: non so se possano
funzionare le stesse procedure che hai usato nel tuo script.
-- 
Fare Well!    FIAG 
http://www.fiag.it
 ~ X-Privat 
http://www.x-privat.org
G             40tude Dialog 2.0.10.1it (beta 33) 
http://snurl.com/dialog
Nokia: news:it.tlc.hardware.nokia news:it-alt.tlc.cellulari.nokia.n-gage
Tutto su GPRS: telefoni, modem, abbonamenti flat... news:it-alt.tlc.gprs


