* * * *

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.
Novembre 21, 2024, 11:44:14 am

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

105 Visitatori, 0 Utenti

Autore Topic: [OT] Windows 11 e barra di avvio veloce  (Letto 15127 volte)

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #30 il: Febbraio 12, 2023, 06:08:40 pm »
Esatto:
Codice: [Seleziona]
WrkImage.Picture.Assign(WrkIcona);

Scusami, mi ero dimenticato di scriverlo !

Ciao, Mario

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #31 il: Febbraio 13, 2023, 10:03:00 am »
Figurati !!

lo avevo poi intuito osservando i metodi utilizzati, che non erano propri di un TBitBtn,

tra un po posto il risultato

Grazie
SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #32 il: Febbraio 13, 2023, 01:01:39 pm »
Posto il progetto completo.

Queste le note (sono anche dentro il progetto).

Citazione
Uso:
      - Fate il drag and drop di questo eseguibile sulla barra delle applicazioni.
                - Da questo momento potete cliccare sull'icona per fare apparire / scomparire la "barra".
      - Trascinate nella "barra" link, applicazioni, documenti o altro.
      - Tasto destro su un zona bianca per attivare / disattivare l'ordinamento.

Da fare:
         - Eliminare icone dalla barra;
         - Salvare su file (o registro di Windows)
         - Caricare da file (o registro di Windows) all'avvio
         - Trovare il drag point per il drag and drop fatto da Explorer

Problemi noti:

         - A differenza di Delphi dove tutte le icone di qualsiasi tipo vengono visualizzate,
           in Lazarus non tutte le icone vengono visualizzate (specialmente icone relative ad alcuni LINK)

Può essere uno spunto per fare qualcosa di più completo.

Ciao

Ciao,
scusa il ritardo, ma ogni volta che leggevo questo thread ero su Linux, e non avevo modo di provare !!!

Complimenti, veramente un bel lavoro.
Io alla fine ho fatto solo "un'emulazione" della barra di avvio veloce di Windows 10, quindi icone piccole senza testo.
L'unica cosa che mi manca, ma credo che quello sia impossibile, è il fatto di mettere la mia barra sopra a quella di stato di Windows11, e fare in modo che TUTTE le altre finestre abbiano il "top della mia" come limite invalicabile, ma questo credo proprio che sia impossibile da ottenere.

Ciao, Mario

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #33 il: Febbraio 13, 2023, 02:40:29 pm »
Agganciarla alla barra delle applicazioni è fattibile, basta interrogare i dati della finestra "barra applicazioni" appunto (almeno penso).

Mantenerla invece esposta senza che le app la sovrappongono invece è un pò più complesso, perchè dovresti "dire" a Windows che sei anche tu una barra di stato .... però magari si può fare.

Più avanti vedrò delle due cose ...

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

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #34 il: Febbraio 15, 2023, 10:12:56 am »
Sempre proseguendo nello sviluppo della task bar alternativa, mi sono posto questa domanda:

dato che creo runtime un numero indefinito di oggetti TTabSheet e TImage, sarebbe logico che li distruggessi in fase di chiusura... però non è vero che in fase di chiusura della applicazione, tutto ciò che è collegato ad essa viene distrutto ?

Secondo voi, quale approccio sarebbe il più corretto e come?

pensavo ad un loop tipo questo:
Codice: [Seleziona]
  for i := Self.ComponentCount-1 downto 1 do
  begin
    if Self.Components[i] is TImage then TImage(Self.Components[i]).Free;
  end;
SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #35 il: Febbraio 15, 2023, 10:56:50 am »
Tutti i componenti che vengono creati con il riferimento alla Form principale (generalmente pippo := Tpippo.Create(self)) vengono automaticamente liberati (ossia distrutti) alla chiusura della Form stessa (ossia dell'applicazione).

Questo vale per qualunque componente creato con un riferimento ad un altro componente (generalemnte chiamti componenti Padri e Figli, Parents and Childs).

Quale è la buona regola: implementare un distruttore per ogni componente personalizzato o creato a runtime se andiamo a creare / instanziare oggetti (ad esempio array dinamici). In tale metodo andremo a liberare tutti ciò che abbiamo creato a runtime (tale metodo verrà automaticamente chiamato dal componente padre).

dato che creo runtime un numero indefinito di oggetti TTabSheet e TImage, sarebbe logico che li distruggessi in fase di chiusura... però non è vero che in fase di chiusura della applicazione, tutto ciò che è collegato ad essa viene distrutto ?

Esatto, se sono componenti creati con xxxx.Create(self), verranno distrutti automaticamente. Ciò però non è vero con oggetti creati con xxxx.Create(nil) oppure se usi gli array dinamici, e in molte altre situazioni (occorre trattare il concetto di visibilità / vita / "count reference" degli oggetti).

Occhio anche all'uso dei puntatori, soprattutto con array statici: tutto ciò che è statico viene rilasciato dall'applicazione (non si può rilasciare a codice) PERO' IL CONTENUTO DEGLI ARRAY NO !!! se tale contenuto è un oggetto istanziato !!!!!

Esempio:

Codice: [Seleziona]
//TObject può essere un qualsiasi oggetto noto
var Pippo: array [0..9] of TObject;
     i: integer;

for i := low(Pippo) to High(Pippo) do
  Pippo[i] := TObject.Create(self);

//Questo array verrà liberato alla chiusura del programma (o all'uscita del metodo se dichiarato in un metodo) ma gli oggetti creati NO, anche se usano il "self" come parent. E' necessario liberare a mano ogni contenuto del singolo elemento dell'array alla chiusura (o quando necessita).

for i := low(Pippo) to High(Pippo) do
  begin
    if assigned(Pippo[i]) then
      begin
         Pippo[i].Free;
         Pippo[i] := nil;   <------------- RICORDARSI SEMPRE DI PORRE A NIL SE LIBERATE RISORSE A MANO !!!!!!!!!!
      end;

Secondo voi, quale approccio sarebbe il più corretto e come?

pensavo ad un loop tipo questo:
Codice: [Seleziona]
  for i := ComponentCount-1 downto 1 do
  begin
    //CORRETTO ........
    if Components[i] is TImage then
      begin
         (Components[i]) as TImage).Free;
         Components[i]) := nil;
      end;
  end;

Anche questo è corretto (anche se non necessario in questo particolare  caso), l'unica accortezza è di aggiungere l'assegnazione a "nil" dopo il FREE, questo perchè nel caso il "PADRE" (self) chiamasse il distruttore del "Figlio" (Image) andrebbe in AV senza il "nil".

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

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #36 il: Febbraio 15, 2023, 02:01:49 pm »
Grazie DragoRosso,

domanda, perchè ottengo un errore di compilazione con il seguente codice...
Codice: [Seleziona]
  for i := Self.ComponentCount-1 downto 1 do
  begin
    if Self.Components[i] is TImage then
    begin
       (Self.Components[i] as TImage).Free;
       Self.Components[i] := nil;
    end;
  end;

ecco l'errore:
main.pas(174,27) Error: No member is provided to access property

SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #37 il: Febbraio 15, 2023, 02:28:40 pm »
Perchè Components è una proprietà che può essere solo "letta" e non assegnata. In questo caso ":= nil" non può essere effettuato lavorando direttamente con la proprietà "components".

Mi ero distratto scusa ...

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

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #38 il: Febbraio 15, 2023, 03:03:43 pm »
Figurati !

Pefetto, ora oltre che eliminare tutto all'uscita (anche se non necessario), chiamo il metodo all'uscita del riordinio, aggiunta, eliminazione... di icone e cartelle, così faccio un refresh e ricreo la task bar ;)
SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #39 il: Febbraio 20, 2023, 03:27:19 pm »
L'unica cosa che mi manca, ma credo che quello sia impossibile, è il fatto di mettere la mia barra sopra a quella di stato di Windows11, e fare in modo che TUTTE le altre finestre abbiano il "top della mia" come limite invalicabile, ma questo credo proprio che sia impossibile da ottenere.

Alla fine, visto che:
- purtroppo in Windows11 le icone nella barra di stato sono sovrapposte
- la cosa potrebbe essere risolta usando app esterne che però qui al lavoro non mi fanno installare

sto provando una cosa alternativa: ma mia "barra di avvio veloce" sovrapposta alla barra di stato di windows. Allego un'immagine di esempio.
Ho ancora qualche problemino da risolvere, ma per il momento me la faccio andare bene così !!!

Ciao, Mario

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #40 il: Febbraio 20, 2023, 05:06:47 pm »
Alla fine, visto che:
- purtroppo in Windows11 le icone nella barra di stato sono sovrapposte

