Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: petrusic - Maggio 03, 2020, 06:31:31 pm

Titolo: Button1.Caption: testo su due righe
Inserito da: petrusic - Maggio 03, 2020, 06:31:31 pm
Come si evince dal titolo ho necessità di assegnare alla proprietà Caption din un Button una dicitura esplicativa che, essendo troppo lunga, vorrei dividere in 2 righe.
Ho provato ad aggiungere il codice HTML <BR> nel punto di ritorno a capo, ma non è stato interpretato, allora ho eseguito la seguente istruzione
Codice: [Seleziona]
BTrasf3.Caption:='TRASFERIMENTO - 2.a parte' + chr(13) + 'per proseguire premere qui';   
Ha funzionato benissimo.
Ora mi sta venendo in mente: E se volessi attribuire ad una parte delle dicitura un colore diverso o una grandezza di Font diversa o, ancora una rappresentazione di tipo bold, come dovrei comportarmi? Non c'è un modo per impostare  e, poi, resettare parametri di scrittura all'nterno di una Caption di un componente grafico?
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: bonmario - Maggio 03, 2020, 07:44:21 pm
Ciao,
se non ricordo male, non è possibile con il "TButton standard", devi farlo tu.

Ciao, Mario
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: petrusic - Maggio 03, 2020, 09:44:25 pm
io ho cercato qualche suggerimento fra le esperienze vissute, ma non sono riuscito a trovarne.
Ho provato allora col codice HTML, pensando che, come succede in altri ambienti, venisse riconosciuto, ma non ha funzionato.
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: xinyiman - Maggio 04, 2020, 08:56:08 am
Ciao, siccome lazarus usa i componenti del sistema operativo può capitare che il comportamento di alcuni pulsanti non preveda l'andata a capo nella caption del pulsante. Ma questo dipende dal sistema operativo e non da lazarus. Per ovviare a questo problema consiglio di usare il componente TPanel come se fosse un pulsante (perchè possiede l'evento OnCLick). Guarda il mio esempio e fai le prove necessarie a capirlo.

Titolo: Re:Button1.Caption: testo su due righe
Inserito da: petrusic - Maggio 04, 2020, 10:40:50 am
siccome lazarus usa i componenti del sistema operativo può capitare che il comportamento di alcuni pulsanti non preveda l'andata a capo nella caption del pulsante. Ma questo dipende dal sistema operativo e non da lazarus. Per ovviare a questo problema consiglio di usare il componente TPanel come se fosse un pulsante (perchè possiede l'evento OnCLick).
La Form del tuo esempio non si apre. Comunque la mia difficoltà non è l'andare a capo, perchè come avrai letto, riesco a farlo anche nella caption del componente button, sia  con chr(13) e sia  con chr(10).
- non riesco a fare altre cose, come mettere la "a" di 2a come apice;
- non riesco ad evidenziare, se voglio una parte del testo;
- non riesco a fare diventare bold una o più parole del testo.

Ecco dove mi servirebbe, se possibile, essere aiutato.
Ciò non significa che io non abbia accolto il tuo aiuto. Anzi, lo trovo sempre pronto e validissimo.
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: bonmario - Maggio 04, 2020, 11:46:27 am
La Form del tuo esempio non si apre.

Si apre benissimo !!!
Visto questo tuo commento, ed tuoi problemi dei giorni scorsi, la domanda nasce spontanea: come fai ad aprire i progetti ?

Io conosco questi modi, che funzionano correttamente:
- da Esplora Risorse o simili: doppio click sul file .lpi o .lpr
- dall'IDE di Lazarus: Progetto ==> Apri progetto, e vai a selezionare il file.lpi che corrisponde al progetto.

Per quanto riguarda invece l'andare a capo con un TButton, occhio che, come diceva xinyiman, magari col sistema operativo su cui sei adesso funziona, ma la cosa non vale per tutti i sistemi operativi. Se non ricordo male, su Windows non funzionerebbe.

Ciao, Mario
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: nomorelogic - Maggio 04, 2020, 12:57:08 pm
per andare a capo c'è una costante che si chiama
Codice: [Seleziona]
LineEnding

questa costante è mappata in ogni OS con la giusta sequenza di caratteri

bisogna usare questa costante
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: xinyiman - Maggio 04, 2020, 02:24:49 pm
Guarda questo esempio. Se non riesci ad aprirlo basta che ti spulci il semplicissimo codice presente in unit1.pas

Titolo: Re:Button1.Caption: testo su due righe
Inserito da: Otto - Maggio 04, 2020, 03:19:05 pm
Ciao petrusic.
È probabile che tu non riesca ad aprire il progetto di xinyiman in quanto esso è stato creato con una  versione di Lazarus successiva a quella utilizzata da te.

