Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Blue1987 - Gennaio 07, 2012, 05:11:58 pm

Titolo: cercasi volontari per compilare su ubuntu e mac
Inserito da: Blue1987 - Gennaio 07, 2012, 05:11:58 pm
qui potete trovare i sorgenti aggiornati del gioco (scritto con Lazarus)
www.calcio4ever.it


francamente io conosco troppo poco sia ubuntu che mac, ed infatti ogni tentativo di compilare il gioco e farlo girare è stato un pieno fallimento...

... c'è qualcuno più esperto di questi due sistemi operativi chi si offrirebbe di fare qualche tentativo?


per compilare dovrebbe essere sufficiente Lazarus + BGRAcomponents...
... io l'ho scritto su windows usando CodeTyphoon...


grazie mille,
Paolo
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: bonmario - Gennaio 07, 2012, 07:34:03 pm
A dire la verità, io ci ho provato ieri su Ubuntu 64 bit, ma già all'apertura mi dava errori perché mancavano 2 pacchetti.
Ora non ricordo il nome, ma se non ricordo male il loro nome iniziava con "pl-". Ho provato a cercarli ma non li ho trovati, quindi ho desistito.

Se sai dirmi da dove scaricarli, ci riprovo.

Ciao, Mario
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: Blue1987 - Gennaio 07, 2012, 08:35:18 pm
l'unico pacchetto aggiuntivo che dovrei aver usato sono i BGRActrl...
per il resto tutti i componenti sono tlabel, checkbox ecc ecc... non ho usato niente di strano!
anche il DB è creato salvando su file semplici binari tipizzati!!

non vorrei che fosse Code Typhoon che ci ha messo dentro qualcos'altro senza avvertire!!
come faccio, nel caso, a scoprirlo?
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: bonmario - Gennaio 07, 2012, 10:56:56 pm
Ecco l'errore che esce appena provo ad aprirlo:
Codice: [Seleziona]
I seguenti pacchetti non sono stati caricati:

pl_shapespak
pl_bgracontrols
Vedi progetto -> Analizzatore progetti

Come segnala l'errore, andando su "progetto -> Analizzatore progetti", quei 2 pacchetti sono segnalati come richiesti.

Ciao, Mario
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: Blue1987 - Gennaio 08, 2012, 12:01:14 am
plshapespak non so neanche cosa sia...

1) se è installato sulla mia versione di lazarus, posso passarvelo in qualche modo?
2) per cacellarlo dai pacchetti utilizzati dal progetto? (visto che non credo di averlo utilizzato davvero), come dovrei fare?




per capirci (ovvero, per far capire quanto ne so poco... ) di queste uses qui sotto, non so cosa effettivamente io stia usando...
Codice: [Seleziona]
{$IFDEF Windows}
uses
  Windows, Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics,
  Dialogs, ExtCtrls, Buttons, StdCtrls, ComCtrls, Spin, FileCtrl, EditBtn,
  ShellCtrls, LazHelpHTML, ColorBox, BGRAButton, BGRAPanel, BGRAImageButton,
  BGRALabel, BGRAImageList, BGRABitmap;
{$ELSE}
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics,
  Dialogs, ExtCtrls, Buttons, StdCtrls, ComCtrls, Spin, FileCtrl, EditBtn,
  ShellCtrls, BGRAButton, BGRAPanel, BGRAImageButton, BGRALabel, BGRABitmap;
{$ENDIF}
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: Legolas - Gennaio 08, 2012, 10:35:10 am
In effetti dovrebbe essere sufficiente installare bgrabitmap e bgracontrols, rimuovendo il riferimento ai pacchetti pl_*.
Io ho fatto così e sono riuscito a ricompilare, almeno su windows. Oggi, tempo permettendo, proverò a fare un build su Ubuntu :)
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: bonmario - Gennaio 08, 2012, 10:51:49 am
Rispondo a tutti e 2 ...
Per togliere quei pacchetti, devi andare in Progetto ==> Analizzatore progetti.

