![]() |
quellcode frage zu einem datei senden tutorial mit den indys
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hab mir das datei versenden per indys tutorial von datacool gesaugt. Und komme damit recht gut klar, ich verstehe blos nicht wohin und wie er die empfangene datei abspeichert. Hier der quellcode des servers der die datei empfängt:
Delphi-Quellcode:
unit f_Main;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent, IdTCPServer, ComCtrls; type TfrmMainServer = class(TForm) gb_Einstellungen: TGroupBox; ed_Port: TEdit; TcpServer: TIdTCPServer; IdAntiFreeze1: TIdAntiFreeze; Label1: TLabel; cmd_StartServer: TButton; cmd_EndServer: TButton; Label2: TLabel; lab_SvrStatus: TLabel; gb_Threads: TGroupBox; ScrollBox1: TScrollBox; gb_Test: TGroupBox; pBar: TProgressBar; Label3: TLabel; lab_FileSize: TLabel; Label5: TLabel; lab_ReceivedBytes: TLabel; procedure cmd_StartServerClick(Sender: TObject); procedure cmd_EndServerClick(Sender: TObject); procedure TcpServerExecute(AThread: TIdPeerThread); procedure FormShow(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var frmMainServer: TfrmMainServer; implementation uses FileReceiver; {$R *.DFM} procedure TfrmMainServer.cmd_StartServerClick(Sender: TObject); begin // erstmal eventuelle bestehende Verbindungen trennen TcpServer.Active := false; // Bindings leeren TcpServer.Bindings.Clear; // Port zuweisen, wenn kein gültiger Wert eingetragen ist 9876 als Standard verwenden TcpServer.DefaultPort := StrToIntDef(ed_Port.Text,9876); try TcpServer.Active := true; except raise; end; // Ist der Server erfolgreich gestartet worden ? if TcpServer.Active then begin // jetzt die Anzeige-Elemente dem Status anpassen cmd_EndServer.Enabled := true; cmd_StartServer.Enabled := false; lab_SvrStatus.Font.Color := clGreen; lab_SvrStatus.Caption := 'Gestartet'; end; end; procedure TfrmMainServer.cmd_EndServerClick(Sender: TObject); begin // Server anhalten/deaktivieren try TcpServer.Active := false; except raise; end; // Ist der Server erfolgreich beendet worden if not TcpServer.Active then begin // jetzt die Anzeige-Elemente dem Status anpassen cmd_EndServer.Enabled := false; cmd_StartServer.Enabled := true; lab_SvrStatus.Font.Color := clRed; lab_SvrStatus.Caption := 'Deaktiviert'; end; end; procedure TfrmMainServer.TcpServerExecute(AThread: TIdPeerThread); Var sClientMsg : String; FileReceiver : TFileReceiver; begin try // Clientnachricht lesen sClientMsg := AThread.Connection.ReadLn(#$A,5500); FileReceiver := TFileReceiver.Create(AThread,sClientMsg); try // gültige Nachricht vom Client ? if FileReceiver.ServerMsgOK then begin // Datei jetzt empfangen if FileReceiver.Start then // Bestätigung zum Clientschreiben AThread.Connection.WriteLn('FILEOK') else // Error-Nachricht schreiben AThread.Connection.WriteLn('FILEERROR'); end; finally FileReceiver.free; end; except AThread.Connection.Disconnect; end; end; procedure TfrmMainServer.FormShow(Sender: TObject); begin // test-groupbox löschen gb_Test.free; end; end. Im anhang befindet sich das oben beschriebene tutorial (server + client) |
Re: quellcode frage zu einem datei senden tutorial mit den i
hat keiner ne idee?
is warscheinlich nich so schwer, aber ich komm net drauf.. MfG - Ghost |
Re: quellcode frage zu einem datei senden tutorial mit den i
Zitat:
Delphi-Quellcode:
mit Hilfe eines TFileStream
sFileName := 'C:\'+sFileName;
|
Re: quellcode frage zu einem datei senden tutorial mit den i
ähm, ok , also mit einem TFileStream.
Wo und wie hilft mir deine zeile code weiter? Kannst du das vielleicht etwas präzisieren? z.B. von welchem typ ist sFileName? und wo und wie setzte ich die zeile ein? Danke schon mal - Ghost |
Re: quellcode frage zu einem datei senden tutorial mit den i
Zitat:
|
Re: quellcode frage zu einem datei senden tutorial mit den i
ist die zeile im client oder server?
irgendwie find ich die nicht ... :wall: hab warscheinlich grade tomaten auf den augen. MfG - Ghost |
Re: quellcode frage zu einem datei senden tutorial mit den i
In der Methode Start der Klasse TFileReceiver
|
Re: quellcode frage zu einem datei senden tutorial mit den i
ok, ich bin zu dumm dazu ^^
könntest du bitte den code ausschnitt mit der editierten speicherung auf C:/ posten? Wäre nett. Danke schon mal - Ghost [EDIT] gefunden hm, blos wie kann ihc das zur laufzeit ändern? [/EDIT] |
Re: quellcode frage zu einem datei senden tutorial mit den i
Zitat:
|
Re: quellcode frage zu einem datei senden tutorial mit den i
hm, also ich hab grade mal versucht nen SaveDialog einzubauen:
Delphi-Quellcode:
Aber er sagt SaveDialog1 ist ein undeclared identifier.
f_Main.SaveDialog1.FileName:=sFileName;
if SaveDialog1.Execute then sFileName :=SaveDialog1.FileName; Wie kann ich machen, das ich nicht nur variablen aus der unit f_Main sondern auch z.B. den SaveDialog nehmen kann? [EDIT] man muss die f_Main unter den uses haben und dann vo SaveDialog1 den namen der form nehmen. Sieht dann so aus:
Delphi-Quellcode:
[/EDIT]
frmMainServer.SaveDialog1.FileName:=sFileName;
if frmMainServer.SaveDialog1.Execute then sFileName :=frmMainServer.SaveDialog1.FileName; Danke - Ghost |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz