Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wieso geht dieser Code nicht? (Kompletter Code da) (https://www.delphipraxis.net/42889-wieso-geht-dieser-code-nicht-kompletter-code-da.html)

-homer- 25. Mär 2005 13:05


Wieso geht dieser Code nicht? (Kompletter Code da)
 
Delphi-Quellcode:
unit Friends;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, jpeg, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdFTP, OleCtrls, SHDocVw_TLB, urlMon;

type
  TmainForm = class(TForm)
    MainMenu1: TMainMenu;
    Connect1: TMenuItem;
    World1: TMenuItem;
    Hilfe1: TMenuItem;
    Connect2: TMenuItem;
    N1: TMenuItem;
    Beenden1: TMenuItem;
    Panel1: TPanel;
    Image1: TImage;
    text: TEdit;
    bsend: TButton;
    nicks: TListBox;
    ftp: TIdFTP;
    chat: TWebBrowser_V1;
    Timer: TTimer;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button1: TButton;
    procedure Beenden1Click(Sender: TObject);
    procedure Connect2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TimerTimer(Sender: TObject);
    procedure bsendClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  mainForm: TmainForm;



implementation

{$R *.dfm}

procedure Delay(dwMilliseconds: Longint);
var
  iStart, iStop: DWORD;
begin
  iStart := GetTickCount;
  repeat
    iStop := GetTickCount;
    Application.ProcessMessages;
  until (iStop - iStart) >= dwMilliseconds;
end;


procedure TmainForm.Beenden1Click(Sender: TObject);
begin
  mainForm.Close;
end;

procedure TmainForm.Connect2Click(Sender: TObject);
begin
  ftp.Password := 'sag ich nicht ;)';
  ftp.Username := 'friendsmain';
  ftp.Host := 'friendsmain.fr.funpic.de';
  ftp.Connect(true);
  chat.Navigate('friendsmain.funpic.de/chat.txt');
  bsend.Enabled := true;
  timer.Enabled := true;
end;

procedure TmainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ftp.Disconnect;
end;

procedure TmainForm.TimerTimer(Sender: TObject);
begin
  if ftp.Connected = true then
  begin
    chat.Navigate('friendsmain.funpic.de/chat.txt');
  end;
  URLDownloadToFile(nil,pchar('http://friendsmain.fr.funpic.de/chat.txt'),pchar('C:\Fainds-Friends\chat.txt'), 0, nil);
end;

procedure TmainForm.bsendClick(Sender: TObject);
begin
  timer.Enabled := false;
  with OpenDialog1 do
  begin
    Memo1.Lines.LoadFromFile('c:/Fainds-Friends/chat.txt');
  end;
  Memo1.Lines.Text := Memo1.Lines.Text + #13 + text.Text;
  with savedialog1 do
  begin
    memo1.Lines.SaveToFile('c:/Fainds-Friends/chat.txt');
  end;
  ftp.Put('c:/Fainds-Friends/chat.txt', 'chat.txt');
  timer.Enabled := true;
end;

end.


hi mit diesem Code will ich einen kleinen chat schreiben... aber keinen normalen! der eigentlich chat text soll auf dem angegebenen server gespeichert werden! Ich weiß, dass man einen chat auch leichter programmieren kann, aber ich habe mich für diese variante entschieden, weil hierraus später ein spiel werden soll... wäre nett, wenn ihr hier den fehler raus picken könntet! danke

isofaind

malo 25. Mär 2005 13:07

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
Sagst du uns wenigstens, WAS nicht funktioniert? :roll:

ereetzer 25. Mär 2005 13:08

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
wie ist denn die Fehlermeldung ?

Pr0g 25. Mär 2005 13:08

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
Was genau funktioniert denn nicht? Das Speicher, das Laden...

Mit ist noch aufgefallen, dass du
Delphi-Quellcode:
if ftp.Connected = true then
schreibst, das "= true" kannst du weglassen, also einfach
Delphi-Quellcode:
if ftp.Connected then
MfG Pr0g

-homer- 25. Mär 2005 13:12

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
also folgendes klappt:

ich starte das programm. dann klicke ich auf connect. nun ist er zum server connectet... unten in die edit box schreibe ich hallo rein. dann klicke ich auf send. Nun wir der komplette text + dem text unten in der edit hochgeladen! Das funktioniert auch alles. hjabe ich über ein ftp programm getestet! ich habe dem timer gesagt, dass er jede sekunde den chat text aktualisieren soll. das macht er aber nicht... ich muss also mein programm neustarten, damit der text angezeigt wird, den ich geschrieben habe! woran liegt das?


isofaind

jfheins 25. Mär 2005 13:12

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
Erstmal ein paar Änderungen:

Delphi-Quellcode:
procedure TmainForm.TimerTimer(Sender: TObject);
begin
  if ftp.Connected then
  begin
    chat.Navigate('friendsmain.funpic.de/chat.txt'); // was hat das eigendlich für einen sinn ???
  end;
  URLDownloadToFile(nil,pchar('http://friendsmain.fr.funpic.de/chat.txt'),pchar('C:\Fainds-Friends\chat.txt'), 0, nil);
Memo1.LoadfromFile ('c:/Fainds-Friends/chat.txt'); // damit lädt er das dann auch ...
end;

procedure TmainForm.bsendClick(Sender: TObject);
begin
  timer.Enabled := false;
  Memo1.Lines.LoadFromFile('c:/Fainds-Friends/chat.txt');

  Memo1.Lines.Add (text.Text);

  // Open und close-dialog brauchste nicht, wenn du sie nicht benutzt ...

  memo1.Lines.SaveToFile('c:/Fainds-Friends/chat.txt');
 
  ftp.Put('c:/Fainds-Friends/chat.txt', 'chat.txt');
  timer.Enabled := true;
end;

end.

-homer- 25. Mär 2005 13:14

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
hi,
@jfheins: der sinn liegt darin, dass der browser ('chat'), jede sekunde den aktuellen chat text von dem ftp server anzeigen soll

isofaind

Luckie 25. Mär 2005 13:18

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
Zitat:

Zitat von -homer-
hi,
@jfheins: der sinn liegt darin, dass der browser ('chat'), jede sekunde den aktuellen chat text von dem ftp server anzeigen soll

Und was denkst du, wie performant das werden wird? Vorallem wirst du das im Internet nicht schaffen sekündlich die Datei runterzuladen.

-homer- 25. Mär 2005 13:24

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
@luckie:
es ist egal wie ich den timer einstelle! habe auch schonmal mit einer minute versucht! ich kann sogar manuell per knopfdruck versuchen den browser zu aktivieren! der reagiert nicht!


isofaind

-homer- 25. Mär 2005 13:26

Re: Wieso geht dieser Code nicht? (Kompletter Code da)
 
das problem liegt darin: am anfang hab ich dem prog gesagt der browser soll eine bestimmte seite anzeigen... später kann ich diese seite nicht aktuallisieren... egal ob manuell oder mitm timer


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz