Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Kylix e Delphi

  1. #1
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262

    Kylix e Delphi

    Salve a tutti, più per curiosità che per altri motivi avevo deciso di fare una versione per linux di un giochetto che ho scritto in Delphi.A casa mi ritrovo una versione un'pò vecchiotta (ma penso sufficiente) di Kylix, per la precisione la Open Edition 1.0.
    Ho provato semplicemente ad usare i sorgenti scritti in Delphi 5 con suddetta versione di kylix ed ho avuto problemi, pensavo si potesse usare lo stesso sorgente usato con Delphi.
    Ho allora sistemato un'pò il codice eliminando qualche fronzolo, ma continuo ad avere problemi anche strani.
    Ad esempio ho usato le stesse dimensioni dei pannelli, ma mi ritrovo a non poter usare del codice che in Delphi andava molto bene....Probabilmente perdo più tempo a fare una versione compatibile con Kylix che ad aggiungere nuove feature alla versione scritta in Delphi.
    In definitiva, è normale che il porting da Delphi a Kylix sia così poco immediato?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Per la compatibilità tra Delphi e Kylix bisogna creare progetti basati su CLX e non VCL

    Scatica Kylix 3.0 OE tanto è free..


  3. #3
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Originariamente inviato da l.golinelli
    Per la compatibilità tra Delphi e Kylix bisogna creare progetti basati su CLX e non VCL

    Scatica Kylix 3.0 OE tanto è free..

    Se usassi anche Delphi 6 non dovrei avere problemi (infatti la 6 incorpora le CLX, mentre a quanto pare la 5 no).
    La mia era più una curiosità che un'esigenza...comunque devo vedere di procurarmi la versione più recente di kylix.
    Ciao

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Il "porting" delle applicazioni non è difficoltoso, ma bisogna tenere conto di alcuni accorgimenti importanti.

    Ad esempio, pur non partendo a progettare un'applicazione CLX (quindi "crossplatform" già di suo), si può comunque realizzare un'applicazione che sia successivamente modificabile come tale e portabile in ambiente Linux, ma per fare questo bisogna evitare l'uso di tutti quegli strumenti che appartengono solo ed esclusivamente al mondo Windows (ad esempio, il Registry oppure le funzioni API più comuni).

    Hai fatto uso di alcune di queste cose nella tua applicazione?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Originariamente inviato da alka
    Il "porting" delle applicazioni non è difficoltoso, ma bisogna tenere conto di alcuni accorgimenti importanti.

    Ad esempio, pur non partendo a progettare un'applicazione CLX (quindi "crossplatform" già di suo), si può comunque realizzare un'applicazione che sia successivamente modificabile come tale e portabile in ambiente Linux, ma per fare questo bisogna evitare l'uso di tutti quegli strumenti che appartengono solo ed esclusivamente al mondo Windows (ad esempio, il Registry oppure le funzioni API più comuni).

    Hai fatto uso di alcune di queste cose nella tua applicazione?

    Ciao!
    Tu stesso, puoi vedere guardando il codice del giochetto, comunque, tanto per farti un esempio, utilizzando le stesse dimensioni per il pannello che identificava il campo o le racchette, o dei problemi a risolvere il problema delle racchette che superavano i limiti del campo,con Delphi avevo risolto il problema così:

    codice:
    (*La racchetta non deve uscire fuori dal campo*)
    //Così non superano il bordo superiore del campo
    if Racchetta1Panel.Top<-5 then Racchetta1Panel.Top:=Racchetta1Panel.Top+12;
    if Racchetta2Panel.Top<-5 then Racchetta2Panel.Top:=Racchetta2Panel.Top+12;
    //Così non superano il bordo inferiore del campo
    if Racchetta1Panel.Top>368 then Racchetta1Panel.Top:=Racchetta1Panel.Top-12;
    if Racchetta2Panel.Top>368 then Racchetta2Panel.Top:=Racchetta2Panel.Top-12;
    Questo è solo un esempio,non mi sembra di aver fatto uso di cose particolari...

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Non ho tempo per scaricare e ispezionare codice altrui in questo momento...ho molti lavori urgenti da completare.

    Tuttavia, non mi riferivo in particolare alle istruzioni utilizzate, ma in generale alle tecnologie su cui ti sei appoggiato.

    Se non fai uso di alcuni strumenti che sono tipici di Windows, puoi provare a creare un'applicazione CLX e copiare il codice all'interno del progetto relativo alla nuova applicazione.

    Per ottenere l'eseguibile funzionante su Linux dovrai, successivamente, aprire il file di progetto dell'applicazione CLX in ambiente Kylix (credo che la versione utilizzata sia irrilevante, a meno di funzionalità particolari inserite nell'applicazione, come accesso ai database e simili) e compilarlo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Originariamente inviato da alka
    Non ho tempo per scaricare e ispezionare codice altrui in questo momento...ho molti lavori urgenti da completare.

    Tuttavia, non mi riferivo in particolare alle istruzioni utilizzate, ma in generale alle tecnologie su cui ti sei appoggiato.

    Se non fai uso di alcuni strumenti che sono tipici di Windows, puoi provare a creare un'applicazione CLX e copiare il codice all'interno del progetto relativo alla nuova applicazione.

    Per ottenere l'eseguibile funzionante su Linux dovrai, successivamente, aprire il file di progetto dell'applicazione CLX in ambiente Kylix (credo che la versione utilizzata sia irrilevante, a meno di funzionalità particolari inserite nell'applicazione, come accesso ai database e simili) e compilarlo.

    Ciao!
    Scusa l'ignoranza, ma creare un'applicazione CLX in termini pratici che significa?
    Devo non usare nel mio progetto applicazioni che non richiamino funzioni e metodo insite in Windows oppure c'è da seguire passi particolari..

    Ad esempio Delphi ha usato queste
    codice:
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ExtCtrls, StdCtrls, Menus;
    Noti qualcosa di sbgliato per fare il porting. A livello di codice, sono sicuro di non aver usato niente di non portabile...
    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Nel BCB 6 e credo anche nelle versioni recenti di Delphi si può scegliere di creare un Applicazione CLX, ci pensa lui a fare il resto e vedrai che ci saranno molti meno componenti disponibili...


  9. #9
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Originariamente inviato da l.golinelli
    Nel BCB 6 e credo anche nelle versioni recenti di Delphi si può scegliere di creare un Applicazione CLX, ci pensa lui a fare il resto e vedrai che ci saranno molti meno componenti disponibili...

    Ecco, intendevo proprio questo.
    Ti ringrazio.

  10. #10
    Uso delphi 6 e kylix 3OE e ti posso dire che le opeerazioni di base non creano alcuna difficoltà e non ci saranno cambiamenti nella struttura grafica del tuo progetto. Piuttosto devi stare attento nell'uso dei componenti da kylix a delphi (o CB6), perchè alcune librerie che si trovano su internet, come le zeos library, non funzionano in delphi senza doverci mettere mano.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.