Ho allegato il progetto di xinyiman reso compatibile con Lazarus 2.0.8 (versione corrente). Visto che questa situazione si è già verificata in passato, questa volta, potresti farci sapere se il progetto allegato viene aperto correttamente?

Grazie.
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: petrusic - Maggio 04, 2020, 04:32:02 pm
È probabile che tu non riesca ad aprire il progetto di xinyiman in quanto esso è stato creato con una  versione di Lazarus successiva a quella utilizzata da te.

Ho allegato il progetto di xinyiman reso compatibile con Lazarus 2.0.8 (versione corrente). Visto che questa situazione si è già verificata in passato, questa volta, potresti farci sapere se il progetto allegato viene aperto correttamente?
Ciao a tutti.
Anche se non sembra, come oggi, io rispondo sempre; infatti ho risposto a bonmario, tuttavia la risposta, finita, è rimasta a casa ed  è ormai perduta.
Vengo però subito al dunque.

Ho scaricato il file .zip che mi hai girato e, questa volta, seguendo il mio solito schema comportamentale, ha funzionato perfettamente.
Lazarus installato: 2.0.6 - FPC 3.0.4
Ecco come ho proceduto:
Citazione
Fasi esecutive per la prova di project1:
1- scarico di project1 (/home/petrus/Scaricati)
2- creazione nuova directory sotto: /media/dirdati/dativari/lazarus_progetti
3- spostamento di project1.zip in: /media/dirdati/dativari/lazarus_progetti/project1
4- avvio dell'IDE di lazarus
5- Menu File -> Chiudi tutti i file
6- Menu Progetto -> Apri progetto -> /media/dirdati/dativari/lazarus_progetti/project1/project1.lpi
7- Avvio compilazione e successiva esecuzione: --> funziona tutto

