On 11/07/2010 22:06, Andrew Evans wrote:
Hello I am building a simple python app to further educate myself.

I am almost some what complete with this application. However I can not think how to add more than one entry to a TextBox. So when I input the first value it stays and then the second value third and so forth right now it replaces the first value with the second etc etc

You currently have this for setting the text in the textbox:

        self.output.Text = str(self.entry_input.Text + "\n")

This replaces the current text with next text. Instead try:

        self.output.Text += (self.entry_input.Text + "\n")

No need for the call to str - the Text property of a textbox is already a string.

All the best,

Michael



Here is my app code

#PYTHON#


import clr
clr.AddReference("PresentationFramework")
clr.AddReference("PresentationCore")

from System.IO import File
from System.Windows.Markup import XamlReader
from System.Windows import *

import socket
from threading import *
import cPickle

CMD_MSG = range(1)

class Chat(object):
    def __init__(self):
      mythread = Thread(target=self.server)
      mythread.start()
      stream = File.OpenRead("p2pChat.xaml")
      self.root = XamlReader.Load(stream)
      self.ip_address_input = self.root.FindName('ip_address')
      self.sendB = self.root.FindName('send')
      self.output = self.root.FindName('textbox')
      self.entry_input = self.root.FindName('entry')
      self.sendB.Click += self.sendit

    def server(self):
      self.port = 9000
      self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.s.bind((socket.gethostbyname(socket.gethostname()), int(self.port)))
      #print socket.gethostbyname(socket.gethostname())
      while True:
        msg, addr = self.s.recvfrom(2024)
##        cmd, msg = ord(msg[0]),msg[1:]
##        if cmd == CMD_MSG:
        self.output.Text = str(msg) + "\n"

    def client(self, msg):
        self.port = 9000
        self.host = self.ip_address_input.Text
self.se <http://self.se> = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.se.sendto(str(self.host) + " : " + msg, (self.host, int(self.port)))

    def sendit(self, s, e):
        self.client(str(self.entry_input.Text))
        self.output.Text = str(self.entry_input.Text + "\n")
        self.entry_input.Text = ""



myChat = Chat()


app = Application()
app.Run(myChat.root)

Thanks in advance :-)



_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog

READ CAREFULLY. By accepting and reading this email you agree, on behalf of your 
employer, to release me from all obligations and waivers arising from any and all 
NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, 
confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS 
AGREEMENTS") that I have entered into with your employer, its partners, licensors, 
agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. 
You further represent that you have the authority to release me from any BOGUS AGREEMENTS 
on behalf of your employer.


_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to