Strona Główna     FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy


Poprzedni temat :: Następny temat
[delphi] problem ze zmianą ikony programu
Autor Wiadomość
Petermechanic 
Wymiata!


Pomógł: 34 razy
Skąd: Przemyśl
Wysłany: 2006-08-05, 13:55   [delphi] problem ze zmianą ikony programu

Co się dzieje :-| Zmieniam ikonę programu i komiluję a dalej jest domyślna, ustawiona przez Delphi.

[ Dodano: 2006-08-05, 15:01 ]
wywala mi także hinty(zmmienna nie została uzyta) oraz warningi(zmienna nie została zainicjonowana)

[ Dodano: 2006-08-05, 15:01 ]
choć była
_________________
XMPP: piotrek@jabder.ath.cx
Ostatnio zmieniony przez Petermechanic 2006-08-08, 17:08, w całości zmieniany 2 razy  
 
 
   
Maciek 
Programmer


Pomógł: 9 razy
Skąd: Radom
Wysłany: 2006-08-05, 16:23   

Ad 1: Spróbuj zmienić ikone na jeszcze inną, np. jakąś systemową i zobacz czy się zmienia (a jak tak to powróć do tamtej).

Możesz też przepisać do nowego projektu cały kod i forme oczywiście ;-) . I skompiluj na "świeżo".

Ad 2: Pokasz linijki z tym co wywala błędy i błędy które wyświetla (może to mi coś da...)
_________________
"Zawsze łatwiej jest zmienić kod, którego jeszcze nie napisałem"
 
 
   
Petermechanic 
Wymiata!


Pomógł: 34 razy
Skąd: Przemyśl
Wysłany: 2006-08-05, 16:34   

Na innym projekcie ikonka jest. Właśnie jestem w trakcie przerabiania mojego projektu
_________________
XMPP: piotrek@jabder.ath.cx
 
 
   
ExeQtoR 
Moderator



Pomógł: 36 razy
Skąd: K.P.
Wysłany: 2006-08-05, 16:44   

Cytat:
Co się dzieje Zmieniam ikonę programu i komiluję a dalej jest domyślna, ustawiona przez Delphi.

Bo zmieniasz nie tam gdzie trzeba :P
Ikona widoczna w folderze:
Project --> Options --> Application --> Load Icon(przycisk, klikasz i podajesz lokalizacje swojej ikony) --> OK(potwierdzamy :D

Ikona widoczna w programie (prawy góry róg formy):
Klikasz na Form1(chyba że zmieniłeś na inną nazwę) w Object treeView --> W Object Inspector wybierasz opcje z zakładki Properties ->Icon --> ...(klikasz na 3 kropki) --> W okienku co się pojawiło klikasz na Load --> Wybierasz lokalizacje swojej ikony (OK) --> Klikasz OK --> I gotowe ;)


Petermechanic napisał/a:
wywala mi także hinty(zmmienna nie została uzyta) oraz warningi(zmienna nie została zainicjonowana)

Naucz się czytać skoro nie została za inicjowana to znaczy że nie została taka opcja włączona ;)

W Object Inspectorze -->Properties-->ShowHint(domyślnie ustawione na False) ustawiasz na True.

Nastepnie: Object Inspector -->Properties--> Hint (piszesz to co ma być w Hincie ;) ) I powinno zadziałać na 100% ;)
_________________
Moderatora grzecznie się słuchamy,
nie spamujemy, nie bluzgamy...


 
 
   
Petermechanic 
Wymiata!


Pomógł: 34 razy
Skąd: Przemyśl
Wysłany: 2006-08-06, 11:37   

Cytat:
Build
[Warning] Unit2.pas(92): Variable 'count' might not have been initialized
[Warning] Unit2.pas(127): Variable 'IniFile' might not have been initialized
[Warning] Unit2.pas(141): Variable 'IniFile' might not have been initialized
[Warning] Unit2.pas(141): Variable 'count' might not have been initialized
[Hint] Unit1.pas(106): Value assigned to 'p' never used
[Warning] Unit1.pas(230): Comparing signed and unsigned types - widened both operands
[Hint] Unit1.pas(288): Value assigned to 'Czas1' never used

Wszystko chodzi a w ten sposób na zmienianie ikony nie dało rady. Przerobiłem projekt i ikona się zmienia. Te zmikenne co powyżej zostają użyte , a jednak wywala błędy kompilatora, zmienne działają.
_________________
XMPP: piotrek@jabder.ath.cx
 
 
   