Io conosco questi modi, che funzionano correttamente:
- da Esplora Risorse o simili: doppio click sul file .lpi o .lpr
da File Manager -> /media/dirdati/dativari/lazarus_progetti/project1/project1.lpi -> doppio click su project1.lip (lo stesso stamattina sull'originale, mandatomi da xinyiman) viene aperta una scheda dentro firefox col seguente contenuto:
Codice: [Seleziona]
Il file XML specificato apparentemente non ha un foglio di stile associato. L’albero del documento è mostrato di seguito.
<CONFIG>
<ProjectOptions>
<Version Value="12"/>
<General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<Title Value="project1"/>
<Scaled Value="True"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<XPManifest>
<DpiAware Value="True"/>
</XPManifest>
<Icon Value="0"/>
</General>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
<DestinationDirectory Value="C:/Users/Axo/Documents/Code/Lazarus/_Forum-Lazarus/test_caption_02/Cap"/>
<UseFileFilters Value="True"/>
</PublishOptions>
<RunParams>
<FormatVersion Value="2"/>
</RunParams>
<RequiredPackages Count="1">
<Item1>
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="2">
<Unit0>
<Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/>
</Unit1>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<Target>
<Filename Value="project1"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
</CONFIG>
Se, invece faccio doppio cluick su project1.lpr, si apre una finestra come semplice file.txt col seguente contenuto.
Citazione
program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, Unit1
  { you can add units after this };

{$R *.res}

begin
  RequireDerivedFormResource:=True;
  Application.Scaled:=True;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
In entrambi i casi non si avvia lazarus.

Per quanto riguarda invece l'andare a capo con un TButton, occhio che, come diceva xinyiman, magari col sistema operativo su cui sei adesso funziona, ma la cosa non vale per tutti i sistemi operativi. Se non ricordo male, su Windows non funzionerebbe.
Grazie, non avevo capito che xinyiman volesse riferirsi a SO. diversi da Linux.
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: bonmario - Maggio 04, 2020, 05:01:06 pm
Probabilmente, devi associare Lazarus a quelle 2 estensioni. Magari io l'ho fatto anni fa', non ricordo ...

Visto che lavori in Linux, non ti posso dare istruzioni precise, perché il tutto dipende dalla tua distribuzione e dal tuo file manager
- prima devi cercare "startlazarus"
- poi dal tuo file manager, devi fare in modo che i files con quelle 2 estensioni vengano aperti con "startlazarus" (devi mettere il percorso completo !!!)

Ciao, Mario
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: xinyiman - Maggio 04, 2020, 05:52:08 pm
Non devi aprire i file con il doppio click. Apri tutto da lazarus. File -> Apri
Prima apri il file lpi, poi apri i file .pas
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: petrusic - Maggio 04, 2020, 06:45:14 pm
Probabilmente, devi associare Lazarus a quelle 2 estensioni. Magari io l'ho fatto anni fa', non ricordo ...

Visto che lavori in Linux, non ti posso dare istruzioni precise, perché il tutto dipende dalla tua distribuzione e dal tuo file manager
- prima devi cercare "startlazarus"
- poi dal tuo file manager, devi fare in modo che i files con quelle 2 estensioni vengano aperti con "startlazarus" (devi mettere il percorso completo !!!)

Non devi aprire i file con il doppio click. Apri tutto da lazarus. File -> Apri
Prima apri il file lpi, poi apri i file .pas

Mi pare doveroso darvi una notizia: quando ho installato lazarus l'ho fatto nella partizione dove ho installato il SO. Sabayon, dove, però non archivi dati.
Tutti i miei dati e quindi, tutti i sorgenti dei miei programmi, a partire da Gambas fino a Lazarus, sono stati archiviati e devono rimanere in una partizione diversa, residente fisicamente su una unità a disco diversa da quella dove risiede il SO. corrente.
Ecco perchè mi trovo con le directory per il pacchetto lazarus (linguaggio):
Citazione
-> /home/petrus/pascalazar/lazarus/startlazarus.app/Contents/MacOS/startlazarus
->/home/petrus/pascalazar/lazarus/lazarus.app/Contents/MacOS/lazarus
e una directyory per l'archiviazione delle applicazioni (mie e non):
Citazione
-> /media/dirdati/dativari/lazarus_progetti/  contenente i progetti studio, rilevati nel web
->/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/ contenente i progetti che ho scritto sia ad uso didattico, sia come applicativi reali personali.
Ora non so se questa mia organizzazione possa dare fastidio al buon funzionamento di lazarus.
Di solito, visto che lavoro su un solo progetto, accedo facilmente da Lazarus-IDE -> Menu Progetto -> Apri progetto recente -> /media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/nome_progetto.lpi
Infatti, a fine apertura, ho sempre tutti i file occorrenti, ben disponibili per modificarli ed implementarli secondo l'impostazione logica necessaria.
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: xinyiman - Maggio 05, 2020, 08:55:22 am
Non è un problema dell'installazione. Sappi però che non è detto che all'apertura del file lpi lazarus apra automaticamente anche i file pas. Potrebbe essere necessario aprirli a mano.
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: bonmario - Maggio 05, 2020, 09:12:07 am
Non è un problema dell'installazione. Sappi però che non è detto che all'apertura del file lpi lazarus apra automaticamente anche i file pas. Potrebbe essere necessario aprirli a mano.

Per curiosità, hai notato se questo sucecde su particolari sistemi operativi, o altro?
Io uso Lazarus su Windows (da XP un avanti), ed Ubuntu Linux.
In Ubuntu, ho prima dovuto configurare a dovere il file manager, ma ora, sui 3 PC su cui ho installato Lazarus, quando faccio "doppio click" sul file .lpi o su quello .lpr, i apre il file .pas relativo al form principale. Questo la fa sempre, a meno che, l'ultima volta che avevo salvato quel progetto, per qualsiasi motivo quel file .pas fosse chiuso al momento del salvataggio.

Ciao, Mario
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: Avogadro - Maggio 05, 2020, 07:20:34 pm
Giusto per : ma non si puo' usare l"hint" per spiegare cosa un dato tasto ?

Con l'"hint" l' interfaccia rimane sintetica e la spiegazione è a porta di mouse , prolissa quanto si vuole .

Ciao .

Titolo: Re:Button1.Caption: testo su due righe
Inserito da: xinyiman - Maggio 06, 2020, 01:13:32 pm
Giusto per : ma non si puo' usare l"hint" per spiegare cosa un dato tasto ?

Con l'"hint" l' interfaccia rimane sintetica e la spiegazione è a porta di mouse , prolissa quanto si vuole .

Ciao .
Assolutamente si
Titolo: Re:Button1.Caption: testo su due righe
Inserito da: xinyiman - Maggio 06, 2020, 01:14:24 pm
Non è un problema dell'installazione. Sappi però che non è detto che all'apertura del file lpi lazarus apra automaticamente anche i file pas. Potrebbe essere necessario aprirli a mano.

Per curiosità, hai notato se questo sucecde su particolari sistemi operativi, o altro?
Io uso Lazarus su Windows (da XP un avanti), ed Ubuntu Linux.
In Ubuntu, ho prima dovuto configurare a dovere il file manager, ma ora, sui 3 PC su cui ho installato Lazarus, quando faccio "doppio click" sul file .lpi o su quello .lpr, i apre il file .pas relativo al form principale. Questo la fa sempre, a meno che, l'ultima volta che avevo salvato quel progetto, per qualsiasi motivo quel file .pas fosse chiuso al momento del salvataggio.

Ciao, Mario
Ciao, onestamente no, non ho capito come mai. Ma a me importa poco, apro le unit quando mi servono a mano