* * * *

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.
Luglio 19, 2025, 02:52:43 am

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

192 Visitatori, 0 Utenti

Post recenti

Pagine: 1 [2] 3 4 ... 10
11
Generale / Re:Problema con shared library
« Ultimo post da DragoRosso il Luglio 07, 2025, 01:16:20 pm »
l'ho copiata nella usr/lib e adesso la trova, solo avrei bisogno di debuggarla ed impostando l'applicazione host non aggancia la versione caricata nell'ade
Se vuoi debugare una DLL (o un .so) devi (dovresti) lavorare così:

1) Il progetto caricato nell'IDE deve essere quello della DLL (o .so);
2) La build deve ovviamente creare il file .so nella direccotry corretta (non puoi copiarla a mano);
3) Nei parametri di esecuzione (nel menu Esegui se non sbaglio) devi inserire con HOST il tuo programma di test (TEST.EXE ad esempio).
4) Avvia con il debugger (ovviamento con tutte le opzioni di compilazione opportune) e imposta il tuoi breakpoint (puoi farlo anche prima di fare il RUN ovviamente).

I PUNTI (1) e (2) sono essenziali, se non li rispetti non ti funziona il debug (a meno di ulteriori azioni che io non conosco).

Ciao
12
Generale / Re:Problema con shared library
« Ultimo post da nomorelogic il Luglio 07, 2025, 10:57:37 am »
che intendi con "l'applicazione host non aggancia la versione caricata nell'ade"?

dovresti postare del codice pascal con cui ricevi l'errore ed anche l'errore stesso
così forse riusciamo ad aiutarti
13
Generale / Re:Problema con shared library
« Ultimo post da angman il Luglio 07, 2025, 10:36:41 am »
l'ho copiata nella usr/lib e adesso la trova, solo avrei bisogno di debuggarla ed impostando l'applicazione host non aggancia la versione caricata nell'ade
14
Generale / Re:Problema con shared library
« Ultimo post da nomorelogic il Luglio 07, 2025, 09:28:57 am »
ciao
nel mondo *nix non è come in windows dove la cartella del programma chiamante è il primo luogo in cui si cerca una libreria.

Normalmente le librerie devono risiedere in /usr/lib.

