Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fortschrittsanzeige in RichEdit? (https://www.delphipraxis.net/154530-fortschrittsanzeige-richedit.html)

Yakumo500 14. Sep 2010 15:27

Fortschrittsanzeige in RichEdit?
 
Hi,

Seit einiger Zeit programmiere ich an einem Chat (Oh Wunder gabs ja noch nie xD).
Dieser soll mit Streaming und Datenübertragung sein (weswegen ich euch wahrscheinlich noch belästigen werde).
Auf jeden Fall habe ich mir jetzt überlegt wie ich denn eine Fortschrittsanzeige in das JvRichEdit bekomme, die den Download Fortschritt anzeigt (so ähnlich wie in MSN oder Skype).
Geht das mit einem Ole Objekt, das ich einfach in das RichEdit einfüge? Und wenn ja habt ihr vielleicht ein Tutorial für das Erstellen eines Ole Objektes?

p80286 14. Sep 2010 17:13

AW: Fortschrittsanzeige in RichEdit?
 
Zitat:

Zitat von Yakumo500 (Beitrag 1049566)
Hi,

.... wie ich denn eine Fortschrittsanzeige in das JvRichEdit bekomme, die den Download Fortschritt anzeigt (so ähnlich wie in MSN oder Skype).

Warum denn in? Tut's denn daneben, darüber darunter nicht auch?
Für meinen Geschmack hat ein Richedit und eine Fortschrittsanzeige nichts, aber auch garnichts miteinander zu tun! Vielleicht könnte man ein transparentes Form über das Richedit legen, auf dem eine Fortschrittsanzeige zu sehen ist?

Gruß
K-H

implementation 14. Sep 2010 17:18

AW: Fortschrittsanzeige in RichEdit?
 
Wieso nimmst du nicht sowieso einen TWebbrowser dafür? Der ist doch viel flexibler...

Yakumo500 14. Sep 2010 18:26

AW: Fortschrittsanzeige in RichEdit?
 
Mh bei dem Webbrowser bin ich aber dann auf den Internet Explorer angewiesen und wenn der auf dem System nicht funktioniert geht mein Chat auch nicht.
Außerdem will ich auch etwas dazulernen.

Sora 14. Sep 2010 21:08

AW: Fortschrittsanzeige in RichEdit?
 
Hi,

wenn du beides in einer Komponente haben willst musst du eine neue Komponente erstellen, vlt. so in dieser Art:

Delphi-Quellcode:
type
  tMyRichEdit = class(tRichEdit)
  private
    FProgressBar: TProgressBar;
    ...
  protected ...
  public ...
  published
    ProgressBar: TProgressBar READ FProgressBar; //WRITE FProgressBar;
    ...
  end;
Und für den Fortschrittsbalken (so in der Art):

Delphi-Quellcode:
procedure SetProgressBar(Send, Total: double);
begin
  MyRichEdit1.ProgressBar.Position:=round(100* Send/Total);
end;
Ich hoffe, dass ich dein Problem richtig verstanden habe und dir helfen konnte.

Liebe Grüße


Sora

EDIT: Stimmt Sir Rufo, READ+WRITE ist für mich einfach Standard und ich habe nicht dran gedacht, dass nur ein READ gesetzt werden darf. Entschuldigung.

Sir Rufo 14. Sep 2010 21:40

AW: Fortschrittsanzeige in RichEdit?
 
Wohl doch eher so
Delphi-Quellcode:
type
  tMyRichEdit = class(tRichEdit)
  private
    FProgressBar: TProgressBar;
    ...
  protected ...
  public ...
  published
    property ProgressBar: TProgressBar READ FProgressBar; // nur lesend auf den Instanz-Zeiger!!!
    ...
  end;

sx2008 15. Sep 2010 03:52

AW: Fortschrittsanzeige in RichEdit?
 
Also ich würde die Fortschrittsanzeige an den Datenstrom anbinden und nicht an das Richedit-Control.
(Moderator Lucky hat eine StreamProgressAdapter Klasse; leider finde ich den Link dazu nicht mehr.)
Dazu muss das Chat-Protokoll natürlich so ausgelegt sein, dass der Empfänger im Voraus mitgeteilt bekommt, wieviele Bytes er zu erwarten hat.
Andererseits sind Chat-Nachrichten so kurz, dass sie in einem Netzwerk (>500kbit/s) so schnell übertragen sind, dass eine Fortschrittsanzeige sinnlos ist.
Nur bei einem Peer-to-Peer Filetransfer würde das Sinn machen.
Und beim Filetransfer ist das Richedit-Control ja gar nicht beteiligt.

himitsu 15. Sep 2010 05:44

AW: Fortschrittsanzeige in RichEdit?
 
Du kannst den TWebBrowser auch nur für die Anzeige der lokal zusammengestellten Daten verwenden, dann ist er garnicht am Datentransfer beteiligt und es ist egal ob der IE ins Internet kommt oder nicht.

Den Fortschritt könnte man über DIVs oder eine TABLE gestallten.
Programmseitig hat man Zugriff auf's DOM des TWebBrowsers und kann den Inhalt auch geziehlt verändern, wie z.B. die Breite der angezeigten DIVs.

Progman 15. Sep 2010 07:13

AW: Fortschrittsanzeige in RichEdit?
 
Vielleicht als Denkanstoß:
Auf dem Canvas eines RichEdit kann man auch zeichnen. Jedenfalls beim TJvRichEdit klappt das. Vielleicht mal in die Richtung experimentieren? :)

Yakumo500 15. Sep 2010 12:11

AW: Fortschrittsanzeige in RichEdit?
 
@sx2008: Ich möchte die Fortschrittsanzeige ja auch für den Dateitransfer nutzen und nicht für die einzelnen Chat-Nachrichten.
@Progman: Danke das werde ich mal probieren.
//Edit: Bei mir existiert beim TJvRichEdit das Canvas nicht!


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

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