AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Statusbar Text, Panelbreite
Thema durchsuchen
Ansicht
Themen-Optionen

Statusbar Text, Panelbreite

Ein Thema von max2621 · begonnen am 17. Jan 2008 · letzter Beitrag vom 18. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
max2621

Registriert seit: 26. Dez 2007
Ort: Molfsee
25 Beiträge
 
#1

Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 20:53
Hallo,

Erneut sind fürmich einige Probleme nicht lösbar:

1.Ich habe mit Indy10 einen Telnet Client als Procedure geschrieben. Die Rückmeldungen des clients sollen jeweils in ein Panel der Statusbar geschrieben werden. Es gelingt mit dem folgenden Code die Meldungen des Servers jeweils in ein Memofeld zu schreiben. Im Panel passiert nichts beziehungsweise es erscheint nach disconnect nur die letzte Meldung:

Delphi-Quellcode:
procedure TForm1.TSReader;

begin

      TCPClient.Connect;
      if TCPClient.Connected then begin

      msg:= TCPClient.IOHandler.ReadLn;
      Memo1.Lines.add(msg);

      TCPClient.IOHandler.WriteLn('stop');
      msg:= TCPClient.IOHandler.ReadLn;
      Memo1.Lines.add(msg);
      statusbar1.Panels[2].Text:=msg;

      sleep (1000);

      TCPClient.IOHandler.WriteLn(tune);
      msg:= TCPClient.IOHandler.ReadLn;
      Memo1.Lines.Add(msg);
      statusbar1.Panels[2].Text:=msg;

      TCPClient.IOHandler.WriteLn('stall 30');
      msg:= TCPClient.IOHandler.ReadLn;
      Memo1.Lines.add(msg);
      statusbar1.Panels[2].Text:=msg;

      TCPClient.IOHandler.WriteLn(play);
      msg:= TCPClient.IOHandler.ReadLn;
      Memo1.Lines.Add(msg);
      statusbar1.Panels[2].Text:=msg;

      TCPClient.IOHandler.WriteLn('play vlc1');
      msg:= TCPClient.IOHandler.ReadLn;
      Memo1.Lines.Add(msg);
      statusbar1.Panels[2].Text:=msg;

      TCPClient.Disconnect;

      VLCPlugin1.stop;
      VLCPlugin1.addTarget('http:wjonat.dyndns.org:80 :http-caching=3000)', null, VLCPlayListInsert, 0);
      Memo1.Lines.Add(msg);
      statusbar1.Panels[2].Text:=msg;
      VLCPlugin1.play;

   end;
end;

Was mache ich falsch?


Das zweite von mir nicht gelöste Problem betrifft die Breite eines Panels. Bei Grössenänderung des ProgrammFensters wird jeweils das rechte äusserste Panel (bei z.B. 3 Panels) angepasst, die beiden anderen Panels behalten ihre Breite. Ist es möglich, das die Breite desrechten Panels konstant bleibt aber das mittlere angepasst wird??

Wie man unschwer erkennt bin ich blutiger Anfänger und bin für jede Hilfe dankbar.

