ich bin neu hier im Forum, sowie relativ unerfahren (nur im Schulunterricht benutzt) mit Lazarus.
Dennoch habe ich mich nach ein paar Projekten daran versucht ein Programm zu schreiben, das mithilfe der WinInet-API eine Datei auf einen FTP-Server läd.
Hier der Quelltext:
Code: Alles auswählen
function putfile(server, username, password, localfile, remotefile: string; port: word = 21): boolean;
var
hopen, hconnect: HINTERNET;
begin
hopen := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
Result := FtpPutFile(hconnect, pchar(localfile), pchar(remotefile), FTP_TRANSFER_TYPE_UNKNOWN, 0);
InternetCloseHandle(hconnect);
end;
procedure TFTP2Form.UploadButtonClick(Sender: TObject);
var
fusername, fpassword, fserver, flocalfile, fremotefile: string;
begin
fusername:=UserEdit.Text;
fpassword:=PasswordEdit.Text;
fserver:=ServerEdit.Text;
fremotefile:=DateiFTPEdit.Text;
flocalfile:=DateiPCEdit.Text;
putfile( fserver, fusername , fpassword , flocalfile , fremotefile );
end;
Nun aber mein Problem: Es funktionert nur, wenn ich anstatt von Variablen, die ich zuvor mit den Editfeldern fülle, die Parameter direkt im Quelltext bestimme.
Bsp.:
Code: Alles auswählen
putfile( '123.456.789', 'benutzer', 'passwort','C:\test.txt','/files/test.txt')
Weiß jemand was ich falsch gemacht habe?
MfG GreyFox