Fontos,
hogy először is azt találjuk ki, hogy hogyan fog kinézni a program ezen
része. Ennek a problémának a megoldását mindenkinek a saját képzeletére bízom.
A komponens, amit használni fogunk, megköveteli, hogy néhány fontos adatot
adjunk meg, még mielőtt használnánk. Mivel azonban ezek az adatok
különböznek minden felhasználónál, ezért mielőtt a programot használni
kezdené a felhasználó ezeket az adatokat meg kell adnia, ezek után ezek az
adatok a winchesteren tárolásra kerülnek, és a későbbiekben minden
használatnál innen olvasódnak ki. Erre a feladatra (az adatok felvételére és
később a módosításukra) készítsünk egy külön formot.
Ha
mindenkinek a fejében megszületett már a kinézet, akkor lássunk hozzá a dolgok
boncolgatásához.
Tehát
készítenünk kell egy új formot amiben az adatokat fogjuk felvenni, ezt kössük a böngészőnk
menüjének "Levél küldése"
menüpontjához. Majd az új formunkra helyezzünk föl 4
darab labelt és edit-et felváltva. Aki Delphi 6
vagy a fölötti verziót használ az használhatja a labelededit komponenst is. A labeleknek
állítsuk be a következő caption-nöket:
Név:
E-mail cím:
Szerver host:
Felhasználónév:
Majd
helyezzünk fel egy gombot, ennek állítsuk be például a
"Rendben" caption-t.
Én, ha valamilyen adatot fájlba kell menteni, és később onnan kell visszaolvastatni
abban az esetben általában egy sima memo-t használok
melynek meghatározott soraiba kerülnek az adatok elmentve a memo
sorait azok megtalálhatóak lesznek a fájlban.
Ez
gyorsabb, mint a sima fájlkezeléses módszer. Ennek megfelelően helyezzünk
fel a formra egy memo-t, de ennek nincs szerepe a felhasználó részére,
ezért ezt tegyük láthatatlanná: visible := false (Vagy: )
A gomb OnClick eseményéhez kössük a következőket:
if not ((labelededit1.text='')
or (labelededit2.text='')
or
(labelededit3.text='')
or
(labelededit4.text='')) then
begin
memo1.Lines.Append(labelededit1.Text);
memo1.Lines.Append(labelededit2.Text);
memo1.Lines.Append(labelededit3.Text);
memo1.Lines.Append(labelededit4.Text);
memo1.Lines.SaveToFile('.\adat.dat');
close;
end
else
showmessage('Nincs kitöltve
minden mező!');
end;
Természetesen
a fájlnév lehet más is. Ezek után hozzunk létre egy ilyen fájlt, majd a
böngészőnk új levél menüjéhez kössük a következőket:
begin
if not ((form4.memo1.Lines.Strings[0]='') or
(form4.memo1.Lines.Strings[1]='') or
(form4.memo1.Lines.Strings[2]='') or
(form4.memo1.Lines.Strings[3]='')) then
begin
form5.show;
end
else
begin
form4.show;
showmessage('Töltse ki a mezőket!');
end;
end;
A
levélküldő
A fenti
forrásból látszik, hogy létre kell hozni egy form5 nevű formot (nem kell feltétlenül form5-nek lennie, lehet
más is a neve, csak akkor ezen a néven kell rá hivatkozni). Ezen a form5-tön
lesz valójában a levélküldő. Tehát erre a formra
helyezzünk fel egy memo-t,
és egy gombot a gomb caption-jének
állítsuk be: "Levél küldése!". Helyezzünk fel a formra
egy nmsmtp komponenst. Majd a form OnShow eseményéhez kössük a következőket:
nmsmtp1.PostMessage.FromAddress:=form4.memo1.Lines.Strings[1];
nmsmtp1.PostMessage.FromName:=form4.memo1.Lines.strings[0];
nmsmtp1.Host:=form4.memo1.Lines.strings[2];
nmsmtp1.UserID:=form4.memo1.Lines.Strings[3];
Itt nem
fordulhat elő, hogy a különböző beállításokba nem kerül semmi, hiszen
a form csak akkor kerül megmutatásra, ha minden adatot
megadtunk.
Helyezzünk
föl a form-ra egy labelededit-et (régebbi verziót
használók természetesen egy editet és egy labelt) a caption-jének állítsuk be: "A címzett e-mail címe:"
(Ebből lehet többet is küldeni, hisz nem csak egy címzettje lehet egy
e-mail-nek). Ezen kívül kell még két labelededit az egyik a levél témájára
kérdez a másik pedig a válaszcímre. Természetesen a válaszcím lehet a megadott
e-mail cím is ezért ennek a labelededit-nek az OnClick eseményéhez köthetjük a következőt:
labelededit4.Text:=form4.memo1.Lines.Strings[1];
Ezáltal
amikor be akarja írni a felhasználó a válaszcímet akkor automatikusan
felajánlódik a saját címe.
Állítsuk
be a levél küldése gomb OnClick
eseményéhez a következőket:
nmsmtp1.PostMessage.ToAddress.Add(labelededit1.text);
nmsmtp1.PostMessage.ToAddress.Add(labelededit2.text);
nmsmtp1.PostMessage.Subject:=labelededit3.Text;
nmsmtp1.PostMessage.ReplyTo:=labelededit4.Text;
nmsmtp1.PostMessage.Body.AddStrings(memo1.Lines);
panel1.Visible:=true;
nmsmtp1.Connect;
panel1.Caption:='Levél Küldése!';
nmsmtp1.SendMail;
panel1.Caption:='Lekapcsolódás!';
nmsmtp1.Disconnect;
panel1.Visible:=false;
A fenti
forrásból kiderül, hogy egy panelt használtam az állapotok jelzésére, ez
természetesen nem kötött tehát lehet mást is használni.
A
programot különböző egyéb komponensekkel lehet tovább szépíteni, de ezt
mindenkinek a saját fantáziájára hagyom, példának tettem ide annak a formnak a képét, amivel én dolgoztam, remélem ez megindítja
a fantáziáját azoknak akiknek nincs elképzelésük a program kinézetével
kapcsolatban.
Továbbiak
Megnyugtatás
képen, ez a rész volt a leghosszabb az egész böngésző készítése során, de
még hátra van a kedvencek kezelése, a weblap készítő, és a levél fogadó.