Euer Max2621
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#2

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:06
Hallo Max,
zum ersten Punkt kann ich nix sagen, aber zum 2ten:
Na klar geht das! Du musst die Breite des 2ten (oder auch des 1sten Panels) anpassen, wenn sich die Fensterbreite ändert. Deine Anpassung muss beide Panels so in der Breite verändern, dass immer der gleiche Rest (für das dritte Panel) übrig bleibt. Wo musst du die Breite neu festlegen? Da bin ich mir nicht so sicher, würde sagen im OnResize-Event (Alternative wäre sonst noch OnDrawPanel)
Gruß Ralph
Ralph
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#3

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:06
Formatiere doch bitte erst einmal Deinen Code  Dein Code Die entsprechenden BBCodes findest Du oberhalb der Textbox zum Schreiben der Nachricht (oder von Hand '['delphi']' bzw. '['/delphi']' (die eckigen Klammern jeweils ohne ')).

Zu deinem 2. Prob:
Code:
Breite des mittleren Panel := Breite des Fenster's (Statusleiste) - Breite des rechten Panel's - Breite des Linken Panel's
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:12
In erster Instanz dürfte die ein Application.ProcessMessages nach jeder Textänderung helfen. Du kommst ja aus deiner Methode nicht zurück und deswegen kann sich der TExt auch nicht ändern, denn das steht in einer anderen Methode.
Das Memo schafft es (über sendmessage) sich selber zu verändern, das macht die Statusbar (und die meisten anderen Kompos)nicht. Das ist von dem Memo auch nicht so schön, aber nicht zu vermeiden.

Du solltest aber die Strktur deines Programmes noch mal Grundlegend überdenken. Du solltest mer ereignisorientiert arbeiten. Ich vermute, dass wird dir jetzt nicht viel sagen. Also: Du schickst ein Zeichen los. Das ist eine Methode und dann ist diese fertig. Bestimmt hat deine Komponente ein Ereignis, dass ausgelöst wird, wenn eine NAchricht zurückkommt. Nimm diese und mache dann deine nächsten Schritte. usw.... Dann benötigst du auch kein hässliches "sleep" und kein Application.processMessages.


Größe ändern:
Auch wieder auf ereignisse reagieren. Die Statusbar hat das Ereignis onResize. Genau dort ist es an der Zeit deine Panels neu auszurichten.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
max2621

Registriert seit: 26. Dez 2007
Ort: Molfsee
25 Beiträge
 
#5

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:26
Lieber Stefan, lieber Ralph,

vielen Dank für Eure schnelle Hilfe. Wenn ich darf möchte ich nochmal nachlegen. Das Problem ist, dass die Grösse des rechten Panels auch bei Verkleinern gleich bleibt und nur das mittlere die Grösse anpasst.

Ich hoffe ich drücke mich klar genug aus.

Code werde ich nächstes Mal richtig schreiben, wie gesagt blutiger Anfänger.

Euer
Max 2621
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#6

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:34
Deinen Code kannst Du / solltest Du immer noch "anpassen", denn bis zu einer Stunde nach dem Post kannst Du ihn noch editieren...

Zitat von max2621:
Ich hoffe ich drücke mich klar genug aus.
Nö...

Zitat von max2621:
Das Problem ist, dass die Grösse des rechten Panels auch bei Verkleinern gleich bleibt und nur das mittlere die Grösse anpasst.
Welches Panel möchtest Du denn anpassen ???

Das mittlere beim Vergrössern und das rechte beim Verkleinern
  Mit Zitat antworten Zitat
max2621

Registriert seit: 26. Dez 2007
Ort: Molfsee
25 Beiträge
 
#7

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:34
Lieber Sirius,

auch Dir vielen Dnk. Ich begreiffe glaube ich was Du meinst und werde mich weiter vorantasten. Zum Problem 1 und dem ausgelösten Ereigniss. Ich will über den Telnetclient Befehle an den Server schicken die dieser jeweils nach abarbeiten mit einer Meldung quittiert. Dann folgt der nächste Befehl u.s.w. (Umschalten von TV Programmen auf einem Streaming Server).
Ist es unverschämt wenn ich Dich bitte ein kurzes Beispiel anhand meines Codes zu schicke. Ich will aber keinesfalls unverschämt sein.
Auch so hast Du geholfen.

Max 2621
  Mit Zitat antworten Zitat
max2621

Registriert seit: 26. Dez 2007
Ort: Molfsee
25 Beiträge
 
#8

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:38
Lieber Stefan,

wie Du siehst lerne ich noch.

Gruss Max 2621
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:40
Wenn du mir noch kurz sagst, welche Komponenten du verwendet hast...
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
max2621

Registriert seit: 26. Dez 2007
Ort: Molfsee
25 Beiträge
 
#10

Re: Statusbar Text, Panelbreite

  Alt 17. Jan 2008, 21:41
Lieber Stefan,

das mittlere soll die Grösse ändern oder anpassen egal ob vergrössern oder verkleinern., das rechte immer gleich bleiben.

Gruss Max 2621
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.
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