* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Dicembre 05, 2024, 03:15:02 am

Inserisci il nome utente, la password e la durata della sessione.

57 Visitatori, 0 Utenti

Autore Topic: [Risolto] ShowMessage senza bottone  (Letto 26109 volte)

petrusic

  • Hero Member
  • *****
  • Post: 634
  • Karma: +0/-0
Re:ShowMessage senza bottone
« Risposta #15 il: Marzo 28, 2020, 12:27:44 pm »
Ora il video dovrebbe essere visibile.
Si, perfetto. Grazie
ciao ciao

petrusic

  • Hero Member
  • *****
  • Post: 634
  • Karma: +0/-0
Re:ShowMessage senza bottone
« Risposta #16 il: Marzo 28, 2020, 01:03:02 pm »
Coi suggerimenti  di xinyiman, comprensivi del video seguito poco fa, ho imparato tantissimo e mi sento pronto per metterli in pratica al momento opportuno.
Per questo programma, ho modificato la mia idea iniziale ed ho pensato di utilizzare all'avvio una MessageDlg che mi permette di chiudere il programma, avviato eventualmente per errore, ancor prima di dare corso al caricamento dati dal DB.
Invece, in caso di avvio corretto del programma, rimando il caricamento dei dati dal DB, dopo il consenso a proseguire, dato nella MessageDlg.
Infatti, sparendo la finestra di dialogo, il Focus si sposta sull'unico pulsante visibile ed attivo della Form e, dentro la procedura .Enter dello stesso, inserisco le istruzioni di:
- visibilità di tutti gli altri oggetti componenti la Form, lasciandoli però inibiti;
- procedo al caricamento dei dati necessari dal DB;
- a fine caricamento, rendo validi tutti gli oggetti della form, per permettere
la ripresa dell'attività dell'utente.
Allego due immagini di chiarimento
ciao ciao

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3286
  • Karma: +12/-0
Re:ShowMessage senza bottone
« Risposta #17 il: Marzo 29, 2020, 09:26:20 pm »
Ottimo, felice di essere stato d'aiuto
Ieri è passato, domani è futuro, oggi è un dono...

petrusic

  • Hero Member
  • *****
  • Post: 634
  • Karma: +0/-0
Re:ShowMessage senza bottone
« Risposta #18 il: Marzo 15, 2024, 07:27:03 pm »
Riprendo questa discussione, perchè mi sono deciso finalmente a metter in pratica i suggerimenti ricevuti a suo tempo.
Ho provato perciò mandare su una piccola Form un messaggio di "attesa", da gestire interamente tramite codice.

Mi sono orientato su questo post, ma, ahimè, la prova è fallita.
Riporto le righe con le modifiche:

- nel file frm9.pas:
Codice: [Seleziona]
unit Frm9;

{$mode ObjFPC}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls, Grids, LCLType, Math, memds, LR_Class, LR_DBSet, lr_e_pdf, Types,
  FrmAttesa, UModuloDatiDB, utilmie;

type       
. . .
procedure AmmortamentoCespiti();   
. . .
  FormAttesa:= TFormAttesa.Create(self);
  FormAttesa.msg:= 'Ricerca   MOVIMENTI AMMORTIZZABILI  in corso' + lineending + lineending + '-----  A T T E N D I  -----';
  FormAttesa.Show;           
. . .
  Formattesa.Close;
  FreeAndNil(FormAttesa);
- - -
end;                           

- nel file frmAttesa.pas
Codice: [Seleziona]
unit FrmAttesa;

{$mode ObjFPC}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls;

