Announcement

Collapse
No announcement yet.

VCL Objekte in Klassen kapseln

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

  • VCL Objekte in Klassen kapseln

    Hallo zusammen,

    ich oute mich jetzt mal als newbie.
    Ich arbeite mit dem Cbuilder 6 und habe auch schon einige Programme fertig geschrieben.

    Was mir bis jetzt immer noch nicht einleuchtet, ist wie ich die VCL Objekte, die ich auf dem Formular angeordnet habe in meiner Klasse kapseln kann.

    In einer Datenbankanwendung z.B deklariere ich ein Objekt TQuery *qryQuery=new TQuery.. usw in meiner Klasse, um vom Formular der eigentlichen Anwendung nicht abhängig zu sein.Auf dem Formular gibt es die gleiche SQL Anweisung nochmal als visuelle Komponente um die Daten im Data Grid anzuzeigen.

    Das kann aber doch eigentlich nicht die Lösung sein oder ?
    Ich arbeite grade an einem Programm, das Daten über FTP herunterladen soll und verwende die IndyFTP Komponente.

    Sollte ich für meine Klasse FTPOps {}
    eine Unit mit Formular anlegen um die visuellen Komponenten zu benutzen oder soll ich die Komponenten wieder "per Hand " deklarieren ?


    Wäre schön, wenn Ihr mal schreiben könntet, wie ihr das macht.
    Danke schonmal im Vorraus.

  • #2
    Auf dem Formular gibt es die gleiche SQL Anweisung nochmal als visuelle Komponente um die Daten im Data Grid anzuzeigen.
    Dafür kann man auch die manuell angelegten Komponenten nehmen, die man der visuellen zuweist

    Die Indy-FTP Komponente ist keine visuelle Komponente. Und ob du das Ding in dein Formular ziehst oder mit new eine eigne anlegst ist in diesem Fall ziemlich wurscht. Das bisschen, was man dann über den Objektinspektor einstellen kann - und nur das wäre ein Vorteil - kann man auch per Hand machen.
    In einem solchen Fall bevorzuge ich die new Methode, per Hand.
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Dafür kann man auch die manuell angelegten Komponenten nehmen, die man der visuellen zuweist

      Die Indy-FTP Komponente ist keine visuelle Komponente. Und ob du das Ding in dein Formular ziehst oder mit new eine eigne anlegst ist in diesem Fall ziemlich wurscht. Das bisschen, was man dann über den Objektinspektor einstellen kann - und nur das wäre ein Vorteil - kann man auch per Hand machen.
      In einem solchen Fall bevorzuge ich die new Methode, per Hand.
      Danke für die schnelle Antwort.

      Dann bitte noch eine Frage:
      Wenn ich die NMFTP Komponente benutze gibt es das Ereignis OnListItem.
      Welchen Funktionsnamen muss ich denn bei meiner klasse BoxOps verwenden ? Der leere Funktionskörper wird ja leider nicht von der IDE ergänzt, wenn ich das Item nicht auf das Formular ziehe.


      Letzte dumme Frage:
      Wenn man die VCL nicht benutzt muss man dann ernsthaft alles in socket befehlen schreiben ?
      Oder gibt es andere STL Templates dafür ?

      Comment


      • #4
        Wenn ich die NMFTP Komponente benutze gibt es das Ereignis OnListItem.
        Würde diese nicht nehmen, da sie in zukünftigen Builderversionen nicht mehr dabei ist. Es gibt diese Funktion nicht, wenn du die Komponente selbst erzeugst. Du kannst den Namen selbst definieren und musst die Adresse der Eigenschaft zuordnen

        Siehe hier analog zu OnClick
        http://www.marquardtnet.info/cecke/q...quicky_21.html

        Wenn man die VCL nicht benutzt muss man dann ernsthaft alles in socket befehlen schreiben ?
        Ja, oder ein anderes QuellCode/fertige Klassen/Framework benutzen. Die STL hat damit nix zu tun. Diese hat keine Funktionalität zu Internetprotokollen.
        Christian

        Comment


        • #5
          Originally posted by mkdo View Post
          Wenn ich die NMFTP Komponente benutze gibt es das Ereignis OnListItem.
          Welchen Funktionsnamen muss ich denn bei meiner klasse BoxOps verwenden ? Der leere Funktionskörper wird ja leider nicht von der IDE ergänzt, wenn ich das Item nicht auf das Formular ziehe.
          Ziehe das Item auf das Formular. Mach alle eventhandlers. (functionen) Delete Item from Form. Jetzt hast nu alle functionen. (Es geht nicht um den namen sonst um den typ: parameters und so)

          Originally posted by mkdo View Post
          Wenn man die VCL nicht benutzt muss man dann ernsthaft alles in socket befehlen schreiben ?
          Oder gibt es andere STL Templates dafür ?
          Besser benutze TIdFTP von Indy. Oder eine andere fertige Komponent.

          Comment


          • #6
            Die Indy Komponenten habe ich auch schon gefunden, die scheinen wesentlich besser als die NM-Komponenten zu sein.
            In diesem Fall kann man auch das Directory Listing direkt in eine Stringlist schreiben.
            Man brauch also die Visuellen Sachen nicht.
            Trotzdem vielen Dank für den Tip.
            Ich werde es sicher so handhaben, wenn ich auf Events von den VCL Komponenten reagieren will.



            Großes Lob an dieses Forum, danke Leute.

            Comment

            Working...
            X