Per vedere un esempio di caricamento dinamico, guarda questo sorgente (soprattutto l'ultimo)
https://www.freepascal.org/docs-html/prog/progse56.html

prova a mettere anche la fullpath

15
Generale / Re:Page Down
« Ultimo post da bonmario il Luglio 07, 2025, 07:35:21 am »
Ciao,
vedi se ti è utile il codice qui sotto: ho messo le combinazioni i tasti che nel tempo mi sono servite.
Da dove mi serve, chiamo la procedure che mi interessa, ti basterebbe farne una per il "Pagina giù", metterla in un ciclo a cui aggiung uno sleep dopo, per fare in modo di caricare i dati

Codice: [Seleziona]
{
Questa unit contiene tutte le funzioni con cui si inviano delle combinazioni di tasti

//Per poter compilare:
//  - Pacchetto ==> Apri file di pacchetto .lpk
//  - Andare sotto components/mouseandkeyinput (si trovo tra i sorgenti di Lazarus)
//  - Cliccare su Compila
//  - Cliccare su Usa ==> Aggiungi al progetto
}
unit BonMarSendKey;

{$mode objfpc}{$H+}

interface

uses MouseAndKeyInput, LCLType, Classes, SysUtils, BonMarUtilsForm;

const CstMsSleep=500;

procedure SendKeyScriviFrase(WrkFrase:String);
procedure SendKeyAltTab;
procedure SendKeyTab;
procedure SendKeyInvio;
procedure SendKeyCtrlV(VFAspettaDopo:Boolean);    //CTRL + V
procedure SendKeyTastoDxP(VFPrimo, VFAspettaDopo:Boolean); //Tasto destro + Paste
procedure SendKeyFrecciaGiu(VFAspettaDopo:Boolean);
procedure SendKeyGenerico(WrkKey:Word; Shift: TShiftState);



implementation
uses BonMarUtils;

procedure SendKeyScriviFrase(WrkFrase: String);
var Idx:Integer;
    ChrLo, ChrUp:Char;
begin
  WrkFrase:=StringReplace(WrkFrase, LineEnding, Chr(VK_RETURN), [rfReplaceAll]);

  for Idx:=1 to Length(WrkFrase) do begin
    ChrLo:=WrkFrase[Idx];
    ChrUp:=UpCase(ChrLo);
    if (ChrLo <> ChrUp) or
       (ChrUp < 'A') or
       (ChrUp > 'Z') then begin
      //Lettere minuscole / non lettere (numeri, ecc.)
      KeyInput.Press(ChrUp);
    end else begin
      //Lettere maiuscole
      KeyInput.Apply([ssShift]);
      KeyInput.Press(ChrUp);
      KeyInput.Unapply([ssShift]);
    end;
  end;
end;



{Torno all'applicativo precedente (ALT + TAB)}
procedure SendKeyAltTab;
begin
  KeyInput.Apply([ssAlt]);  //Tengo premuto il tasto "Alt"
  KeyInput.Press(VK_TAB);
  KeyInput.Unapply([ssAlt]);//Mollo il tasto "Alt"
end;



procedure SendKeyTab;
begin
  KeyInput.Press(VK_TAB);
end;


procedure SendKeyInvio;
begin
  KeyInput.Press(VK_RETURN);
end;



{Incolla (Ctrl + V)}
procedure SendKeyCtrlV(VFAspettaDopo:Boolean);
begin
  KeyInput.Apply([ssCtrl]);  //Tengo premuto il tasto "Ctrl"
  KeyInput.Press(VK_V);
  KeyInput.Unapply([ssCtrl]);//Mollo il tasto "Ctrl"

  if VFAspettaDopo then begin
    Sleep(CstMsSleep)
  end;
end;



procedure SendKeyTastoDxP(VFPrimo, VFAspettaDopo: Boolean);
begin
  KeyInput.Press(VK_APPS);
  Sleep(CstMsSleep);
  if VFPrimo then begin
    //Non so perché, ma quando incollo il primo in una routine, mi ticca aspettare di più !!!
    Sleep(CstMsSleep);
  end;
  if (1 = 2) and
     (LanciatoDaIDE) then begin
     //Usata per debug
     KeyInput.Press(VK_I);
     AggiornaVideo;
     KeyInput.Press(VK_RETURN);
     AggiornaVideo;
  end else begin
    KeyInput.Press(VK_P);
    AggiornaVideo;
  end;

  if VFAspettaDopo then begin
    Sleep(CstMsSleep)
  end;
end;




procedure SendKeyFrecciaGiu(VFAspettaDopo: Boolean);
begin
  KeyInput.Press(VK_DOWN);

  if VFAspettaDopo then begin
    Sleep(300)
  end;
end;



procedure SendKeyGenerico(WrkKey: Word; Shift: TShiftState);
begin
  if (Shift <> []) then begin
    KeyInput.Apply(Shift);
  end;

    KeyInput.Press(WrkKey);

  if (Shift <> []) then begin
    KeyInput.Unapply(Shift);
  end;
end;

end.
16
Generale / Re:Problema con shared library
« Ultimo post da DragoRosso il Luglio 06, 2025, 09:50:11 pm »
Ciao a tutti, ho creato in lazrus 3.8 e ubuntu 24.04 64 bit una libreria condivisa per criptare e decriptare  le password. Ma quando cerco di usarla da un programma di test il programma esce con exit code 127, sembra che non riesca a trovare la libreria che si trova nella stessa cartella dell'eseguibile di test
Non ho sufficiente conoscenze per fornirti una soluzione ma ti posso dare una info su cui riflettere:

1) Sei sicuro che Linux usi la directory corrente ? E se usasse la "bin" (o altre di sistema) per caricarsi il file ".so" (cioè le librerie) ?

17
Generale / Re:Page Down
« Ultimo post da DragoRosso il Luglio 06, 2025, 09:45:17 pm »
Potresti inserire il carattere di PAGEDOWN come fosse premuto da tasitiera, se sei in Windows ... posto il codice domani perchè ora non riesco ...
18
Generale / Re:FPC 3.2.4-rc1 available
« Ultimo post da DragoRosso il Luglio 06, 2025, 09:33:06 pm »
Scusa, domanda da ignorante: con il "(ma non solo)",  intendi dire che se si compila a 64 bit c'è ugualmente la possibilità di incorrere in questo bug?
Grazie, Mario
In teoria il bug è noto ed è stato risolto, ma in alcune contesti, ancora resisteva sino a poco tempo fà a causa di vari motivi.

Quindi se si utilizzazione plugin (non sorgenti) come DLL con quel bug presente, ovviamente ....

Comunque fino ad ora io mi sono imbattuto in questo bug solo per i certificati SSL (risolto il problema cambiando il sorgente della parte interessata, che era per i 64 bit).

Non sono riuscito a comprendere espressamente a quale bug specifico la release nuova fà riferimento (visto che il bug dovrebbe essere stato risolto anni fà).
19
Generale / Page Down
« Ultimo post da Riccardo Ferrari il Luglio 06, 2025, 07:24:27 pm »
Page Down = Pagina Giù

Ho cercato in rete ma non ho trovato nulla, nemmeno un accenno … nulla di nulla. Ho anche dei dubbi di riuscire a farmi capire. Provo.
Dunque: siamo abbonati ad un sito che fornisce dai dati su delle aziende. Il sito non è pubblico quindi non posso mettere link e ciò fa aumentare il mio timore di non farmi capire. Compare un elenco nella pagina web, clicchi un nome, si apre una finestra con i dati che servono, selezioni, copi e incolli dove ti serve. Una per una: a mano una bella palla. Però ho fatto una scoperta.

I dati che interessano e che compaiono nella finestra che si apre cliccando il nome sono già TUTTI memorizzati nella cache di FireFox. Per cui ho scritto un programma in FreePascal che lancio quando sono entrato nel sito, legge la cache di FireFox e fa il parser dei dati e crea un file con tutti i dati che mi interessano ordinati in una tabella. Non devo aprire le finestre una per una. Il programma lavora in parallelo a Firefox, quando chiudo il Firefox devo chiudere a mano il mio programma e rimane il file tabella generato.

Tutto bene, direte voi, dove sta il problema?
Nella cache di Firefox finiscono i dati elencati a video, quindi devo scorrere (con la rotella mouse o page down) tutto l’elenco per fare in modo che i dati finiscano nella cache e vengano letti
Per cui devo scorrere tutto l’elenco a mano, non posso andare troppo veloce perché, ho notato, saltano dei pezzi. Per cui faccio PageDown (non uso la rotella che controllo peggio) aspetto che il mio programma legga (a video mi dice che ha letto) dopo che ha letto rifaccio page down e così sino alla fine …

La domanda è: come si può automatizzare il PageDown? Il mio programma mi dice che ha letto, al che faccio page down in un ALTRO programma, a mano è facile, ma palloso. Non ho nemmeno idea di come si possa automatizzare.

Ho provato tutti gli autoscroll esterni di Firefox. Non ne funziona nemmeno uno. Semplicemente non riconoscono la pagina come scrollabile. In effetti non scorre tutta la pagina ma solo la finestra che contiene l’elenco. Però Page-Down fisico della tastiera lo riconosce e scrolla

Grazie per l’attenzione

Riccardo Ferrari
20
Generale / Problema con shared library
« Ultimo post da angman il Luglio 06, 2025, 01:19:17 pm »
Ciao a tutti, ho creato in lazrus 3.8 e ubuntu 24.04 64 bit una libreria condivisa per criptare e decriptare  le password. Ma quando cerco di usarla da un programma di test il programma esce con exit code 127, sembra che non riesca a trovare la libreria che si trova nella stessa cartella dell'eseguibile di test
Pagine: 1 [2] 3 4 ... 10

Recenti

How To

Utenti
Stats
  • Post in totale: 19863
  • Topic in totale: 2394
  • Online Today: 195
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 192
Total: 192

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.