ExeQtoR 
Moderator



Pomógł: 36 razy
Skąd: K.P.
Wysłany: 2006-08-07, 10:18   

Petermechanic,
Kod:

[Warning] Unit2.pas(92): Variable 'count' might not have been initialized
[Warning] Unit2.pas(127): Variable 'IniFile' might not have been initialized
[Warning] Unit2.pas(141): Variable 'IniFile' might not have been initialized
[Warning] Unit2.pas(141): Variable 'count' might not have been initialized

To oznacza że Być może te rzeczy/zmienne nigdy nie zostaną użyte :) To jest informacja dla Ciebie aby niepotrzebnie nie zaśmiecać pamięci :D Ale program i tak je skompiluje tak się zdarza jak masz np. Warunki logiczne np. IF coś tam = coś tam Then (tu użyta ta zmienna); Dlatego raz ta zmienna nie zostanie użyta a raz zostanie użyta dlatego masz taką informację :) Tak samo przy Instrukcji wielokrotnego wyboru "case" :)
Kod:

[Hint] Unit1.pas(106): Value assigned to 'p' never used
[Warning] Unit1.pas(230): Comparing signed and unsigned types - widened both operands
[Hint] Unit1.pas(288): Value assigned to 'Czas1' never used


[Hint] Unit1.pas(106): Value assigned to 'p' never used Oznacza że ta zmienna na 100% nigdy nie zostanie użyta w żadnym wypadku czyli po prostu "zaśmieca" pamięć :) Tak samo z [Hint] Unit1.pas(288): Value assigned to 'Czas1' never used

A to:
[Warning] Unit1.pas(230): Comparing signed and unsigned types - widened both operands
To bym musiał zobaczyć w kodzie bo nie umiem sprecyzować odpowiedzi :/ Ale Jak widzisz:
Hint- pod powiedź
Waring- Niebezpieczeństwo
///Obydwa powyższe przedrostki które kompilator Ci wyrzuci to i tak się skompilują\\\
Error- Błąd-- nie da się skompilować

Podsumowując:
takie rzeczy mogą występować ale staraj się ich w większych programach unikać ponieważ to w niektórych przypadkach zaoszczędzi Ci pamięci ;)
_________________
Moderatora grzecznie się słuchamy,
nie spamujemy, nie bluzgamy...


 
 
   
Petermechanic 
Wymiata!


Pomógł: 34 razy
Skąd: Przemyśl
Wysłany: 2006-08-07, 10:23   

dzięki, lock
_________________
XMPP: piotrek@jabder.ath.cx
 
 
   
gość
Gość
Wysłany: 2006-10-30, 19:03   

no a jeśli jakaś zmienna jest w funkcji if to ona raz będzie używana a raz nie. to wtedy można to jakoś naprawić żeby nie pojawiał się warning??
 
   
Maciek 
Programmer


Pomógł: 9 razy
Skąd: Radom
Wysłany: 2006-10-30, 19:11   

Wtedy to już program nie powinien Ci błędów wywalać. Spróbuj dopisać taką linijke która po prostu te warningi ominie np.
Kod:
zmienna:=zmienna-1;
zmienna:=zmienna+1;

i może wtedy zadziała...
_________________
"Zawsze łatwiej jest zmienić kod, którego jeszcze nie napisałem"
 
 
   
Asdef 
Administrator



Pomógł: 32 razy
Skąd: Lodz
Wysłany: 2006-10-30, 19:20   

nie powinno nic wypluwać ze strony delphi :O

podarunkiem że if jest dobrze wykonany...
_________________
PCT szuka ludzi dobrej woli, którzy jak mają ciekawe artykuły pisane z własnej ręki, to oczywiście można je nadsyłać nawet z gościa, po zatwierdzeniu przez moderatora…
http://www.pctown.pl/submitnews.php
lub wysyłać na asdef(malpa)o2.pl
http://img528.imageshack.us/img528/3311/dn9ar.png
 
   
ExeQtoR 
Moderator



Pomógł: 36 razy
Skąd: K.P.
Wysłany: 2006-10-30, 21:50   

Cytat:
no a jeśli jakaś zmienna jest w funkcji if to ona raz będzie używana a raz nie. to wtedy można to jakoś naprawić żeby nie pojawiał się warning??


Chodzi o to że Delphi informuje Cię że jakaś twoja zmienna być może nie zostanie u użyta. Czyli np.:
If a=b Then zmienna1:= a*2 Else zmienna2:= a*b;

