Italian community of Lazarus and Free Pascal

Programmazione => Componenti Aggiuntivi => Topic aperto da: AndreaM - Novembre 07, 2016, 08:53:23 am

Titolo: Visual PlanIt
Inserito da: AndreaM - Novembre 07, 2016, 08:53:23 am
Buongiorno,
Per chi volesse utilizzare il componente in oggetto, faccio presente che ho riscontrato una perdita di memoria per un oggetto non deallocato.
La correzione da fare si trova nel file VpMisc alla riga 626.
Riporto per chiarezza lo spezzone di codice gia corretto:

Codice: [Seleziona]
function GetButtonWidth(AButton: TButton): Integer;
const
  MARGIN = 24;
var
  canvas: TControlCanvas;
begin
  try
    canvas := TControlCanvas.Create;
    canvas.Control := AButton;
    canvas.Font.Assign(AButton.Font);
    Result := canvas.TextWidth(AButton.Caption) + MARGIN * Screen.PixelsPerInch div DesignTimeDPI;
  finally
    canvas.Free;
  end;
end;   
Titolo: Re:Visual PlanIt
Inserito da: xinyiman - Novembre 07, 2016, 11:41:46 am
Perfetto, grazie mille. Lo hai comunicato anche a chi al momento mantiene quel set di oggetti?
Titolo: Re:Visual PlanIt
Inserito da: AndreaM - Novembre 07, 2016, 05:58:05 pm
Non ancora, se usandolo non trovo altro frà un pò lo comunico!
Titolo: Re:Visual PlanIt
Inserito da: xinyiman - Novembre 07, 2016, 06:59:32 pm
Perfetto  ;)
Titolo: Re:Visual PlanIt
Inserito da: CieloInvernale - Dicembre 04, 2016, 11:46:00 am
Sto cercando di localizzare i componenti di Turbopower Visual PlanIt in italiano utilizzando il metodo proposto dalla wiki in questa pagina: http://wiki.freepascal.org/Turbopower_Visual_PlanIt#Localization (http://wiki.freepascal.org/Turbopower_Visual_PlanIt#Localization), tuttavia non riesco ad ottenere alcun risultato (il codice si compila correttamente, ma non avviene alcun cambiamento nelle diciture inglesi dell'interfaccia).

La wiki dice:


Localization

All internal strings used by the VisualPlanIt package can be localized by means of the translation utilities available within Lazarus. The translated po files can be found in the folder languages of the distribution. Copy them to the language folder of your application, and translate them by calling


Codice: [Seleziona]
uses
  translations;
var
  langdir: String;  // language folder of your application
  lang: String;     // language abbreviation, e.g. "de" for German
//...
  TranslateUnitResourceStrings('vpsr', langdir + 'vpsr.' + lang + 'po');

Quindi:

Che cosa sto sbagliando??

Grazie per il vostro tempo e la vostra attenzione. Se e quando riuscirò a far funzionare questa traduzione condividerò il file .po tradotto con la community italiana.
Titolo: Re:Visual PlanIt
Inserito da: nomorelogic - Dicembre 04, 2016, 03:52:09 pm
così a senso direi che potrebbero mancare le assegnazioni, ad esempio:
Codice: [Seleziona]
uses
  translations;
var
  langdir: String;  // language folder of your application
  lang: String;     // language abbreviation, e.g. "de" for German
//...

  langdir:='locale';
  lang:='it';
  TranslateUnitResourceStrings('vpsr', langdir + 'vpsr.' + lang + 'po');

ti consiglio di leggere questo link, credo che può esserti utile per capire meglio come funziona il meccanismo delle traduzioni in lazarus
http://www.lazaruspascal.it/index.php?page=154 (http://www.lazaruspascal.it/index.php?page=154)
Titolo: Re:Visual PlanIt
Inserito da: CieloInvernale - Dicembre 04, 2016, 06:39:32 pm
Problema risolto  :D, era un errore nella definizione del path al file con la traduzione (nello script precedente preso dalla wiki manca un punto  ::)).

