CYFROWY BARON • PROGRAMOWANIE • Zobacz wÄ…tek - Parameter SENDER - Czy siÄ™ tym specjalnie przejmować ?

Parameter SENDER - Czy się tym specjalnie przejmować ?

dział ogólny

Parameter SENDER - Czy się tym specjalnie przejmować ?

Nowy postprzez LiMeS » wtorek, 1 marca 2011, 02:02

Witam.

Takie zapytanie - specjalnie nie zwracałem na to uwagi, bo to w końcu "tylko" WARNINGI, ale... czy to dobre podejście ? A może to zła konfiguracja kompilatora ?

Przykładowa prosta funkcja:

KOD cpp:   •  UKRYJ  •
void __fastcall TOkno_glowne::Button_ExitClick(TObject *Sender)
{
        Close();
}

zwraca 'warning':

[BCC32 Warning] Serwisek.CPP(3453): W8057 Parameter 'Sender' is never used


Olać temat czy coś należałoby z tym zrobić ?

Ps. Åšrodowisko: CodeGear C++Builder 2007
----
LiMeS
Avatar użytkownika
LiMeS
Bladawiec
Bladawiec
 
Posty: 18
Dołączył(a): niedziela, 27 lutego 2011, 12:48
PodziÄ™kowaÅ‚ : 5
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Win XP SP3
Kompilator: brak kompilatora
Gadu Gadu: 0
    Windows XPFirefox

Re: Parameter SENDER - Czy się tym specjalnie przejmować ?

Nowy postprzez Cyfrowy Baron » wtorek, 1 marca 2011, 09:37

To ostrzeżenie informuje tylko że parametr Sender jest zadeklarowany, ale nigdzie nie jest używany. U siebie wyłączyłem to ostrzeżenie, gdyż Sender występuje niemal w każdym zdarzeniu, ale nie zawsze jest potrzebny. Nie można się pozbyć tego parametru, a ostrzeżenia bywają irytujące więc najlepiej jest je wyłączyć.

Nie wiem z jakiego środowiska korzystasz, gdyż nie uzupełniłeś profilu, więc podam jak to jest u mnie. Wybierasz w menu Project -> Options. W oknie Options przechodzisz do sekcji C++ Options -> Warnings. W panelu po prawej stronie ustawiasz:

  • Disable all warnings = False
  • Enable all warnings = False
  • Enable selected warnings = True
Następnie rozwijasz listę: Enable selected warnings i szukasz elementu: Parameter is never used - ustawiasz mu False. Ta opcja odpowiada za wyświetlanie ostrzeżeń o tym, że parametry podane jako argument funkcji nie są nigdzie wykorzystane. Dotyczy nie tylko zdarzeń i tych funkcji które maja parametr Sender, lecz wszystkich funkcji. Dodatkowo możesz wyłączyć ostrzeżenia o tym, że identyfikatory są zadeklarowane, ale nigdzie nie są używane. Takie ostrzeżenia pojawiają się, gdy np. zadeklarujesz zmienną typu integer, ale nigdzie jej nie używasz, np:
KOD cpp:   •  UKRYJ  •
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int x; /* zadeklarowana, ale nigdzie nie wykorzystana */
}

By to wyłączyć szukasz elementu: Identifier declared but never used - ustawiasz False. Proponuję jednak ustawić ten element na True, gdyż pozwala on wyłapać zbędne zmienne w dużym kodzie.
Te ustawienia zostaną uwzględnione tylko dla projektu, w którym je zmieniasz. Jeżeli chcesz by nowe projekty były tworzone z takimi samymi ustawieniami jak aktualny projekt to w oknie Options przed kliknięciem na przycisk OK zaznaczasz w lewym dolnym rogu element Default. To sprawi, że wszystkie nowo tworzone projekty będą miały dokładnie takie same ustawienia jak aktualnie tworzony projekt i nie dotyczy to tylko komunikatów ostrzeżeń, lecz niemal wszystkich ustawień projektu. Później możesz oczywiście zmieniać indywidualne ustawienia nowych projektów. Ta operacja w żaden sposób nie wpływa na stare, czyli na projekty utworzone przed wprowadzeniem zmian.

options.png




Jeżeli interesuje Ciebie jak można wykorzystać parametr Sender, to proponuję zajrzeć do serwisu Cyfrowy Baron do działu: Teoria, artykuł: Rzutowanie typów, przypisanie polimorficzne.
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.

Za ten post autor Cyfrowy Baron otrzymał podziękowania - 2:
LiMeS, Yari27
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Parameter SENDER - Czy się tym specjalnie przejmować ?

Nowy postprzez LiMeS » wtorek, 1 marca 2011, 11:43

Piękne dziękuję za wyczerpującą odpowiedź.
Zmiany dokonane i... 70 "warnings'ów" mniej :)
----
LiMeS
Avatar użytkownika
LiMeS
Bladawiec
Bladawiec
 
Posty: 18
Dołączył(a): niedziela, 27 lutego 2011, 12:48
PodziÄ™kowaÅ‚ : 5
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Win XP SP3
Kompilator: brak kompilatora
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Google [Bot] i 3 gości