I w takiej sytuacji jeśli nie użyłeś/aś wcześniej Zmiennej nr.1 lub 2 to Delphi cię o tym po informuje wysuwajac na dole "warring" Ale program z kompiluje się poprawnie :) Chodzi o to aby w programie nie było zmiennych które nie są używane(w ogóle) ponieważ zajmują jakieś miejsce w pamięci dlatego Borlad w Delphi dorobił taka opcję ;]

[ Dodano: 2006-10-30, 21:54 ]
Cytat:
to wtedy można to jakoś naprawić żeby nie pojawiał się warning??

To nie jest żaden błąd !! Tak się zdarza to jest normalne, a jeśli nie chcesz aby tak było to po prostu musiałbyś użyć tych zmiennych wcześniej/później w programie w tedy kompilator nie wyrzuci Ci takiej informacji.

PS:
Teraz już wszystko jasne?? Czy jeszcze masz jakieś wątpliwości ?
_________________
Moderatora grzecznie się słuchamy,
nie spamujemy, nie bluzgamy...


 
 
   
ye1

Wysłany: 2006-10-30, 22:46   

już prawie wszystko kapuje tylko np. jak dam
Kod:
xm:=xm-1;
  xm:=xm+1;

to to dalej sie pojawia, a gościu z laborek twierdzi że nie ma być żadnych warningów ani hintów [/code]
 
   
Thor 
Moderator



Pomógł: 57 razy
Wysłany: 2006-10-30, 22:47   

ExeQtoR napisał/a:
Petermechanic,
Kod:

[Warning] Unit2.pas(92): Variable 'count' might not have been initialized
[Warning] Unit2.pas(127): Variable 'IniFile' might not have been initialized
[Warning] Unit2.pas(141): Variable 'IniFile' might not have been initialized
[Warning] Unit2.pas(141): Variable 'count' might not have been initialized

To oznacza że Być może te rzeczy/zmienne nigdy nie zostaną użyte :)


Nie ;)
To oznacza, że zmienna może nie zostać zainicjalizowana a nie użyta.
Przykład:
Kod:

try
i := 1;
except
end;
ShowMessage(IntToStr(i + 1));

Jako, że inicjalizacja zmiennej i jest w kodzie try...except to kompilator twierdzi, że i może nie zostać zainicjalizowane i działanie i + 1 może odbywać się na niezainicjalizowanej zmiennej i
Oczywiście w przypadku tego kodu powyżej taka sytuacja jest niemozliwa, ale ostrzeżenie będzie.

ExeQtoR napisał/a:

[Hint] Unit1.pas(106): Value assigned to 'p' never used Oznacza że ta zmienna na 100% nigdy nie zostanie użyta w żadnym wypadku czyli po prostu "zaśmieca" pamięć :) Tak samo z [Hint] Unit1.pas(288): Value assigned to 'Czas1' never used


Nieee .... To oznacza, że wartość przypisana do zmiennej nigdy nie zostanie użyta ...
Przykład:
Kod:

i := 40; //ta wartość nigdy nie zostanie użyta
i := 50;
ShowMessage(IntToStr(i));

I w przypadku powyższego kodu kompilator ma rację ;)

ExeQtoR napisał/a:
A to:
[Warning] Unit1.pas(230): Comparing signed and unsigned types - widened both operands
To bym musiał zobaczyć w kodzie bo nie umiem sprecyzować odpowiedzi :/


A to oznacza, że porównujesz (wykonujesz jakąś operację) zmienną typu signed ze zmienną typu unsigned. Czyli zmienną , która ma znak + lub - ze zmienną, która takiego znaku nie ma. Np zmienną typu dword z integerem ... Przykład:
Kod:

var i: integer;

ProgressBar1.Max := 100;
ProgressBar1.Position := 0;
ProgressBar1.Update;
i := GetTickCount;
while GetTickCount - i < 10000 do //pierwsze otrzeżenie o signed and usigned
 begin
  ProgressBar1.Position := (GetTickCount - i) div 100; // drugie ostrzeżenie o signed and unsigned
  ProgressBar1.Update;
 end;

Solucja dla powyższego przykładu: deklaracja i jako dword (ponieważ funkcja GetTickCount zwraca dword)


Uff ... Ale sie opisałem :P
 
   
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
system walidacji dla gości opracował Petermechanic
Forum komputerowe
Strona wygenerowana w 1,17 sekundy. Zapytań do SQL: 9