Nel file "nomeapplicazione.lpr":

Codice: [Seleziona]
uses
  ..., Translations;

begin
  Translations.TranslateUnitResourceStrings('vpsr', 'locale/vpsr.it.po');
   ...
  Application.Run;
end.

Appena termino la traduzione del file .po la posto sul forum per chi volesse italianizzare TurboPower Visual PlanIt.
Titolo: Re:Visual PlanIt
Inserito da: xinyiman - Dicembre 04, 2016, 10:16:33 pm
Molto bene  :)
Titolo: Re:Visual PlanIt
Inserito da: CieloInvernale - Dicembre 06, 2016, 03:44:25 pm
In allegato i files .po e .mo (binario) della traduzione italiana dei componenti Turbo Power Visual PlanIt.
Titolo: Re:Visual PlanIt
Inserito da: xinyiman - Dicembre 06, 2016, 04:18:36 pm
Grandissimo, per caso lp hai testato anche su Mac?
Titolo: Re:Visual PlanIt
Inserito da: CieloInvernale - Dicembre 06, 2016, 04:33:21 pm
 :( spiacente, non ho un Mac, non posso testare alcunché per quella piattaforma.
Titolo: Re:Visual PlanIt
Inserito da: CieloInvernale - Dicembre 06, 2016, 06:57:15 pm
Vorrei aprire l'esempio di Visual PlanIt contenuto nella distribuzione stessa del componente, nella cartella "examples\datastores\sqlite3", ma all'apertura Lazarus ritorna un messaggio di errore per cui alcuni parametri non sarebbero definiti e non mostra la form del progetto.

Qualche idea su come risolvere il problema?

Grazie per il vostro tempo e la vostra pazienza.
Titolo: Re:Visual PlanIt
Inserito da: nomorelogic - Dicembre 07, 2016, 08:18:11 am
qual è il messaggio di errore?
Titolo: Re:Visual PlanIt
Inserito da: CieloInvernale - Dicembre 07, 2016, 09:18:40 am
unit1.lfm SQLite3Connection1 : Database connect string (DatabaseName) not filled in! (ripetuto due volte).
Titolo: Re:Visual PlanIt
Inserito da: xinyiman - Dicembre 07, 2016, 01:46:21 pm
Ciao CieloInvernale, stò provando a visualizzare sul mac il tuo lavoro! Mi chiedevo, una volta copiati i file nella cartella delle lingue del pacchetto, come faccio a dirgli che voglio compilarlo in italiano?
Titolo: Re:Visual PlanIt
Inserito da: CieloInvernale - Dicembre 07, 2016, 04:00:12 pm
Per quel che ne so non puoi compilarlo in italiano (potrei sbagliarmi comunque, è da pochissimo che uso Lazarus...), puoi però fare in modo che venga caricato automaticamente il file relativo alla lingua italiana usando la procedura qui di seguito. In pratica la "traduzione" avviene runtime. Il file .po è editabile usando Poedit o software similare, il file .mo invece è un binario, ma non so bene come si usi (c'è qualcosa sulla wiki, ma mai provato). Usando un file .ini per memorizzare la scelta della lingua invece è possibile creare programmi che supportano più lingue, dove il relativo file .po di ogni lingua viene caricato a richiesta sulla base dell'input utente.

Nel file "nomeapplicazione.lpr":

Codice: [Seleziona]
uses
  ..., Translations;

begin
  Translations.TranslateUnitResourceStrings('vpsr', 'locale/vpsr.it.po');
   ...
  Application.Run;
end.

Gli unici riferimenti di cui dispongo sono quelli della wiki ufficiale:

Comunque sto avendo un sacco di problemi con questi componenti, per ora ho risolto passando a CodeTyphon, dove sembra che tutto funzioni bene, mentre in Lazarus non riesco nemmeno a compilare alcuni esempi che vengono distribuiti nel pacchetto di installazione (vedere miei precedenti post per i dettagli).