type
  { TFormAttesa }
  TFormAttesa = class(TForm)     //  Form speciale per emissione MESSAGGI
    BPulsOk: TButton;
    Label1: TLabel;
    Panel1: TPanel;
    procedure BPulsOkClick(Sender: TObject);
    procedure BPulsOkEnter(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private

  public
  end;

var
  FormAttesa: TFormAttesa;

  msg: String;
implementation
uses
  FrmMain;
{$R *.lfm}
procedure TFormAttesa.FormCreate(Sender: TObject);
begin
end;

procedure TFormAttesa.BPulsOkEnter(Sender: TObject);
begin
  Label1.Caption:= msg;
end;

procedure TFormAttesa.BPulsOkClick(Sender: TObject);
begin
  self.Hide;
  Close;
end;
end.

Purtroppo non riesco a compilare, per l'Errore "frm9.pas(10,3) Error: Impossibile trovare FrmAttesa usato da Frm9 dell'Analizzatore Progetti."  segnalato dal compilatore.
Ho inserito il nome del file nella finestra dell'Analizzatore Progetti, ma non è cambiato nulla.
Ho guardato anche in:  Progetto -> Opzioni Progettoi -> Form ed ho notatoi che la FormAttesa manca. Dovrei aggiungerla, ma non ho trovato come fare.

A questo punto però mi viene anche il dubbio che ho sbagliato tutto, perchè, magari, non ho capito il suggerimento ricevuto.

ciao ciao

petrusic

  • Hero Member
  • *****
  • Post: 634
  • Karma: +0/-0
Re:ShowMessage senza bottone
« Risposta #19 il: Marzo 17, 2024, 04:55:34 pm »
Io proprio non riesco a capire:

La mia Form1  visibile  in : -> Progetto -> Opzioni Progetto -> Form trova corrispondenza coi file  frmmain.lfm e frmmain.pas

Ora ho provato a fare la stessa cosa con la Form8 rinominando la Unit in frmAttesa e rinominando i file frm8.lfm e frm8.pas nei rispettivi frmAttesa.lfm  e frmAttesa.pas.

Ebbene, mentre per la frmmain non mik viene segnalato nessun errore, per la nuova frmAttesa, mi viene segnalato l'Errore "frmmain.pas(9,76) Error: Impossibile trovare FrmAttesa usato da FrmMain dell'Analizzatore Progetti.".

A chiarimento di quanto fatto allego le immagini delle finestre interessate.

Ma allora come devo agire per modificare il nome di una Form e dei file corrispondenti per non fare arrabbiare l'ambiente Lazarus?
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1415
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:ShowMessage senza bottone
« Risposta #20 il: Marzo 17, 2024, 09:21:07 pm »
Non puoi rinominare i file (a parte che non hai indicato dome hai fatto ...): per rinominare una UNIT (con o senza form) devi usare "SALVA COME" dal menu "FILE" del IDE.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

petrusic

  • Hero Member
  • *****
  • Post: 634
  • Karma: +0/-0
Re:ShowMessage senza bottone
« Risposta #21 il: Marzo 18, 2024, 09:46:57 am »
Non puoi rinominare i file (a parte che non hai indicato dome hai fatto ...): per rinominare una UNIT (con o senza form) devi usare "SALVA COME" dal menu "FILE" del IDE.

Anche se penso di avere già seguito il percorso che mi hai ora suggerito, ho ripetuto l'operazione, ma il riferimento alla Form8 , contenuta nel file frmattesa, non è stata aggiunta all'elenco delle form disponibili dentro le opzioni di tipo form del progetto (vedi immagine allegata)
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1415
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:ShowMessage senza bottone
« Risposta #22 il: Marzo 18, 2024, 10:01:01 am »
Non saprei cosa dirti: io uso Lazarus 3.2 in Windows e non solo rinomina i file, ma aggiorna anche i riferimenti nei sorgenti (cioè nelle Uses rinomina il riferimento con il nuovo).

Forse qualcun altro del forum che usa più assiduamente Lazarus può fornirti qualche delucidazione.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2928
  • Karma: +20/-4
Re:ShowMessage senza bottone
« Risposta #23 il: Marzo 18, 2024, 10:54:15 am »
anche su Linux funziona allo stesso modo
uso spesso quella funzionalità da menù, sia per rinominare le form che i progetti ed ha sempre funzionato

potrebbe essere anche il case che non riesce a fare il match tra i nomi dei file e la dichiarazione del nome della unit: controlla i case quindi

ad esempio l'errore che hai segnalato è:
Error: Impossibile trovare FrmAttesa usato da FrmMain dell'Analizzatore Progetti.".

mentre nelle dichiarazioni leggo frmAttesa

comunque penso che puoi sistemare manualmente:
- ricontrolla meticolosamente tutti i nomi dei file rispettando il case
- controlla che il nome della unit corrisponda all'identificatore dopo la keyword "uses" nel sorgente (sempre rispettando il case)
- aggiungi manualmente la form


alla fine credo dovresti riuscire a sistemare
Imagination is more important than knowledge (A.Einstein)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1415
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:ShowMessage senza bottone
« Risposta #24 il: Marzo 18, 2024, 11:41:24 am »
potrebbe essere anche il case che non riesce a fare il match tra i nomi dei file e la dichiarazione del nome della unit: controlla i case quindi

Hai ragione @nomorelogic, il case mi era sfuggito (non ci faccio caso lavorando con un sistema operativo e soprattutto un linguaggio case insensitive  ;) )

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3286
  • Karma: +12/-0
