Zugriff auf Komponentenereignisse ohne visuelle Programmierung



  • Dieses lauffähige Programm will ich noch erweitern:

    #include "nmhttp.hpp"
    
    class cWebpage
    {
    public:
        cWebpage():Url("www.heise.de"){};
        AnsiString GetWebsiteWithHttp(void);
        AnsiString Url;
    };
    
    AnsiString cWebpage::GetWebsiteWithHttp(void)
    {
        TNMHTTP *HTTP = new TNMHTTP(Application);
        HTTP->InputFileMode = false;
        HTTP->TimeOut = 25000;
        //HTTP->OnSuccess=HTTPSuccess;  //HTTPSuccess gibt es noch nicht
        AnsiString Delivery;
        try
        {
            HTTP->Get(Url);
            Delivery = HTTP->Body;
        }
        catch(...)
        {
            Delivery = "";
        }
        delete HTTP;
        return Delivery;
    };
    
    cWebpage Internetseite;
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     Memo1->Text = Internetseite.GetWebsiteWithHttp();
    }
    

    Komponentenentwickelung ist ein Buch mit 7 Siegeln für mich. Wie muß ich HTTPSuccess deklarieren und definieren?
    Das ganze sollte dann etwas so aussehen:

    typedef void __fastcall (__closure *TMyEvent);
    TMyEvent HTTPSuccess(CmdType Cmd)
    {
        ShowMessage(Cmd);
    }
    


  • Schonmal den FAQ-Beitrag zur Erstellung von Komponenten zur Laufzeit angeguggt? (Findet sich im FAQ-Index... Den Abschnitt wirst du vermutlich selbst finden (o;

    -junix



  • Ja, aber wie gesagt, dass ist zu heftig für mich. Ich vermute mal, dass die Lösung zu meinem Beispielprogramm nicht besonders lang ist.
    Wenn man das nicht mal so eben hinschreiben kann und keiner das lösen will, ist es nicht wirklich dramatisch und dann hab ich eben Pech.



  • BlutigerAnfänger schrieb:

    Wenn man das nicht mal so eben hinschreiben kann und keiner das lösen will, ist es nicht wirklich dramatisch und dann hab ich eben Pech.

    Interessante Arbeitshaltung, bzw. interessanter Interessensbeweis...

    -junix



  • [Offtopic]

    junix schrieb:

    BlutigerAnfänger schrieb:

    Wenn man das nicht mal so eben hinschreiben kann und keiner das lösen will, ist es nicht wirklich dramatisch und dann hab ich eben Pech.

    Interessante Arbeitshaltung, bzw. interessanter Interessensbeweis...

    Ich habe den kompletten Sonntag, dieses einzelne Problem bearbeitet, ich habe zu wenig Grundlagen um es lösen zu können.
    [/Offtopic]



  • Wenn ich das Beispiel aus der FAQ http://www.c-plusplus.net/forum/viewtopic.php?t=39204 benutze, um darauf aufbauend eine TNMHTTP Komponente zu benutzen, kann ich gleich die visuelle Programmierung benutzen, da nicht wirklich die Notwendigkeit besteht, so eine Komponente erst während der Laufzeit zu erstellen.

    Aber wie kann ich dass in einer nicht abgeleiteten Klasse benuzten so wie mein Beispiel - schließlich kann ich die Eigenschaften und Methoden der Komponente ganz einfach benutzen, wie geht das mit Ereignissen?

    Oder - falls das vorherige zu umständlich ist - wie kann ich innerhalb meiner erstellten Klasse auf die mit der visuellen Programmierung erstellten TNMHTTP-Komponente (TNMHTTP *NMHTTP1;) zugreifen?



  • junix schrieb:

    BlutigerAnfänger schrieb:

    Wenn man das nicht mal so eben hinschreiben kann und keiner das lösen will, ist es nicht wirklich dramatisch und dann hab ich eben Pech.

    Interessante Arbeitshaltung, bzw. interessanter Interessensbeweis...

    OK, ich nehm alles zurück, das Leben meiner Mutter hängt von dieser Lösung ab. Bitte, bitte helft uns!


Anmelden zum Antworten