Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Delphi] Creare un edito di testo più raffinato di Notepad

    ciao a tutti.

    tutto nel titolo.

    nel mio programma (tanto amato da alka ) ho inserito un mini bloco note per scrivere dedl testo.

    il fatto è che è troppo stupido!
    voglio dire non può fare null'altro che salvare/aprire/stampare il file.

    non fa nient'altro.

    non voglio fare cose ipercomplicate, baserebbero un paio di opzioni di formattazione tipo bold/italic/underline size,
    liste e basta...

    come si può fare?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Re: [Delphi] Creare un edito di testo più raffinato di Notepad

    Originariamente inviato da Lyll0
    nel mio programma (tanto amato da alka ) ho inserito un mini bloco note per scrivere dedl testo.
    Non dichiariamo il falso.

    non voglio fare cose ipercomplicate, baserebbero un paio di opzioni di formattazione tipo bold/italic/underline size,
    liste e basta...
    come si può fare?
    Volendo, è possibile realizzare un editor di testo con formattazione senza nemmeno mettere mano al codice. E' necessario utilizzare il componente TActionList per poter sfruttare le funzionalità interessanti delle azioni. Si tratta di un meccanismo che permette di separare il concetto di "azione che posso compiere all'interno di una schermata" dal pulsante o voce di menu che mi permette di "eseguire tale azione" a tutti gli effetti.

    Il componente TActionList permette di definire azioni personalizzate o di usufruire di alcune azioni predefinite che agiscono su controlli visuali come una casella di testo.

    Passiamo alla pratica, fai questa prova in un progetto vuoto per acquisire dimestichezza. Inserisci dalla pagina "Standard" della Palette dei Componenti un component TActionList nella form in cui hai implementato il Blocco Note e fai doppio clic sul componente: ti apparirà l'editor delle azioni. Il pulsante in alto a sinistra "New Actions" permette di definire nuove azioni, mentre facendo clic sul triangolo possiamo scegliere anche azioni già predefinite (Standard Actions). Scegliamo la voce di menu "New Standard Actions" (o CTRL+INS) per far apparire l'elenco di azioni predefinite.
    Possiamo sceglierne più di una tenendo premuto CTRL; scegliamo ad esempio RichEditBold, RichEditItalic e RichEditUnderline e premiamo OK. Le azioni verranno aggiunte all'elenco delle azioni disponibili, con appartenenza alla categoria "Format" poichè agiscono sulla formattazione del testo.

    A questo punto, si dovrebbe già disporre di una toolbar con i pulsanti predefiniti a cui se ne dovrebbero aggiungere altri per poterli associare, successivamente, alle azioni che abbiamo appena definito. Ciascuna azione ingloba un comportamento particolare (nel nostro caso, porre un testo in grassetto, in italico o sottolineato) che ora è disponibile nel form e può essere associato ad un pulsante o ad un menu affinchè un clic su quest'ultimo scateni l'azione.

    Per associare, basta selezionare il pulsante della toolbar interessato o la voce di menu e impostare la proprietà Action all'azione che intendiamo far eseguire al controllo.

    Sulla form dovrebbe essere inoltre presente un controllo RichEdit sul quale digitare il testo formattato. Quando il controllo ha il focus, premendo uno dei pulsanti o selezionando una voce di menu associata alle azioni definite in precedenza, vedremo su quel controllo applicarsi l'effetto desiderato (impostazione dello stile grassetto, italico o sottolineato).

    Spulciando tra le azioni standard, troveremo anche altre operazioni come Cut, Copy, Paste, ecc.

    Provare per credere...e il tutto senza scrivere una sola riga di codice!!!

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

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

  3. #3
    intanto ti ringrgazio.

    poi ti chiedo scusa per il ritardo nelle risposte, ma non mi è arrivata la notifica... o forse sarà arrivata ma le regole di posta l'hanno cestinata,
    comunque grazie.

    credi che si possa fare lo stesso usando il controllo MEMO?

    grazie

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da Lyll0
    credi che si possa fare lo stesso usando il controllo MEMO?
    No, non puoi usare il controllo TMemo se hai bisogno di formattare il testo. Il TMemo va visto come un controllo Edit multilinea.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    ok grazie.

    per creare LISTE come mi muovo?

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da Lyll0
    per creare LISTE come mi muovo?
    Per "liste" forse intendi gli elenchi puntati?

    Bastava sbirciare un attimino nel punto che ti ho indicato nella spiegazione precedente: esiste un'azione TRichEditBullets che crea automaticamente gli elenchi puntati.

    Tieni conto del fatto che il RichEdit non è il massimo della vita, cioè non puoi fare tutto. Per formattazioni più complesse (ad esempio, aggiungere immagini, tabelle, ecc.) servono controlli più avanzati da cercare su Internet oppure avere buone capacità di programmazione per crearne uno.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    perfetto,
    grazie

  8. #8
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Prova a vedere l'editor di esempio che si trova nella directory C:\Programmi\Borland\Delphi5\Demos\Richedit
    Ciao

  9. #9
    farollo.

    grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.