Announcement

Collapse
No announcement yet.

Gibt es eine oder mehrere Dispatch functionen pro componente?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gibt es eine oder mehrere Dispatch functionen pro componente?

    hallo. ich hab da mal wieder eine frage bezüglich componenten schreiben. ich erklär erstmal die situation und stell dann meine frage:
    also, ich schreibe eine componente, die die dispatch function überschreibt. derjenige, der die componente benutzt, benutzt sie gleich mehrmals, dh., wenn die componente TTCPSocket heisst, dass er TCPSocket1, TCPSocket2 und TCPSocket3 hat. gibt es nun auch 3 dispatch functionen? oder erhält jetzt ein und die selbe function alle window messages für die componente?

    ich wäre SEHR dankbar, wenn mir das jemand beantworten könnte!!

    danke sandman

    ps: ich hab das zwar schon mal gefragt, aber vielleicht kennt ja doch jemand eine antwort darauf: was ist der "Sender" bei event handlern? und wie kann ich ihn angeben?

  • #2
    Hi,

    1) wenn Du Dispatch überschreibst, solltest Du sie virtual deklarieren.<br>
    IMHO wird die abgeleitete Dispatch nur abgearbeitet, wenn Du sie explizit aufrufst (also vor oder nach Deiner Bearbeitung Aufruf der Dispatch der Basisfunktion).<br>

    2) In der VCL ist Sender allgemein vom Typ TObject. Da alle VCL-Komponenten mindestens von TObject abgeleitet sein müssen, kannst Du um aus einer Komponente Sender zu übergeben this einsetzen.

    Gru&#223

    Comment


    • #3
      hallo. was heisst IMHO? ...hmm ist bestimmt auch nicht so wichtig. also ich mach das mit den macros (BEGIN_MESSAGE_MAP
      MESSAGE_HANDLER END_MESSAGE_MAP) aber ob das jetzt eine antwort auf meine frage war, hab ich nich so ganz verstanden also mein problem iss ja: ich schreibe eine internet (winsock) componente. winsock schickt, wenn sie irgendwas empfängt, messages an mein fenster. wenn ich, sagen wir mal, 3 instanzen (das heisst doch so?) von meiner componente habe und aber nur eine message an mein fenster gesendet wird, kommt die message dann bei jeder instanz einmal vorbei? ich würde das dann so machen, dass ich einfach den socketdeskiptor, den in der window message drinsteht mit dem socketdeskriptor aus der instanz vergleiche. wenn sie unterschiedlich sind, mach ich erstmal gar nichts... dann geh ich aber davon aus, das die message auch nochma an die anderen instanzen geschickt wird, damit die richtige instanz sie abfängt/was damit machen kann. ist das nun so, oder teilen sich die instanze eine dispatch function?

      thx sandma

      Comment


      • #4
        Also IMHO soll heissen meiner Meinung nach, ist aber recht lang und wird in Newsgroups(die ich kenne) oft so abgekürzt (in my human opinion soll das wohl heissen). Das Kürzel war eigentlich nicht so wichtig, sorry.

        Jetzt kenne ich mich mit den Internet Komponenten nicht so gut aus, aber eigentlich kann nur die Komponente die Message bekommen, an deren Handle die Nachricht verschickt wurde. Ich denke, wenn das Fenster die Message abfängt und Du sie dann weiterleiten willst, musst Du die Nachrichten dann auch an das entsprechenden Handle weiterleiten, oder direkt ansprechen. Wie jetzt mit Deiner Message zu verfahren ist, kann ich leider nicht sagen.

        Bisher kam ich immer ohne die o.g. Macros aus, indem ich die Dispatch() überschrieb und dann die Message auswertete, aber ich denke es gibt bestimmt genügend Fälle, wo das nötig ist. (Günther weiss da bestimmt mehr)

        Gruß Thorste

        Comment


        • #5
          hmm.. irgendwie scheint das keiner zu wissen. schade eigendlich

          Comment

          Working...
          X