Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: [Delphi] costanti

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92

    [Delphi] costanti

    per evitare di dover modificare tutto il codice
    in caso di modifiche vorrei utilizzare delle
    variabili di sistema .. delle costanti!

    Il problema è sorto sul nome delle tabelle
    e sul nome delle query.

    Visto che le costanti possono essere dichiarate così
    const
    width = 400;

    ho provato scrivere una cosa diquesto tipo...

    const
    q : TQuery = dm.query1;
    e
    q = dm.query1;

    ma mi da errore! credo di aver inventato....probabilmente!!
    è una cosa possibile da fare?

    Kate71

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Non è possibile fare una cosa del genere, per pochi semplici motivi:

    una costante, per sua natura, è un entità che non modifica mai il proprio valore. Pertanto, non puoi dichiararla in modo che il suo valore dipenda da una variabile, ancora meno puoi assegnare ad una costante il valore di un oggetto come Query1, il cui valore è conosciuto solo durante la fase di esecuzione del programma e non al momento della compilazione.

    Se stai cercando di crearti delle "scorciatoie" per raggiungere i componenti, ti esorto a non farlo o ad utilizzare diversi sistemi, poichè un simile approccio in un linguaggio ad oggetti può essere pericoloso e portare a bug difficili da individuare.

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

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    ci avevo pensato in effetti....
    una costante, per sua natura, è un entità che non modifica mai il proprio valore. Pertanto, non puoi dichiararla in modo che il suo valore dipenda da una variabile, ancora meno puoi assegnare ad una costante il valore di un oggetto come Query1, il cui valore è conosciuto solo durante la fase di esecuzione del programma e non al momento della compilazione.
    ho pensato però ...anche se in questo caso non è utilissimo..
    di creare una UNIT in cui scrivo le mie procedure...
    ma non riesco a far funzionare il programma.

    Da File--> New--> Unit (ho creato una nuova unit)
    ho scritto il codice che mi serviva....

    unit uPocedure;

    interface

    procedure query_Delete ;

    implementation
    uses
    uAnagrafica;

    procedure query_Delete;
    var
    qryDel: string;
    idDel: integer;
    begin

    idDel := dm.tabTest.Fields[0].AsInteger ;
    qryDel := 'DELETE FROM test WHERE ID= '+ IntToStr(idDel);

    dm.qryDelete.Close;
    dm.qryDelete.SQL.Clear;
    dm.qryDelete.SQL.Add(qryDel);
    dm.qryDelete.ExecSQL;

    dm.tabTest.Refresh ;
    DBGrid1.Refresh ;

    end;

    end.

    ho aggiunto la Unit al Progetto da --> Add File To Project
    ed ho richiamato il nome della mia pocedura in questo modo

    procedure TfmAnagrafica.pEliminaDClick(Sender: TObject);
    begin
    query_Delete;
    end;


    ma non funziona!!!
    mi dice che non trova uProcedure.dcu
    cosa devo fare??

    Kate71

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da kate71
    mi dice che non trova uProcedure.dcu
    cosa devo fare??

    unit uPocedure;
    Errore di distrazione...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92

    :confused:

    perdonami ma non capisco!!
    tra l'altro sotto
    implementation
    ho aggiunto
    uses
    uAnagrafica;
    e comunque non gli piace!!!
    dove ho sbagliato ???

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Hai chiamato la unit Pocedure invece di [I]Procedure[U].
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    ..scusami prima mi sono sbagliata...era il contrario..
    tra le uses di Anagrafica.. ho aggiunto uProcedure..
    compilo...ma non trova uProcedure.dcu
    se provo a farlo partire dall'eseguibile però funziona!!!
    come mai??? non capisco!!

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Il file Procedure.pas si trova nella stessa cartella del progetto? (quella in cui vi sono anche tutti gli altri file)
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    ho modificato il nome della UNIT
    hai ragione ...la testa..!!!!!
    ora mi da altri errori...
    ma con un po' di attenzione..
    potrei farcela!!!
    Grazie !!

    Kate71...sbadatella

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    92
    per risponedere al tuo ultimo mesaggio,
    si! è nella stessa cartella...
    ma dato che il nome era diverso..non
    avrebbe dovuto funzionare..non trovi???

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 © 2025 vBulletin Solutions, Inc. All rights reserved.