In che senso ... le icone non sono sovfrapposte. Se parli della tua, disegnale lasciando un margine: se vedi nel mio allegato vedrai che ho imposto un margine e una dimensione, che per adesso è manuale, può essere automatica andando ad analizzare essenzialmente risoluzione e dpi awareness.

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

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #41 il: Febbraio 20, 2023, 05:21:23 pm »
Ho usato la parola sbagliata: le icone sono raggruppate.

In pratica, quello di cui si parla qui: https://answers.microsoft.com/it-it/windows/forum/all/raggruppamento-icone-barra-strumenti-windows-11/e7756dca-5ed8-4a47-be13-aeeaf060c326?page=1

Ciao, Mario

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #42 il: Febbraio 20, 2023, 06:03:00 pm »
Non voglio certamente convincerti, ma il ragruppamento ha un senso: velocizzare ed avere un colpo d'occhio su quei programmi "ragruppati" aperti. Comunque senza ragruppamento non puoi vedere tutti i programmai aperti (ne generalmente ne puoi identificare l'istanza), mentre con il ragruppamento ti fà vedere le anterprime e puoi passare a quello che ti interessa senza "sfogliare tutte le icone" ...

Magari può non piacere, però io lo trovo comodo. Anche io comunque all'inizio avevo qualche remora poi però è decisamente più pratico rispetto a prima.

Sicuramente è solo un punto di vista.

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

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #43 il: Febbraio 20, 2023, 06:26:09 pm »
Al momento, è causa della mie maggiori perdite di tempo !!!

Quando ad esempio ho 4 sorgenti aperti,che per me sono anche pochi, con l'IDE che usiamo al lavoro, nella barra di stato ho un'icona unica, quindi devo prima cliccare sull'icona, capire quale delle anteprime che mi fa vedere è quella del sorgente che mi serve, e poi cliccarci sopra.
Con le icone non raggruppate, vedo direttamente nella barra di stato di windows il nome del sorgente che mi interessa, ci clicco sopra a colpo sicuro !!!

Le icone raggruppate, non mi sono mai piaciute. Mi sono costretto ad usarle per 6 mesi quando Ubuntu era passata ad Unity, ma poi ci ho rinunciato: non fanno per me

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:[OT] Windows 11 e barra di avvio veloce
« Risposta #44 il: Febbraio 20, 2023, 07:28:37 pm »
Al momento, è causa della mie maggiori perdite di tempo !!!

Quando ad esempio ho 4 sorgenti aperti,che per me sono anche pochi, con l'IDE che usiamo al lavoro, nella barra di stato ho un'icona unica, quindi devo prima cliccare sull'icona, capire quale delle anteprime che mi fa vedere è quella del sorgente che mi serve, e poi cliccarci sopra.
Con le icone non raggruppate, vedo direttamente nella barra di stato di windows il nome del sorgente che mi interessa, ci clicco sopra a colpo sicuro !!!

Le icone raggruppate, non mi sono mai piaciute. Mi sono costretto ad usarle per 6 mesi quando Ubuntu era passata ad Unity, ma poi ci ho rinunciato: non fanno per me

Su Windows 11 non devi cliccare sull'icona di ragruppamento, ti mostra le anteprime di tutte le app ragruppate immediatamente al passaggio del mouse. Su Windows 10 il nome visualizzato è parziale, fino a quando non ci "vai" sopra con il mouse (nel tuo post fai vedere che viene visualizzato "firefox" e basta e così nella macchina vrtuale Win10 che ho anche con altre APP).

Se il Vs. IDE mostra il nome direttamente sulla barra allora sei sicuramente più veloce con il sistema Win10.

Comunque  il problema principale è che tale situazione sembra non sarà modificato neanche in futuro, perchè si ritiene che il metodo di ragruppamento sia il migliore.

N.B.: io nel portatile ho normalmente 4 macchine virtuali aperte avendo 32 GB di memoria, Simil Word, Simil Excel, E-mail, normalmente due istanze IDE RAD Studio (Delphi e C++), un Simil Autocad, GIMP, un paio di FireFox, due cloud e devo dire che rispetto all'anno scorso quando usavo Windows 10 mi trovo generalmente meglio con Windows 11 (intanto Windows 11 tiene "su" più Virtual Machine rispetto a Win10).

Comunque è questione personale (ad esempio a mè piace Lazarus in versione Docked come Delphi, cosa che non mi pare invece sia così diffusa come scelta).

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

 

Recenti

How To

Utenti
  • Utenti in totale: 803
  • Latest: maXim.FI
Stats
  • Post in totale: 19169
  • Topic in totale: 2286
  • Online Today: 117
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 105
Total: 105

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.