Re:ShowMessage senza bottone
« Risposta #25 il: Marzo 18, 2024, 04:00:18 pm »
Come ti è già stato suggerito non devi rinominare i file a mano. Se lo fai, l'analizzatore dei progetti perde il riferimento. Devi poi dall'analizzatore eliminare la dipendenza e rilinkarla a mano.
Ieri è passato, domani è futuro, oggi è un dono...

petrusic

  • Hero Member
  • *****
  • Post: 634
  • Karma: +0/-0
Re:ShowMessage senza bottone
« Risposta #26 il: Marzo 21, 2024, 12:46:29 pm »
Va bene. Sono riuscito a reimpostare la form col nuovo nome unit "Frmattesa".
Ora però il com pilatore mi da un altro errore.
Riporto le righe di codice interessate, copiate da qui:
Codice: [Seleziona]
begin

  Frmattesa:= TForm8.Create();       <-- Riga 2498
  Frmattesa.msg:= 'Ricerca   MOVIMENTI AMMORTIZZABILI  in corso' + lineending + lineending + '-----  A T T E N D I  -----';
  Frmattesa.Show;

  annoCorr:= StrToInt(LeftStr(Form9.dataFin, 4));
. . .
altre istruzioni
. . .
  Frmattesa.Close;
  FreeAndNil(Frmattesa);   

Ecco il messagio d'Errore:
Citazione
frm9.pas(2498,12) Error: Syntax error, "." expected but ":=" found

Nell'esempio di codice suggerito a suo tempo da  nomorelogic il richiamo della Form di Attesa viene fatto con la Form chiamante vuota, mentre io non mi trovo in quella condizione. Non mi rendo conto se ciò possa in qualche modo influire sulla formulazione dell'Errore riportato sopra.
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1415
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:ShowMessage senza bottone
« Risposta #27 il: Marzo 21, 2024, 02:16:51 pm »
FRMAttesa è il nome della UNIT o della Form ?

Il compilatore sembra aspettarsi il '.', io quindi mi aspetto che FRMAttesa sia il nome della UNIT ...

Unit e componenti vari non possono e non devono avere lo stesso nome.

Estrapolando il codice non è comunque chiaro l'errore.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

petrusic

  • Hero Member
  • *****
  • Post: 634
  • Karma: +0/-0
Re:ShowMessage senza bottone
« Risposta #28 il: Marzo 21, 2024, 03:18:36 pm »
FRMAttesa è il nome della UNIT o della Form ?

E' il nome della Unit:
Codice: [Seleziona]
unit Frmattesa;

{$mode ObjFPC}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls;

type

  { TForm8 }

  TForm8 = class(TForm)     //  Form speciale per emissione MESSAGGI
    BPulsOk: TButton;
    Label1: TLabel;
    Panel1: TPanel;
    procedure BPulsOkClick(Sender: TObject);
    procedure BPulsOkEnter(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private


  public

  end;

var
  Form8: TForm8;

  msg: String;
implementation                             
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1415
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:ShowMessage senza bottone
« Risposta #29 il: Marzo 21, 2024, 03:33:01 pm »
E' il nome della Unit:

Quindi stai creando un TForm ... istanziandola con il nome della UNIT ?

Devi instanziare (creare) un oggetto con la sua VAR:

Codice: [Seleziona]
Form8 := TForm8.Create();
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

 

Recenti

How To

Utenti
  • Utenti in totale: 802
  • Latest: maXim.FI
Stats
  • Post in totale: 19242
  • Topic in totale: 2294
  • Online Today: 53
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 57
Total: 57

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.