Alapok

Alapok
2005-02-15T17:51:36+01:00
2005-12-18T19:54:49+01:00
2022-07-19T21:26:33+02:00
Mate1234
Megszereztem nehezen a Delphi 5.0-át. Eddig Pascalban programoztam és azt hallottam, hogy a Delphi is hasonló. Amikor viszont elindítottam a Delphi egyik mellékelt példaprogramját, már az első sornál ledöbbentem:

unit valami;
Amikor pedig tovább olvastam, akkor rá kellett jönnöm, hogy ez kísértetiesen hasonlít egy pascalos unithoz. Én eddig úgy tudtam, hogy az unitokat nem lehet futtatni, de hát új nyelv, új szabályok.
Elolvastam az egészet és arra jutottam, hogy csak alprogramok vannak benne, semmijen alap begin...end. (Ez alatt a program törzsét értem és nem az alprogramét.)
Ennek a kiterjesztése .dpr volt és szépen futott.
Ezután rendeltem egy könyvet a Kiskapu könyváruházban. Másnap jött az E-mail, hogy a könyv elfogyott és nem tudják tejlesíteni a kérést.
Valakit kérek, hogy oszlassa el a homályt és árulja el, hogy egy Delphi programnak mi a szerkezete?
Előre is köszönöm.
Addig is:
Mutasd a teljes hozzászólást!
Akkor alakítsd át a Project1.dpr-t erre:
program Project1; uses SysUtils, Windows, MNFTP; var FTP: TMNFTP; begin try FTP := TMNFTP.Create(nil); try FTP.Host := '' FTP.Port := 21; FTP.Timeout := 5000; FTP.UserID := ''; FTP.Password := ''; FTP.Connect; { stb. } finally FreeAndNil(FTP); end; except on E: Exception do Windows.MessageBox(0, PChar(E.Message),'Hiba', mb_ok); end; end.
De ne konzol alkalmazás legyen, ha nem akarod a konzol ablakot felvillanni (azaz az $APPTYPE CONSOLE sort törölni kell)
Mutasd a teljes hozzászólást!

  • A Delphiben már projectközpontú a dolog, alapesetben egy alkalmazás unitokból áll, ezek többnyire formokhoz (ablak) kapcsolódnak, s a projekt indítgatja el/hívja meg a megfelelő unitokat (lásd project menü--> view source, talán ez az a kiindulópont amit kérdezel).

    Pár link kezdéshez:
    nézd meg ezt
    és ezt
    Mutasd a teljes hozzászólást!
  • célszerü lenne -esetleg könyvtári- delphivel foglalkozó könyvet átlapozni!
    Ja és egy OOP-set!

    alapesetben ha kérsz egy NewApplicationt, kapsz egy programot, amit ritkán turja az ember.
    program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.

    Az Application objectum a "programod", az application objektum "megjelenítője" egy TForm ami némileg vezérli az application-t. Ezt szokták MainForm.nak hívni, mert a pointere application.mainform-on keresztül elérhető


    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end.

    Az ember általában itt építkezik, de nem ez a program....!
    Mutasd a teljes hozzászólást!
  • És azt meg lehet úgy oldani, hogy még mielőt a felhasználónak átadja a vezérlést, végrehajt valamilyen parancsot? Konkrétan egy FTP csatlakozásra gondolok. Bróbáltam beírni még az Aplication.run elé, de ott nem igen szereti. Pedig az egyik alprogramba minden további nélkül végrehajtja, ha rákattintanak a megfelelő gombra:


    NMFTP1.Host := 'ftp.kiszolgalo.hu'; NMFTP1.Port := 21; // NMFTP1.Timeout := 5000; NMFTP1.UserID := 'felhasználónév'; NMFTP1.Password := 'jelszó'; try NMFTP1.Connect; except On E:Exception do writeln(E.message); end
    Azt is megbróbáltam, hogy az unti végére egy begin...end-et beraktam, de ott se fogadta el.
    Mutasd a teljes hozzászólást!
  • ezt ugy érdemes hogy az adott form unitjába írod. Ugye van egy begin end. a unitok végén is, ami legelőször fut le, na ide kell pakolni az ftp-s kódokat.
    Mutasd a teljes hozzászólást!
  • Nem fogadja el.
    Az ftp-s parancsok -azt hiszem- egy tform1-ben vannak. Az alprogram neve:

    tform1.button1click(sender: tobject);

    Ez annak az alprogramnak a neve, ami használja a parancsszavakat.
    Valami olyan kéne, hogy jelzem, hogy a parancsszó a TForm1-ben van.
    Próbáltam már így is:

    TForm1.NMFTP1.Host := 'ftp.freeweb.hu';

    De így se jó.
    De miután beírtam, lejött egy menü. Azt sem tudom, hogy mi. Kérlek segítsetek!
    Mutasd a teljes hozzászólást!
  • ennek mennie kéne:

    tform1.button1click(sender: tobject) begin NMFTP1.Host := HostTxt.Text; NMFTP1.Port := StrToInt(PortTxt.Text); NMFTP1.Timeout := 5000; NMFTP1.UserID := UserTxt.Text; NMFTP1.Password := PassTxt.Text; try NMFTP1.Connect; except On E:Exception do writeln(E.message); end; end;

    amugy amit alprogramnak hívsz az egy egyszerű esemény (gombnyomás), ami egy kellemes dolog a pascalhoz képest.
    Mindenesetre valahonnan szerválj egy könyvet, mert azzal arany... na jó, könnyebb életed lesz!
    Mutasd a teljes hozzászólást!
  • A Delphi-ben kattints egyszer a form egy üres területére.
    Ezután a form mellett a bal oldalon az "Object Inspector" nevű ablakban kattints az "Events" feliratú fülre.
    Itt keresd ki azt, hogy OnCreate.
    Ha megvan, akkor az OnCreate mellett levő fehér részbe (listbox) kattints duplán.
    Ha minden igaz, akkor most feljött a szerkesztő ablak, aminek valami ilyesmi a tartalma:

    procedure TForm1.FormCreate(Sender: TObject); begin end;

    Na, ide, a begin ... end közé írd be azokat az ftp-s "parancsszavaidat".
    Elméletileg így működnie kell.

    Üdv: psc

    Mutasd a teljes hozzászólást!
  • Mondjuk jó lenne tudni hogy a NMFTP1-nek ki az ownere, mert azért nem eszi meg, mert még nincs létrehozva...

    Én nem szeretem várattatni a user-t, tehát elindítja a prg-t és csak ül,... és csak ül... ja és végre megjelent az ablak...

    Vannak trükkök, hogy az első ablak aktiválásakor (megjelenítés után) hajtson végre az ember egy feladatott, (én az OnActivate-ra szoktam ülni, amiben egy boolean változóval gondoskodom, hogy egyszer hajtodjon végre...)
    Mutasd a teljes hozzászólást!
  • Ennek a progamnak épp az lenne a lényege, hogy csak egyszerűen felcsatlakozik az FTP szerverre, és onnan leszed valamit.

    Ablak tulajdonképpen nem is kell.
    Mutasd a teljes hozzászólást!
  • Ha jól értem, azt szeretnéd, hogy a Főform megjelenése előtt hajtódjon végre egy FTP csatlakozás?

    A Delphiben az unitok végére már nem begin end-et szokás rakni, hanem van külön

    -initialization
    -finalization

    rész. Az első a program kezdetén, a második a program végén hajtódik végre.

    var FTP: TMNFTP; initialization try FTP := TMNFTP.Create(nil); try FTP.Host := '' FTP.Port := 21; FTP.Timeout := 5000; FTP.UserID := ''; FTP.Password := ''; FTP.Connect; { stb. } finally FreeAndNil(FTP); end; except on E: Exception do Windows.MessageBox(0, PChar(E.Message),'Hiba', mb_ok); end; finalization end.
    Mutasd a teljes hozzászólást!
  • Akkor alakítsd át a Project1.dpr-t erre:
    program Project1; uses SysUtils, Windows, MNFTP; var FTP: TMNFTP; begin try FTP := TMNFTP.Create(nil); try FTP.Host := '' FTP.Port := 21; FTP.Timeout := 5000; FTP.UserID := ''; FTP.Password := ''; FTP.Connect; { stb. } finally FreeAndNil(FTP); end; except on E: Exception do Windows.MessageBox(0, PChar(E.Message),'Hiba', mb_ok); end; end.
    De ne konzol alkalmazás legyen, ha nem akarod a konzol ablakot felvillanni (azaz az $APPTYPE CONSOLE sort törölni kell)
    Mutasd a teljes hozzászólást!
  • Hali!

    Én innen tanultam a delphi alapokat, szerintem egy rohadt jó könyv, minden tök jól le van írva benne.... Érdemes megvenni

    karika200
    Mutasd a teljes hozzászólást!
  • Mindenkinek köszönöm a segítséget. Sikerült.
    Mutasd a teljes hozzászólást!
  • A könyvet megrendelem. Köszi.
    Mutasd a teljes hozzászólást!
  • hello all
    A a 1ik cikben emlitell socket.h allomany az az en c-m ben nincs meg honnan tudok ra szert tenni?
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd