Visualizzazione dei risultati da 1 a 6 su 6

Discussione: classi e delphi

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    29

    classi e delphi

    cari amici di HTML è da poco che ho inizito a studiare delphi (ancora solo 3°cap della mia guida) ma ho gia difficoltà nello scrivere codice. Dopo avere illustrato le classi e fatto qualche esempio su di esse, un esercizio mi chiede di implementare una classe che richiede l'altezza in centimetri e me la ritorni in metri. Al di la della banalità dell'esercizio, avevo pensato di prendere il dato in centimetri da un casella di edit e associare il tutto all'evento "onclick" di un bottone. Bè, so di deludervi ma non ci sono riuscito!!! qualcuno mi può aiutare se no non riesco ad andare avanti!!!
    grazie anticipatamente
    aspetto vostre notizie.
    bye

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,304
    Ciao,
    spero di poterti dare qualche indicazione utile per risolvere il tuo problema.

    La soluzione che hai proposto è corretta: inserire l'altezza in centimetri all'interno di una casella di testo ed eseguire la conversione in metri alla pressione di un pulsante sullo schermo.

    Devo dirti comunque che non si tratta probabilmente della soluzione che il tuo libro si aspetterebbe se dici che il capitolo riguarda le classi.

    Una classe è una struttura dati particolare che contiene variabili locali (=campi) e procedure (=metodi) che agiscono su tali variabili. Tutti questi elementi vengono organizzati all'interno della struttura affinchè lo stesso sviluppatore, o altri sviluppatori, possano richiamarne i metodi e vedere i valori dei campi per sfruttare le funzionalità della classe senza alterarne la consistenza, cioè senza portare la struttura dati ad una situazione instabile.

    Se vuoi risolvere il problema a livello prettamente procedurale, puoi disporre un controllo Edit e un controllo Button sul tuo form e digitare codice simile a questo:
    codice:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      fAltezza: Double;
      sAltezza: string;
    begin
      sAltezza := Edit1.Text;
      fAltezza := StrToFloat(sAltezza);
      fAltezza := fAltezza / 100;
      sAltezza := FloatToStr(fAltezza);
      Edit1.Text := sAltezza;
    end;
    La procedura contiene più passi di quelli necessari, ma è utile per capire la sequenza logica. Il testo contenuto nel controllo Edit viene prelevato e convertito in valore float; successivamente, viene suddiviso per 100 per ricavare la misura in metri, convertito nuovamente in stringa e visualizzato all'interno del controllo Edit.
    L'uso del tipo Double è necessario poichè ospitiamo un valore a virgola mobile (decimale).

    Risolvere questo problema utilizzando le classi richiede forse qualche concetto in più...

    Non potresti dirmi quale libro stai seguendo? Magari, se ne sono in possesso, posso capire se sono in grado di farti un esempio utile invece di rischiare di scriverti un esempio che, considerato il grado di conoscenza a cui sei arrivato, non riusciresti a comprendere.

    Per il momento, spero di averti dato qualche spunto...

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

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    29
    grazie mille alka! ma il mio problema è strettamente legato allo svolgimento dell'esercizio utilizzando le classi e non il codice che hai riportato. Sicuramente mi sono spiegato male! il libro è la guida completa all'uso di delphi 4 (apogeo) ma ho anche acquistato un altro libro che seguo in parallello per argomenti, che è quello di Marco Cantù "programmare in delphi 6" sempre dell'apogeo. Ho aperto il delphi e lui per default mi da un form vuota (from1) e ho inserito un casella di edit e un bottone (per lo scopo detto precedentemente) tasto f11 e mi sono spostato nella vista del rispettivo codice e da li ho provato a dichiarare la mia nuova classe con i suoi relativi campi privati e publici e, ovviamente è li che ho fatto il pasticcio. Se posso inviarti la Unit sicuramente sarà molto più chiara che tutta questa discussione, cmq sicuramente più chiaro della prima volta (SPERO!).
    a presto...
    bye

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,304
    Non puoi scrivere qui il codice della tua classe, così lo commentiamo subito?

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

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    29
    ciao alka! scusa il ritardo ma sono rientrato a casa solo adesso.
    il codice è il seguente:
    unit metricaU;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls;

    type
    TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    type
    Tmetrica=class
    private
    pollici:integer;
    piedi:integer;
    public
    function getpiedi(po:integer):integer;
    end;
    var
    Form1: TForm1;
    metr: Tmetrica;
    implementation

    {$R *.DFM}
    function Tmetrica.getpiedi(po:integer):integer;
    begin
    pollici:=po;
    piedi:=pollici*4;
    result:=piedi;
    end;


    procedure TForm1.Button1Click(Sender: TObject);
    var app:integer;
    begin

    form1.Edit2:=inttostr(metr.getpiedi((strtoint(form 1.edit1)*4));

    end;

    end.

    come avrai notato la posto di cm e mt ci stanno piedi e pollici perchè in origine era questo che richiedeva l'esercizio, e siccome non è questa la cosa importante ho detto "cm e mt" al loro posto!
    cmq resta il fatto che non funziona.
    bye

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    29
    ah, dimenticavo...
    ho visitato il tuo sito e volevo farti i mieicomplimenti.
    Certo ancora alcune cose sono incomplete, come i progetti Delphi e i corsi online ma per il resto è tutto OK!
    mi sono inscritto al forum e lo consiglio a tutti.
    bye.

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.