![]() |
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 |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
Sagst du uns wenigstens, WAS nicht funktioniert? :roll:
|
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
wie ist denn die Fehlermeldung ?
|
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:
schreibst, das "= true" kannst du weglassen, also einfach
if ftp.Connected = true then
Delphi-Quellcode:
MfG Pr0g
if ftp.Connected then
|
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 |
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. |
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 |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
Zitat:
|
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 |
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
|
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
sry 4 double! |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
Diese Art von Chat ist aber sowas von uneffizient ! Nimm lieber die Indys oder WinSockets.
Und 3 Postings hintereinander muss das sein ? denk doch vorher nach ob dir noch was einfällt wenn du was abschickst. :roll: |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
@pierreb:
ich habe doch schon gesagt, dass man einen normalen chat anders schreiben würde... ich will diese programm aber sspäter als spiel erweitern ziehe daher diese mthode vor... isofaind |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
Mit
Zitat:
|
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
Zitat:
mfg |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
[OT]selbst wenn es als grundlage für eins spiel ist, ist es ineffizent, denn auch bei einem Spiel kann man das ganze im speicher lassen (eben nen extra serverprogramm) oder eben den chat unabhängig von der Dateiarbeit erledigen.
Könntest du bitte den Titel des Threads ändern? Der aktuelle Titel sagt nix über dein Problem aus! du könntest ebenso schreiben, "habe ein problem" was dann auch nicht dem Codex der DP entsprechen würde.[/OT] |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
öhm ist ja alles lieb nd nett, aber die haupt frage hat noch keiner beantworten können: wieso kann ich wenn das programm läuft den browser nicht mehr aktualisieren?
:) hatte ja von anfang an gesagt, dass es nicht die beste methode ist, die es gibt! isofaind |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
Probier mal folgende Timerprozedur:
Delphi-Quellcode:
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'); Application.ProcessMessages; |
Re: Wieso geht dieser Code nicht? (Kompletter Code da)
habs probiert geht leider nicht! hmm... des kann doch nicht sein... beim button connect sage ich ihm doch auch, dass er refreshen soll... jetzt klappt es nichtmehr :(
isofaind |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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