Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [Delphi] Type Library

  1. #1

    [Delphi] Type Library

    Ho provato a modificare una Type Library, aggiungendo una
    nuova Proprietà, come da codice seguente:

    codice:
    function TIWActiveFormX.Get_STREAMERS: WideString;
    begin
       Result := STREAMERS;
    end;
    
    procedure TIWActiveFormX.Set_STREAMERS(const Value: WideString);
    begin
       STREAMERS := String(Value);
    end;
    Ma ricevo l'errore "Undeclared identifier: STREAMERS".

    Eppure ho "copiato" esattamente dallo standard .....
    Dove vanno dichiarati questi nuovi identifier ?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,313
    Nonostante lavori in Delphi tutti i giorni, non ho mai avuto a che fare con le Type Library, se non per il loro semplice utilizzo (in poche parole, non ne ho mai create).

    Tuttavia, cerco ugualmente di fornirti un suggerimento: hai dichiarato STREAMERS come proprietà vera e propria?

    Ad esempio
    codice:
    property STREAMERS: WideString read Get_STREAMERS write Set_STREAMERS;
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3

    Re: [Delphi] Type Library

    Originariamente inviato da suleima
    Dove vanno dichiarati questi nuovi identifier ?
    Forse intendi dire "Dove va dichiarata questa variabile?".
    Seguendo i principi dell' information hiding dovresti dichiararla nella sezione Private della classe TIWActiveFormX .


    Ti consiglio una modifica al codice:
    codice:
    procedure TIWActiveFormX.Set_STREAMERS(const Value: WideString);
    begin
        if (STREAMERS = Value) then Exit
      STREAMERS := String(Value);
    end;
    In questo modo eviti inutili assegnazioni qualora i due valori coincidano!

    Ciao

  4. #4
    La definizione della Property c'è e viene fatta in automatico
    quando modifico la Type Library con il suo Editor.

    Mi ritrovo il tutto nel file che ha lo stesso nome della Type Libray + '_TLB'.

    Quello che non capisco proprio è questo:

    - la proprietà Caption o HelpFile (di default) sono definite
    (almeno mi pare) nello stesso modo e FUNZIONANO

    - la mia no!


    Ci rimango male....

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,313
    Originariamente inviato da suleima
    La definizione della Property c'è e viene fatta in automatico
    quando modifico la Type Library con il suo Editor.
    Ok, immagino che tu ti riferisca all'editor fornito da Delphi.

    Originariamente inviato da suleima
    Mi ritrovo il tutto nel file che ha lo stesso nome della Type Libray + '_TLB'.
    Ok.

    Originariamente inviato da suleima
    la proprietà Caption o HelpFile (di default) sono definite (almeno mi pare) nello stesso modo e FUNZIONANO
    la mia no!
    Sei sicuro di aver ricompilato il tutto con un comando di Build?

    In alternativa, lavoro pochissimo con COM (anche perchè ben presto sarà accantonato), tuttavia prova ad utilizzare un tipo di dati differente da WideString (ad esempio, Integer) per la tua proprietà. Non vorrei mai che quel tipo non sia incompatibile con lo standard COM e renda inutilizzabile la tua libreria, sebbene creandola con l'editor di Delphi ciò non dovrebbe accadere.

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

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

  6. #6


    Provato anche con altri tipi di variabili, ma senza risultato !


    Per qualche motivo che non riesco a capire accetta solo
    le property già definite di default
    (es: per Widestring c'e' sia HelpFile o Caption)

    Ebbene, se vado a scrivere o leggere con una get o una set
    funziona tutto bene.



  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,313
    Prova a postare il codice della unit.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.