Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: antoniog - Febbraio 21, 2013, 10:20:19 pm

Titolo: [RISOLTO]TDBnavigator-cambiare le icone dei pulsanti
Inserito da: antoniog - Febbraio 21, 2013, 10:20:19 pm
Vorrei cambiare le icone dei pulsanti a Dbnavigator e anche tradurre gli hints, come posso fare?
Grazie.
Titolo: Re:TDBnavigator
Inserito da: antoniog - Febbraio 24, 2013, 04:51:38 pm
nessuno sà come modificare nei sorgenti le immagini e gli hint di TDBnavigator?
In delphi4 era sufficiente modificare il file di risorse di dbcrtl.pas mettendo le icone che si voleva, e modificare le stringhe, mi sembra in dbconsts.pas.
In lazarus come modificare gli .lrs e le stringhe predefinite dei messaggi?
oppure come creare un subTDBnavigator con le caratteriste volute?
A me piacciono i programmi personalizzati.
Titolo: Re:TDBnavigator
Inserito da: Stilgar - Febbraio 24, 2013, 06:37:25 pm
Non è una pratica molto ortosossa cambiare le immagini in quel modo.... aggiungi che nelle versioni sucessive c'era la possibilità di cambiare le immagini attraverso la property corretta.

Ogni bottone del DBNavigator è uno speed button.
Prova a controllare l'array di stringhe : DBNavButtonResourceName
Potrebbe essere la soluzione che fa al caso tuo...
Codice: [Seleziona]
  DBNavButtonResourceName: array[TDBNavButtonType] of string = (
 { nbFirst   } 'DBNavFirst',
 { nbPrior   } 'DBNavPrior',
 { nbNext    } 'DBNavNext',
 { nbLast    } 'DBNavLast',
 { nbInsert  } 'DBNavInsert',
 { nbDelete  } 'DBNavDelete',
 { nbEdit    } 'DBNavEdit',
 { nbPost    } 'DBNavPost',
 { nbCancel  } 'DBNavCancel',
 { nbRefresh } 'DBNavRefresh'
    );   
Viene usato nel metodo : procedure TDBCustomNavigator.UpdateButtons;
Per le altre domande ci sono le apposite properties ...

Stilgar
Titolo: Re:TDBnavigator
Inserito da: antoniog - Marzo 13, 2013, 05:53:17 pm
sembra impossibile senza modificare il file di risorse.
Per le hints ho modificato il file -LCLStrConsts- in LCLBase, reinstallando il pacchetto le traduzioni sono operative ma per le glyphs dei bottoni in TDBnavigator non vi è alcuna proprietà da modificare. Il file contenente le immagini è lcl_dbnav_images.lrs, sempre in LCLBase, impossibile da modificare manualmente. Leggendo il file di risorse ho trovato questo indirizzo : http://inkscape.org/ che penso sia un programma per gestire anchei file .lrs - proverò più tardi.
Titolo: Re:TDBnavigator
Inserito da: Stilgar - Marzo 14, 2013, 10:05:26 am
inkscape è un "editor" di file SVG ... un formato vettoriale per le immagini.
Titolo: Re:TDBnavigator
Inserito da: antoniog - Marzo 14, 2013, 10:31:52 am
infatti non serve al mio scopo.
Ho trovato la cartella "/usr/share/lazarus/1.0.6/lcl/images", nel file readme.txt è scritto che le immagini presenti vengono memorizzate in Lazarus resource files (.lrs), ho cambiato le icone di dbnavigator, ora dovrei ricostruire il file "/usr/share/lazarus/1.0.6/lcl/lcl_dbnav_images.lrs" ma ho qualche difficoltà, puoi aiutarmi?
Titolo: Re:TDBnavigator
Inserito da: Stilgar - Marzo 14, 2013, 10:40:06 am
Studio la cosa un attimino.
Titolo: Re:TDBnavigator
Inserito da: Stilgar - Marzo 14, 2013, 10:48:09 am
Una cosina al volo.

Codice: [Seleziona]
  TNavigator = class(TDBNavigator) end;
...

 with TNavigator(DBNavigator1).Buttons[nbFirst] do
  begin
    Glyph := nil;
    Caption := '|<';
    Font.Style := [fsBold];
  end;
La prima definizione serve e rendere "visibile" la property "Buttons".
Puoi mettere al posto di nil la tua immagine.
Stilgar
Titolo: Re:[RISOLTO] TDBnavigator
Inserito da: antoniog - Marzo 14, 2013, 05:10:38 pm
sono riuscito a cambiare le hints e le icone di TDBNavigator , Per le hints ho modificato il file -LCLStrConsts- in LCLBase, per le glyphs nella cartella "/usr/share/lazarus/1.0.6/lcl/images" ho modificato le immagini .png e poi seguendo le istruzioni del readme.txt ho lanciato il comando: "sudo ../../tools/lazres ../lcl_dbnav_images.lrs @lcl_dbnav_images_list.txt", ho aperto un terminale: "sudo startlazarus", ho ricompilato e reinstallato LCLBase 1.0.6 e tutto è come volevo io.
Grazie per la collaborazione.

Titolo: Re:TDBnavigator
Inserito da: Stilgar - Marzo 14, 2013, 05:12:41 pm
Codice: [Seleziona]


  with TNavigator(navigatorCausali).Buttons[nbFirst] do
  begin
    Glyph := nil;
    Caption := '|<';
    Font.Style := [fsBold];   ù
    Hint := 'RTL NON SERVE MODIFICALO!';
  end;