Vedrai una struttura ad albero con, nella parte bassa, i 2 pacchetti incriminati. Clicchi sul primo e poi sul simbolo "-" nella toolbar in alto. Poi fai lo stesso col secondo.
In questo modo hai tolto la dipendenza da quei 2 pacchetti.
Analogamente dovresti aggiungere la dipendenza a BGRAControls, visto che il tuo progetto ne ha bisogno.
Per farlo, sempre dall'analizzatore progetti, clicchi sul simbolo "+", poi clicchi sulla scheda "Nuovo requisito" e poi in "Nome pacchetto", scegli il tuo pacchetto (Prima BGRAControls e poi BFGRABitmap).

Io ho fatto tutto questo, ma quando cerco di compilare, mi da questo errore:
Codice: [Seleziona]
Unit1.pas(2832,29) Error: Identifier not found "COLORREF"


Ciao, Mario
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: Blue1987 - Gennaio 08, 2012, 02:22:14 pm
Rispondo a tutti e 2 ...
Per togliere quei pacchetti, devi andare in Progetto ==> Analizzatore progetti.

Vedrai una struttura ad albero con, nella parte bassa, i 2 pacchetti incriminati. Clicchi sul primo e poi sul simbolo "-" nella toolbar in alto. Poi fai lo stesso col secondo.
In questo modo hai tolto la dipendenza da quei 2 pacchetti.
Analogamente dovresti aggiungere la dipendenza a BGRAControls, visto che il tuo progetto ne ha bisogno.
Per farlo, sempre dall'analizzatore progetti, clicchi sul simbolo "+", poi clicchi sulla scheda "Nuovo requisito" e poi in "Nome pacchetto", scegli il tuo pacchetto (Prima BGRAControls e poi BFGRABitmap).

Io ho fatto tutto questo, ma quando cerco di compilare, mi da questo errore:
Codice: [Seleziona]
Unit1.pas(2832,29) Error: Identifier not found "COLORREF"


Ciao, Mario

posso usare pl_BGRAcontrols e pl_BGRAbuttons che sono già presenti in codetyphoon? sennò, potrei iniziare a pensare (per la compatibilità) di disinstallare codetyphoon ed installare l'ultima versione di lazarus, BGRAcontrols e BGRAbitmap...

per quanto riguarda COLORREF... è semplicemente una variabile colore :) ... non so perché non te la identifichi!!
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: bonmario - Gennaio 08, 2012, 02:28:51 pm
Ok, dopo innumerevoli tentativi sono riuscito a compilarlo.
Per farlo, devi aggiungere queste 2 unit alla uses per linux:
Codice: [Seleziona]
, LCLType, LCLIntf

Se mi posso permetere, ho notato alcune cosette:
Codice: [Seleziona]
const
      {$IFDEF Windows}
      PChar = '\';
      {$ELSE}
      PChar = '/';
      {$ENDIF}

const
      {$IFDEF Windows}
      NewLineChar = #13#10;
      {$ELSE}
      NewLineChar = #10;
      {$ENDIF}


Esistono già PathDelim e LineEnding che fanno quello che hai fatto tu !!!


Ah, quasi dimenticavo ... dopo aver fatto quelle modifiche, il progetto lanciato dall'IDE di Lazarus non parte perché manda in crash il debugger GDB. Lanciato dal file manager invece parte correttamente.

Ciao, Mario
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: Blue1987 - Gennaio 08, 2012, 04:04:57 pm
grandissimo!!

intanto... potrei chiederti di postare un archivio con il binario ed il necessario per farlo partire? così lo faccio provare un po' a qualche utente di ubuntu...


Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: bonmario - Gennaio 08, 2012, 04:38:11 pm
Purtroppo il programma è inutilizzabile: manca tutta la parte bassa dello schermo.
Se ad esempio vado in "Nuova partita", si vede fino all'altezza del nome dello stadio. Tutto quello che c'è sotto, compresi i bottoni "indietro" e "conferma" non si vedono.

Ciao, Mario
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: Blue1987 - Gennaio 08, 2012, 05:10:51 pm
ah, ottimo :D

cmq davvero grazie dell'aiuto... ora farò qualche tentativo grazie ai tuoi suggerimenti!
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: bonmario - Gennaio 08, 2012, 05:23:54 pm
Ho semi-risolto il problema precedente aggiungendo queste costanti:
Codice: [Seleziona]
const
      {$IFDEF Windows}
        MaxLarghSchermo=1024;
        MaxAltSchermo=768;
      {$ELSE}
        MaxLarghSchermo=1280;
        MaxAltSchermo=1024;
      {$ENDIF}

e sostituendo 768 e 1024 all'interno del sorgente con le costanti valorizzate.
Dopo la modifica, riuscivo a vedere tutto, ma quando cliccavo su "continua" relativo alla partita, il programma andava in crash.


Se mi posso permettere, vorrei farti qualche consiglio sullo stile di programmazione:
- cerca di usare meglio l'indentazione nei sorgenti: alcuni blocchi di if, while, ecc si leggono veramente a fatica
- abituati ad usare le costanti quando devi mettere in più punti del progetto lo stesso valore: nel fare le sostituzioni di 768 e 1024, mi sono capitati dei pezzi di codice in cui usi 1024 che però non ha niente a che fare con la dimensione del video. Usando el costanti come nel pezzo che ti ho messo qui sopra, se un domani vuoi impostare il default della larghezza a 1200 invece di 1024, ti basta modificare una costante e ti eviterai la fatica di entrare nel merito dei singoli numeri sparsi per il progetto.


Ciao, Mario
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: Blue1987 - Gennaio 08, 2012, 06:46:10 pm
Ho semi-risolto il problema precedente aggiungendo queste costanti:
Codice: [Seleziona]
const
      {$IFDEF Windows}
        MaxLarghSchermo=1024;
        MaxAltSchermo=768;
      {$ELSE}
        MaxLarghSchermo=1280;
        MaxAltSchermo=1024;
      {$ENDIF}

e sostituendo 768 e 1024 all'interno del sorgente con le costanti valorizzate.
Dopo la modifica, riuscivo a vedere tutto, ma quando cliccavo su "continua" relativo alla partita, il programma andava in crash.


Se mi posso permettere, vorrei farti qualche consiglio sullo stile di programmazione:
- cerca di usare meglio l'indentazione nei sorgenti: alcuni blocchi di if, while, ecc si leggono veramente a fatica
- abituati ad usare le costanti quando devi mettere in più punti del progetto lo stesso valore: nel fare le sostituzioni di 768 e 1024, mi sono capitati dei pezzi di codice in cui usi 1024 che però non ha niente a che fare con la dimensione del video. Usando el costanti come nel pezzo che ti ho messo qui sopra, se un domani vuoi impostare il default della larghezza a 1200 invece di 1024, ti basta modificare una costante e ti eviterai la fatica di entrare nel merito dei singoli numeri sparsi per il progetto.


Ciao, Mario


grazie dei consigli!!
ora il codice è ancora bello incasinato... ma non vorresti neppure sapere come era fino a qualche mese fa (se sei curioso... vai sul sito e scarica il codice delle 0.4.2.2 ... ti dico solo che le variabile temporanee erano dichiarate globalmente :D )
il fatto è che non sono un programmatore, come si vede sicuramente dal codice... è la prima volta che mi cimento in una cosa del genere (visto che nella vita faccio tutt'altro) ed il poco che so l'ho imparato da google, e dalle comunità di lazarus e delphi sul web...
quindi ogni consiglio è più che ben accetto!!!

p.s. secondo te a cosa è dovuto il crash??
Titolo: Re:cercasi volontari per compilare su ubuntu e mac
Inserito da: bonmario - Gennaio 08, 2012, 07:51:48 pm
Io invece faccio il programmatore per lavoro, non in Lazarus, ma con linguaggi ben diversi e queste cose le ho imparate nel tempo. Visto che mi hanno facilitato spesso la vita, appena posso le consiglio anche agli altri !!!
Per essere uno che lo fa solo per hobby è un bel progetto !!!

Per quanto riguarda il crash, non capisco da cosa dipende anche perché, come ti scrivevo in qualche post precedente, non posso avviare il programma con il debug attivo. In ogni caso l'errore è questo:
- clicco su "Nuova partita"
- inserisco nome e cognome
- scelgo la squadra del campionato italiano (ne ho provate 2 o 3)
- clicco sul bottone "conferma"

e questo è l'errore:
Codice: [Seleziona]
Il progetto calcio4ever2012 ha sollevato una eccezione di classe 'External: SIGSEGV'.

 At address 45AE29

Purtroppo senza debug è impossibile capire da cosa dipende. Se per caso ci capisco qualcosa, ti faccio sapere ...


Ciao, Mario