Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [DELPHI] Come usare la ClipBoard

    Che dire ho provato a cercare in giro qualche esempio, purtroppo però non sono riuscito a trovare nulla

    Comunque sia quello che mi interessava sapere è questo:

    Avendo ad esempio l'indirizzo di un file, come faccio ad inserirlo nella ClipBoard per poi farlo incollare in automatico in un'applicazione specifica es. in word?


    Ps.
    Stavo provando a fare anche qualche esperimento con il Drag and Drop, per aggirare l'ostacolo.. Solo che per ora riesco solo a trascinare il mio file all'interno della mia applicazione, ma quando si tratta di riportarlo ad esempio su word non succede nulla

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    Inserire qualcosa negli Appunti (Clipboard) è una cosa, pilotarne il comando di "Incolla" riferito ad un'altra applicazione è un altro.

    Delphi mette a disposizione un oggetto (Clipboard) per la gestione degli Appunti; lo puoi utilizzare inserendo la unit Clipbrd nella clausola uses.

    Questo oggetto ti fornisce metodi (documentati) e proprietà in grado di copiare e ottenere dagli appunti qualsiasi tipo di risorsa, con membri semplificati per quanto riguarda il testo.

    Prova a dare un'occhiata, aiutandoti con l'indispensabile Guida in linea per maggiori informazioni.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Originariamente inviato da alka
    Delphi mette a disposizione un oggetto (Clipboard) per la gestione degli Appunti; lo puoi utilizzare inserendo la unit Clipbrd nella clausola uses.
    Ti ringrazio, in effetti uno dei miei problemi principali era che non conoscevo la unit, e quindi non riuscivo a far partire gli esempi della Guida in Linea...

    Comunque sia ho fatto qualche prova, e ora riesco a scrivere e a leggere dalla Clipboard testi ed immagini...

    Per la copia di file purtroppo invece sono in alto mare..

    Tra le varie funzioni ho notato GetComponent e SetComponent, per caso con queste sarei in grado, di inserire un determinato file nella Clipboard o di tirarlo fuori?
    Se si come? :master:

    Per il discorso di pilotare il comando "Incolla" in un'altra applicazione, credo che proverò ad indirizzarmi verso il Drag and Drop, lasciando così la gestione all'applicazione finale (almeno credo)

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    Originariamente inviato da shake84
    Per la copia di file purtroppo invece sono in alto mare..
    Non esiste la copia - in senso stretto - di file, ma solo la copia di una risorsa di un determinato tipo.

    Originariamente inviato da shake84
    Tra le varie funzioni ho notato GetComponent e SetComponent, per caso con queste sarei in grado, di inserire un determinato file nella Clipboard o di tirarlo fuori?
    Se si come? :master:
    No, se non ricordo male quei metodi consentono di copiare e incollare componenti, così come avviene durante la progettazione del form.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Originariamente inviato da alka
    Non esiste la copia - in senso stretto - di file, ma solo la copia di una risorsa di un determinato tipo.
    Mh.. :master:

    Quindi non esiste qualcosa di generico che mi permetta di gestire il contenuto della ClipBoard in modo diretto?

    Ad esempio un Get e un Set, con cui prelevare o inserire un qualiasi oggetto supportato dalla ClipBoard?

    Per spiegarmi meglio quello che sto cercando di fare è qualcosa del genere...

    L'utente se ne va in giro per il proprio PC, e copia qualche cosa: file, testo, immagini o qualsiasi altra cosa copiabile.

    A questo punto entra nella mia applicazione e scarica li il contenuto della ClipBoard..

    Successivamente potrà fare quello che vuole, copiarsi altra roba e così via, però tornando sulla mia applicazione deve poter recuperare quello che aveva precedentemente scaricato..

    E' giusto il mio approcio a questo tipo di problema? Ovvero prendo tutto quello che c'è nella ClipBoard senza curarmi di cosa sia, me lo salvo da qualche parte e quando voglio lo rimetto dentro?

  6. #6
    Nessuno ha mai smanettato con le ClipBoard..

    Ho provato a consultare la guida in linea e a cercare un po' per la rete ma non ho trovato nulla di quello che fa al caso mio

    Ho trovato solo come fare, se quello che ho nella ClipBoard è del Testo, ma niente che riguardi qualcosa di generale..

    codice:
    function SaveClipboardTextDataToFile( sFileTo : string ) : boolean;
    var
      ps1,
      ps2   : PChar;
      dwLen : DWord;
      tf    : TextFile;
      hData : THandle;
    begin
      Result := False;
      with Clipboard do
      begin
        try
          Open;
          if( HasFormat( CF_TEXT ) ) then
          begin
            hData := GetClipboardData( CF_TEXT );
            ps1 := GlobalLock( hData );
            dwLen := GlobalSize( hData );
            ps2 := StrAlloc( 1 + dwLen );
            StrLCopy( ps2, ps1, dwLen );
            GlobalUnlock( hData );
            AssignFile( tf, sFileTo );
            ReWrite( tf );
            Write( tf, ps2 );
            CloseFile( tf );
            StrDispose( ps2 );
            Result := True;
          end;
        finally
          Close;
        end;
      end;
    end;
    Ormai non so più dove cercare..
    Possibile che debba fare una funzione per ogni tipo di file? :master:

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    I formati che possono essere copiati nella clipboard sono in numero limitato: ve ne sono alcuni che fanno riferimento a risorse standard, come icone, cursori, bitmap, testo e affini; poi, vi sono formati "custom" che sono raggruppati tutti all'interno di un formato di tipo "raw", cioè un insieme di dati binari che possono essere copiati e incollati e che devono essere trattati all'occorrenza come si deve in base al programma che si trova ad accettarli.

    Ho trovato un tip che consente di aggianciarsi alla clipboard per ricevere notifiche sui cambiamenti, forse potrebbe esserti utile. Leggi qui.

    Nello stesso sito vi sono altri tip ricercabili con la parola chiave "clipboard".

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Originariamente inviato da alka
    I formati che possono essere copiati nella clipboard sono in numero limitato: ve ne sono alcuni che fanno riferimento a risorse standard, come icone, cursori, bitmap, testo e affini; poi, vi sono formati "custom" che sono raggruppati tutti all'interno di un formato di tipo "raw", cioè un insieme di dati binari che possono essere copiati e incollati e che devono essere trattati all'occorrenza come si deve in base al programma che si trova ad accettarli.
    Ti ringrazio davvero, le informazioni che mi stai dando mi son davvero utili..

    Il formato di tipo RAW , sembrerebbe essere esattamente quello che fa al caso mio, anche perchè non mi interessa sapere cosa ci sia nella ClipBoard, ma vorrai solo farne una copia su file, da ricaricare quando voglio..

    Avrei solo un problemino..
    Non riesco a trovare nulla a riguardo sulla Guida in Linea di Delphi, l'unica cosa era inerente ai database

    Per caso hai qualche link o esempio?

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    Originariamente inviato da shake84
    Per caso hai qualche link o esempio?
    Te l'ho già dato nel messaggio precedente...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Originariamente inviato da alka
    Te l'ho già dato nel messaggio precedente...
    :master: Li ho guardati ma non ho trovato nulla inerente a RAW..
    Ora provo a ricontrollare..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.