Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

Nie pomoże. Tam jest coś takiego:

Kod: Zaznacz cały

int init()
  {
   IndicatorBuffers(1);
   SetIndexBuffer(0,zz);
   SetIndexStyle(0,DRAW_SECTION);
   SetIndexEmptyValue(0,0.0);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   int i; 
   
    for(i=0;i<=ExtDepth;i++)
    {
    ObjectDelete("FiboFan1"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("FiboFan2"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("FiboArc"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("Rectangle"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("LeftChannel"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("RightChannel"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("LeftLine"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("RightLine"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("Pitchfork"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("Mediana"+"_"+i+"_"+ExtComplect+"_");
    }
    
   //----
   return(0);
  }
parametr ExtDepth tak wogóle ustawiony jest w oryginale na 8 i posłużył do jakichś tam obliczeń więc nie rozumiem co robi tutaj. ja bym to ustawił na sztywno na 10 bo tyle jest wskaźników do usunięcia. Dobrze myślę? Problem to właśnie usunięcie poprzednich obiektów i narysowanie nowych. Nowe rysuje a stare zostają.

Dodano po 8 minutach:

Przykład na obrazku.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Obrazek

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

sonixh pisze:

Kod: Zaznacz cały

    ObjectDelete("FiboFan1"+"_"+i+"_"+ExtComplect+"_");

Kod: Zaznacz cały

ObjectCreate("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_FIBOFAN,0,t2,p2,t1,p1);
nie moze skasowac objektow poniewaz kasujesz po nazwie jakiej nie ma :

zwroc uwage ze w tworzonej nazwie jest +save

wiec albo przeszukujesz wszystkie objekty i wykorzystujesz StringFind do sprawdzenia czy to jest objekt wskaznika albo wlasnie korzystasz z funkcji ObjectsDeleteAll

Kod: Zaznacz cały

ObjectsDeleteAll(0,OBJ_FIBOFAN);
i nie ma bola musi skasowac te objekty ;)

pzdr Andrzej

Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

A w przypadku gdy nie ma OBJ_LeftCHannel ? Bo zmyliło mnie to:

Kod: Zaznacz cały

ObjectDelete( "nazwa_objektu" );
Cztery pierwsze obiekty są zdefiniowane a pozostałe już nie a więc wisuję całą linijkę kodu do nawiasu do nawiasu ?
Sory za taki poziom ignorancji ale dlatego wybrałem "dla poczatkujących" :lol:

Dodano po 4 minutach:

Kod: Zaznacz cały

ObjectDelete("LeftLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,EMPTY,); 
Dobrze myślę?
Obrazek

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

sonixh pisze:Sory za taki poziom ignorancji ale dlatego wybrałem "dla poczatkujących"

Dodano po 4 minutach:
Kod:
ObjectDelete("LeftLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,EMPTY,);



Dobrze myślę?
wszystko zalezy od tego co jest pod "save" jezeli jest to stala wartosc to wystarczy do tamtych ObjectDelete(......+save) dla kazdej...
natomiast jezeli jest to jakas zmienna np czas ,kwotowanie czy jakas inna wrtosc to moze byc problem .....

zauwazylem ze wszystkie objecty maja wspolna czesc nazwy :
ExtComplect

wiec zobacz takie cosik czy zadziala ;)

Kod: Zaznacz cały

   for (int i=0;i<ObjectsTotal();i++)
   {
      string name = ObjectName(i);
      if (StringFind(name,ExtComplect,0) != -1) 
      {
         ObjectDelete(name);
         i --;
      }
   }

pzdr Andrzej

EDIT: skasowalem cudzyslow ;) teraz jest ok
Ostatnio zmieniony 30 cze 2011, 18:59 przez Pierz Andrzej, łącznie zmieniany 1 raz.

Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

Faktycznie:

Kod: Zaznacz cały

save=TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS);
natomiast

Kod: Zaznacz cały

extern string ExtComplect="0";
autor wprowadził tą zmienną "żeby wyświetlać kilka wskaźników na wykresie"
Zaraz zobaczę jak zadziała twoja propozycja pętli.

Dodano po 20 minutach:

No niestety efeku nie ma :(

Dodano po 3 minutach:

Pomyślałem, że ExtComplect potraktuję jak Magic Number a mimo to nie usuwa poprzednich obiektów. :evil:
Obrazek

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

No niestety efeku nie ma

Dodano po 3 minutach:

Pomyślałem, że ExtComplect potraktuję jak Magic Number a mimo to nie usuwa poprzednich obiektów.
mozesz wrzucic czesc gdzie masz moja petle i czesc gdzie masz tworzenie objektow ??

pzdr Andrzej
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

Wrzuciłem Ci to na priv bo jest zbyt obszerny, żeby go władować.
Obrazek

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

zwroc uwage ze poprawilem kod dokasowania i nie jest w cudzyslowiu
a najlepiej zastosuj ten:

Kod: Zaznacz cały

for ( i=0;i<ObjectsTotal();i++) 
   { 
      string name = ObjectName(i); 
      if (StringFind(name,StringConcatenate("_",ExtComplect,"_"),0) != -1) 
      { 
         ObjectDelete(name); 
         i --; 
      } 
   } 
pzdr Andrzej
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

:506: Nadal ten sam problem. A może trzeba szukać zupełnie w innym miejscu? Już sam nie wiem...
Obrazek

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

hmm ;) ja testuje i jest ok ;)

wrzuc to na poczatek funkcji start()

Kod: Zaznacz cały

   for (int a=0;a<ObjectsTotal();a++) 
    { 
       string name = ObjectName(a); 
       if (StringFind(name,StringConcatenate("_",ExtComplect,"_"),0) != -1) 
       { 
          ObjectDelete(name); 
          a = -1; 
       } 
    }
pzdr Andrzej
z poważaniem
Andrzej Pierz
FOREX-SERVICE

ODPOWIEDZ