Το Πρόχειρο των Windows αντιπροσωπεύει το κοντέινερ για οποιοδήποτε κείμενο ή γραφικά που έχουν κοπεί, αντιγραφεί ή επικολληθεί από ή σε μια εφαρμογή. Αυτό το άρθρο θα σας δείξει πώς να χρησιμοποιήσετε το αντικείμενο TClipboard για την εφαρμογή λειτουργιών cut-copy-paste στην εφαρμογή Delphi.
Πρόχειρο γενικά
Όπως ίσως γνωρίζετε, το Πρόχειρο μπορεί να περιέχει μόνο ένα κομμάτι του ίδιου είδους δεδομένων για κοπή, αντιγραφή και επικόλληση ταυτόχρονα. Αν στείλουμε νέες πληροφορίες στην ίδια μορφή στο Πρόχειρο, θα σβήσουμε ό, τι ήταν πριν, αλλά το τα περιεχόμενα του Πρόχειρου παραμένουν με το Πρόχειρο ακόμα και μετά την επικόλληση αυτών των περιεχομένων σε άλλο πρόγραμμα.
Ταμπλό
Για να χρησιμοποιήσετε το Πρόχειρο των Windows στις εφαρμογές μας, πρέπει να προσθέσετε το Μονάδα ClipBrd στη ρήτρα χρήσης του έργου, εκτός από την περίπτωση που περιορίζουμε την κοπή, την αντιγραφή και την επικόλληση στα στοιχεία που διαθέτουν ήδη ενσωματωμένη υποστήριξη για τις μεθόδους Clipboard. Αυτά τα στοιχεία είναι TEdit, TMemo, TOLEContainer, TDDEServerItem, TDBEdit, TDBImage και TDBMemo.
Η μονάδα ClipBrd αντιπροσωπεύει αυτόματα ένα αντικείμενο TClipboard που ονομάζεται Πρόχειρο. Θα χρησιμοποιήσουμε το CutToClipboard, Αντιγραφή στο πρόχειρο, PasteFromClipboard, Σαφή και HasFormat μεθόδους αντιμετώπισης των λειτουργιών του προγράμματος Clipboard και χειρισμός κειμένου / γραφικών.
Αποστολή και ανάκτηση κειμένου
Για να στείλετε κάποιο κείμενο στο Πρόχειρο χρησιμοποιείται η ιδιότητα AsText του αντικειμένου Πρόχειρο. Αν θέλουμε, για παράδειγμα, να στείλουμε το σειρά πληροφορίες που περιέχονται στη μεταβλητή SomeStringData στο Πρόχειρο (διαγράφοντας ό, τι κείμενο υπήρχε εκεί), θα χρησιμοποιήσουμε τον ακόλουθο κώδικα:
χρήσεις ClipBrd; ...
Πρόχειρο. AsText: = SomeStringData_Variable;
Για να ανακτήσετε τις πληροφορίες κειμένου από το Πρόχειρο θα χρησιμοποιήσουμε
χρήσεις ClipBrd; ...
SomeStringData_Variable: = Πρόχειρο. AsText;
Σημείωση: αν θέλουμε μόνο να αντιγράψουμε το κείμενο από, ας πούμε, Επεξεργασία συστατικού στο Πρόχειρο, δεν χρειάζεται να συμπεριλάβουμε τη μονάδα ClipBrd στη ρήτρα χρήσης. Η μέθοδος CopyToClipboard του TEdit αντιγράφει το επιλεγμένο κείμενο στο στοιχείο ελέγχου επεξεργασίας στο Πρόχειρο σε μορφή CF_TEXT.
διαδικασία TForm1.Button2Click (αποστολέας: TObject); ξεκινήσει// η ακόλουθη γραμμή θα επιλέξει // ΟΛΑ το κείμενο στον έλεγχο επεξεργασίας {Edit1.SelectAll;} Edit1.CopyToClipboard; τέλος;
Εικόνες Πρόχειρου
Για να ανακτήσετε γραφικές εικόνες από το Πρόχειρο, οι Δελφοί πρέπει να γνωρίζουν τον τύπο εικόνας που αποθηκεύεται εκεί. Ομοίως, για να μεταφέρετε εικόνες στο πρόχειρο, η εφαρμογή πρέπει να ενημερώσει το Πρόχειρο για το είδος των γραφικών που στέλνει. Μερικές από τις πιθανές τιμές της παραμέτρου Format ακολουθούν. υπάρχουν πολλά ακόμα μορφές πρόχειρου που παρέχονται από τα Windows.
- CF_TEXT - Κείμενο με κάθε γραμμή να τελειώνει με α CR-LF συνδυασμός.
- CF_BITMAP - Γραφικό bitmap των Windows.
- CF_METAFILEPICT - Ένα γραφικό μετασχηματιστή των Windows.
- CF_PICTURE - Ένα αντικείμενο τύπου TP.
- CF_OBJECT - Κάθε επίμονο αντικείμενο.
Η μέθοδος HasFormat επιστρέφει True αν η εικόνα στο Πρόχειρο έχει τη σωστή μορφή:
αν Πρόχειρο. HasFormat (CF_METAFILEPICT) έπειτα ShowMessage ('Το πρόχειρο έχει μετα-αρχείο');
Χρησιμοποιήστε τη μέθοδο Αντιστοίχιση για να στείλετε (αντιστοιχίσετε) μια εικόνα στο Πρόχειρο. Για παράδειγμα, ο ακόλουθος κώδικας αντιγράφει το bitmap από ένα αντικείμενο bitmap που ονομάζεται MyBitmap στο Πρόχειρο:
Πρόχειρο. Εκχώρηση (MyBitmap);
Γενικά, το MyBitmap είναι ένα αντικείμενο τύπου TGraphics, TBitmap, TMetafile ή TPicture.
Για να ανακτήσετε μια εικόνα από το Πρόχειρο, πρέπει: να επαληθεύσουμε τη μορφή των τρεχόντων περιεχομένων του προχείρου και να χρησιμοποιήσουμε τη μέθοδο Αντιστοίχιση του αντικειμένου στόχου:
{τοποθετήστε ένα κουμπί και ένα στοιχείο ελέγχου εικόνας στη φόρμα1} {Πριν από την εκτέλεση αυτού του κωδικού, πατήστε το συνδυασμό πλήκτρων Alt-PrintScreen}χρήσεις clipbrd;... διαδικασία TForm1.Button1Κλικ (αποστολέας: TObject); ξεκινήσειαν Πρόχειρο. HasFormat (CF_BITMAP) έπειτα Image1.Παραρ. Bitmap. Εκχώρηση (Πρόχειρο); τέλος;
Περισσότερα Έλεγχος Πρόχειρου
Το Πρόχειρο αποθηκεύει πληροφορίες σε πολλές μορφές, ώστε να μπορούμε να μεταφέρουμε δεδομένα μεταξύ εφαρμογών χρησιμοποιώντας διαφορετικές μορφές. Όταν διαβάζουμε πληροφορίες από το πρόχειρο με την κλάση TClipboard των Delphi, περιορίζουμε τις τυπικές μορφές πρόχειρων: κείμενο, εικόνες και μετα-αρχεία.
Ας υποθέσουμε ότι εργάζεστε μεταξύ δύο διαφορετικών εφαρμογών των Δελφών. πώς θα ορίσατε τη μορφή του προσαρμοσμένου πρόχειρου για να στέλνετε και να λαμβάνετε δεδομένα μεταξύ αυτών των δύο προγραμμάτων; Για τους σκοπούς της εξερεύνησης, ας πούμε ότι προσπαθείτε να κωδικοποιήσετε μια επικόλληση στοιχείο μενού. Θέλετε να απενεργοποιηθεί όταν δεν υπάρχει κείμενο στο πρόχειρο (ως παράδειγμα).
Δεδομένου ότι η όλη διαδικασία με το πρόχειρο λαμβάνει χώρα πίσω από τις σκηνές, δεν υπάρχει μέθοδος τάξης TClipboard που θα σας ενημερώνει όταν έχει γίνει κάποια αλλαγή στο περιεχόμενο του προχείρου. Η ιδέα είναι να συνδέσετε το σύστημα ειδοποιήσεων του προχείρου, έτσι ώστε να μπορείτε να αποκτήσετε πρόσβαση και να ανταποκριθείτε στα συμβάντα όταν αλλάζει το πρόχειρο.
Για να απολαμβάνετε περισσότερη ευελιξία και λειτουργικότητα, είναι απαραίτητη η αντιμετώπιση των ειδοποιήσεων αλλαγής clipboard και των προσαρμοσμένων μορφών πρόχειρου - ακρόαση στο Πρόχειρο.