Lo tengo! Como los nombres son idénticos, se selecciona la primera cifra más pequeña del número y es el 4º objeto, entonces como los 2 primeros objetos tienen una 4ª cifra, se selecciona la cifra más pequeña que sigue a la 4ª de los 2 primeros objetos.
A100:
Sí, sólo la conversión inversa no se puede hacer. Asignar números aleatorios a los objetos es como llamar al lenguaje MQL831 en lugar de MQL5.
En mi opinión, para procesar los objetos en el orden de su creación manualmente, hay que numerar los nombres después de todos ellos o durante el proceso de creación de cada uno de ellos y luego ejecutar el robot para procesar y escribir el array manteniendo la numeración de creación en los nombres. Esto permitirá ordenar correctamente los objetos de la lista en el futuro como en la funciónObjectName y otras similares, en el ordende creación de los objetos manualmente.
En mi opinión, para procesar los objetos en orden de creación manualmente, necesitamos o bien numerar los nombres después de que todos los objetos hayan sido creados o durante el proceso de creación de cada uno, y luego encender el robot, que procese y escriba un array manteniendo la numeración de creación en los nombres. En el futuro, esto permitirá seleccionar adecuadamente los objetos de la lista, tanto a través de la función ObjectName como de otras similares, en el ordende creación de los objetos manualmente.
¿Por qué no utilizar ObjectGetInteger() con el identificador de propiedad OBJPROP_CREATETIME?
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in] Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
¿Qué me impide utilizar ObjectGetInteger() con la propiedad ID OBJPROP_CREATETIME?
La idea es que quiero que todo lo que dibuje en el gráfico se escriba en el nombre de los objetos, incluyendo la numeración de la creación de los objetos en la lista, en el orden de creación, el timeframe, el tipo de nivel de Fibo y el número de serie del tipo de nivel de Fibo, a la vez que se escriben arrays con los datos de estos niveles en el orden en que se enumeran. Luego crearemos los criterios para las acciones comerciales por estos nombres y datos en arrays correspondientes al orden de creación de estos objetos.
Hasta ahora, he encontrado esta manera: creamos 4 objetos Fibo En la lista, se guarda el orden de creación, los numeramos para procesarlos según el orden de creación Ejecutar el Asesor Experto
//+------------------------------------------------------------------+//| F.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Fibo_Massiv.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+string NameFiboUp[15]; // Объявление массиваstring NameFiboDown[15]; // Объявление массиваstring NameFibo[9]; // Объявление массиваint TimeFrame[9];
string Num[9];
int Frame;
//string New_N;//+------------------------------------------------------------------+intOnInit()
{
//______________________________Массив новых имён с индексацией номеров очерёдности________________________________
NameFiboUp[1]="FiboUp1 ";
NameFiboDown[1]="FiboDown1 ";
NameFiboUp[2]="FiboUp2 ";
NameFiboDown[2]="FiboDown2";
NameFiboUp[3]="FiboUp3";
NameFiboDown[3]="FiboDown3 ";
NameFiboUp[4]="FiboUp4 ";
NameFiboDown[4]="FiboDown4 ";
NameFiboUp[5]="FiboUp5";
NameFiboDown[5]="FiboDown5 ";
NameFiboUp[6]="FiboUp6 ";
NameFiboDown[6]="FiboDown6 ";
NameFiboUp[7]="FiboUp7 ";
NameFiboDown[7]="FiboDown7 ";
NameFiboUp[8]="FiboUp8 ";
NameFiboDown[8]="FiboDown8 ";
NameFiboUp[9]="FiboUp9 ";
NameFiboDown[9]="FiboDown9 ";
NameFiboUp[10]="FiboUp10 ";
NameFiboDown[10]="FiboDown10";
NameFiboUp[11]="FiboUp11 ";
NameFiboDown[11]="FiboDown11 ";
NameFiboUp[12]="FiboUp12 ";
NameFiboDown[12]="FiboDown12 ";
NameFiboUp[13]="FiboUp13 ";
NameFiboDown[13]="FiboDown13";
NameFiboUp[14]="FiboUp14 ";
NameFiboDown[14]= "FiboDown14";
//____________________string Массив таймфреймов______________________________
NameFibo[1]="M1";
NameFibo[2]="M5";
NameFibo[3]="M15";
NameFibo[4]="H1";
NameFibo[5]="H4";
NameFibo[6]="Da";
NameFibo[7]="We";
NameFibo[8]="Mo";
//___________________int Массив таймфреймов__________________________________________
TimeFrame[1]=1;
TimeFrame[2]=5;
TimeFrame[3]=15;
TimeFrame[4]=60;
TimeFrame[5]=240;
TimeFrame[6]=1440;
TimeFrame[7]=10080;
TimeFrame[8]=43200;
//_____________________________________________________________________________
Num[1]="1";
Num[2]="2";
Num[3]="3";
Num[4]="4";
Num[5]="5";
Num[6]="6";
Num[7]="7";
Num[8]="8";
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
int G=0;
int UP=1; //Счётчик очерёдности типов фибоint Down=1; //Счётчик очерёдности типов фибоstring nameUP = "FiboUp";
string nameDown = "FiboDown";
double FiboDown[4][10],FiboUp[4][10]; // 2x мерный массив// Alert("ArraySize(FiboDown)= ", ArraySize(FiboDown));int Fibo_Koll = ObjectsTotal(0,0,OBJ_FIBO); //Запрос колличества объектов Fibo//_________________________________________________________if(Fibo_Koll==0) //Если нет не одного фибо выход //return; ////_________________________________________________________//// int Koll[]; //Индексация и запись в массив по порядку появления фибо в окне инструментов// int Tip[]; //Запись типа Fibo в массив по порядку появления фибо в окне инструментов//ArrayResize(Koll,Fibo_Koll); // Устанавливает новый размер в первом измерении массива Koll []//ArrayResize(Tip,Fibo_Koll); // Устанавливает новый размер в первом измерении массива Tip []// ObjectName(0,0,0,OBJ_FIBO); //Вытаскивает имя найденого фибоfor(int i=0; i < Fibo_Koll; i++)
{
G++; // Нумератор объектов из списка объектовstring n =ObjectName(0,i,0,OBJ_FIBO); //Имя для обрезки до 2х первых знаков для получения тайм-фреймаstring Name_Static =ObjectName(0,i,0,OBJ_FIBO);
//--------------------------------------------------------//----------------------------------------------------------------------------------------double Fibo_Level_0= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства0// модификатор свойства
);
double Fibo_Level_1= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства1// модификатор свойства
);
//------------------------------------------------------------------------------------------------------if(Fibo_Level_0>Fibo_Level_1)
{
//вызов функции расчёта уровня 78.6double Fibo_78_Up = Function_Up(Fibo_Level_0, Fibo_Level_1);
//Изменение имени объектаbool l = StringSetLength( //Устанавливает для строки указанную длину в символах 2
n, // строка2// новая длина строки
);
//-----------------------------------------------------------int N = 1;
string q;
for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
{
N= StringCompare(
n, // первая сравниваемая строка
NameFibo[e], // вторая сравниваемая строкаtrue// режим учета регистра букв при сравнении
);
q= NameFibo[e];
Frame= TimeFrame[e];
}
string New_N =Num[G];
string r= New_N+q+NameFiboUp[UP];
//--------------------------------------------------------------------
FiboUp[UP][1]=1; // Тип обектов 1 == FiboUp
FiboUp[UP][2]=UP; // Нумерация обектов FiboUp по типу
FiboUp[UP][3]=Fibo_78_Up; // 78.6%
FiboUp[UP][4]=Frame; // Тайм фрейм
FiboUp[UP][5]=0; // 50%//----------------------------------------------------------------------------------------------------------bool F =ObjectSetString(0,Name_Static,OBJPROP_NAME,r);
UP++;
}
//----------------------------------------------------------------------------------else
{
//вызов функции расчёта уровня 78.6double Fibo_78_Down = Function_Down(Fibo_Level_0, Fibo_Level_1);
//Изменение имени объектаbool l = StringSetLength( //Устанавливает для строки указанную длину в символах 2
n, // строка2// новая длина строки
);
//-----------------------------------------------------------int N = 1;
string q;
for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
{
N= StringCompare(
n, // первая сравниваемая строка
NameFibo[e], // вторая сравниваемая строкаtrue// режим учета регистра букв при сравнении
);
q= NameFibo[e];
Frame= TimeFrame[e];
}
string New_N =Num[G];
string r= New_N+q+NameFiboDown[Down];
//-------------------------------------------------------------------
FiboDown[Down][1]=2; // // Тип обектов 2 == FiboDown
FiboDown[Down][2]=Down; // Нумерация обектов по типу
FiboDown[Down][3]=Fibo_78_Down; // 78.6%
FiboDown[Down][4]=Frame; // Тайм фрейм
FiboDown[Down][5]=0; // 50%//------------------------------------------------------------------//Изменение имени объектаbool F =ObjectSetString(0,Name_Static,OBJPROP_NAME,r);
Down++;
}
}
//+------------------------------------------------------------------+ArrayPrint(
FiboUp, // выводимый массив6, // количество десятичных знаков после запятойNULL, // разделитель между значениями полей структуры0, // индекс первого выводимого элементаWHOLE_ARRAY, // количество выводимых элементовARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
);
ArrayPrint(
FiboDown, // выводимый массив6, // количество десятичных знаков после запятойNULL, // разделитель между значениями полей структуры0, // индекс первого выводимого элементаWHOLE_ARRAY, // количество выводимых элементовARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
);
}
// for(int i=0; i<ArraySize(Koll); i++)// printf("Koll[%d] = %d",i,Koll[i]);//------------------------------------------------------------------------------------------------------//+------------------------------------------------------------------+//+------------------------------------------------------------------+double Function_Up(double a, double b) // имя функции и список параметров
{
double Sum_100 = a - b; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 78.6 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + b); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+double Function_Down(double a, double b) // имя функции и список параметров
{
double Sum_100 = b - a ; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 21.4 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + a); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+
Recorremos los objetos en el orden de su creación con cambio de nombres para mantener el orden de creación en la lista, y escribimos características y niveles de objetos en arrays en el orden de su creación como en la lista. La primera pasada de código, manteniendo el orden de creación de los objetos en la lista modifica los nombres, complementando con características para la orientación al crear criterios y manteniendo el orden en la lista de objetos para la correcta selección posterior pasando por el orden en caso de cambio de coordenadas de los objetos, y la correcta sobreescritura de las matrices en el orden de primer llenado.
Hasta ahora, la lógica se guarda en la primera pasada))
La cuestión es que quiero que todo lo que dibuje en el gráfico se escriba con el nombre de los objetos, incluyendo la numeración de los objetos en la lista, por orden de creación, el timeframe, el tipo de nivel Fibo y el número de serie del tipo de nivel Fibo, escribiendo paralelamente arrays con los datos de estos niveles en el orden de los objetos en la lista de objetos del gráfico. Luego crearemos los criterios para las acciones comerciales por estos nombres, y los datos en arrays correspondientes al orden de creación de estos objetos.
Hasta ahora, he encontrado el siguiente método. Creamos 4 objetos Fibo en la lista en el orden de su creación, los numeramos para el procesamiento de acuerdo con el orden de creación Lanzar Asesor Experto
La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres de los objetos para mantener el orden de su creación y registrar características y niveles en arrays en el orden de creación de estos objetos como en la lista. La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres, añadiendo características para orientarse al crear criterios y manteniendo el orden en la lista de objetos para una correcta selección posterior intentando cambiar el orden de las coordenadas de los objetos y sobrescribiendo correctamente los arrays en la primera pasada
Mientras que en la primera pasada, la lógica se guarda))
Todo sería mucho más sencillo si los objetos tuvieran un número en la lista de objetos que correspondiera al orden de creación.
Nikolay Kositsin: La gente que es consciente de esto, se ha puesto a dibujar con la clase CCanvas. Y he descubierto un problema totalmente desconocido. Los rectángulos y círculos de fondo rellenos se dibujan bien, pero todos mis intentos de dibujar un círculo han terminado en un completo fracaso. Hay tres variantes de círculos en el código y ningún resultado de dibujarlos en el gráfico. ¿Funciona este código para los círculos o falta algo?
Nikolai Semko: Siempre ha funcionado.
Estás haciendo algo mal.
Sí, todo funciona. Prueba este script. Dibuja en tres algoritmos Círculo, CírculoAA y CírculoWu círculos de radios, color y transparencia aleatorios
Es mejor no utilizarCircleAA: es un algoritmo muy lento.
La cuestión es que quiero que todo lo que dibuje en el gráfico se escriba con el nombre de los objetos, incluyendo la numeración de los objetos en la lista, en orden de creación, timeframe, tipo de nivel de Fibo y número de serie del tipo de nivel de Fibo, escribiendo paralelamente arrays con los datos de estos niveles en el orden de los objetos en la lista de objetos del gráfico. Luego crearemos los criterios para las acciones comerciales por estos nombres, y los datos en arrays correspondientes al orden de creación de estos objetos.
Hasta ahora, he encontrado el siguiente método. Creamos 4 objetos Fibo en la lista en el orden de su creación, los numeramos para su procesamiento de acuerdo con el orden de creación Ejecutar el Asesor Experto
La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres de los objetos para mantener el orden de su creación y registrar las características y los niveles en arrays en el orden de creación de estos objetos como en la lista. La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres, añadiendo características para la orientación en la creación de criterios y manteniendo el orden en la lista de objetos para la correcta selección posterior intentando cambiar el orden de las coordenadas de los objetos y sobrescribir correctamente los arrays en la primera pasada
Mientras que en la primera pasada, la lógica se conserva)))
Su pregunta está resuelta en "una vez". Basta con escribir el cambio de nombre de los objetos creados.
/***********************OnChartEvent function************************/voidOnChartEvent(constint id, // идентификатор событияconstlong& lparam, // параметр события типа longconstdouble& dparam, // параметр события типа doubleconststring& sparam // параметр события типа string
)
{
if(id == CHARTEVENT_OBJECT_CREATE)
{
string result[]; // массив для получения строкStringSplit(sparam, ' ', result); // получим из имени созданного объекта подстрокиulong timeCreate = ObjectGetInteger(0, sparam, OBJPROP_CREATETIME); // получим время создания объектаstring newName = result[0]+" "+result[1]+" "+string(timeCreate); // сформируем новое имя объектаObjectSetString(0, sparam, OBJPROP_NAME, newName); // переименуем объект
}
}/******************************************************************/
Ahora, cada vez que cree un objeto gráfico en el gráfico con un Asesor Experto instalado, los nombres de los objetos tendrán la hora de creación en lugar de un número aleatorio en el nombre y se ordenarán estrictamente en la secuencia de creación.
Hola a todos! ¿Pueden aconsejar a un "programador" analfabeto qué añadir al código del indicador en mql4, para superponer el histograma en el gráfico de un instrumento en un lugar determinado? También es deseable que el histograma sea semitransparente, para que no cubra el gráfico. En el archivo adjunto (no sé cómo adjuntarlo al mensaje como imagen) te he mostrado aproximadamente cómo debería ser.
Su pregunta se resuelve en un instante. Basta con escribir el cambio de nombre de los objetos creados.
Ahora cada vez que cree un objeto gráfico en el gráfico con el Asesor Experto instalado, los nombres de los objetos, en lugar de un número aleatorio, en el nombre tendrán la hora de creación y se ordenarán estrictamente en la secuencia de creación.
Muchas gracias!!! No leer completamente sobre estas Funciones de Manejo de Eventos, simplifica la vida de un proger)
Artyom Trishkin: ¿No es el tiempo de creación del objeto (utilizado como tipo ulong) OBJPROP_CREATETIME un identificador del orden de creación del objeto?
Lo tengo! Como los nombres son idénticos, se selecciona la primera cifra más pequeña del número y es el 4º objeto, entonces como los 2 primeros objetos tienen una 4ª cifra, se selecciona la cifra más pequeña que sigue a la 4ª de los 2 primeros objetos.
Sí, sólo la conversión inversa no se puede hacer. Asignar números aleatorios a los objetos es como llamar al lenguaje MQL831 en lugar de MQL5.
En mi opinión, para procesar los objetos en el orden de su creación manualmente, hay que numerar los nombres después de todos ellos o durante el proceso de creación de cada uno de ellos y luego ejecutar el robot para procesar y escribir el array manteniendo la numeración de creación en los nombres. Esto permitirá ordenar correctamente los objetos de la lista en el futuro como en la funciónObjectName y otras similares, en el ordende creación de los objetos manualmente.
En mi opinión, para procesar los objetos en orden de creación manualmente, necesitamos o bien numerar los nombres después de que todos los objetos hayan sido creados o durante el proceso de creación de cada uno, y luego encender el robot, que procese y escriba un array manteniendo la numeración de creación en los nombres. En el futuro, esto permitirá seleccionar adecuadamente los objetos de la lista, tanto a través de la función ObjectName como de otras similares, en el ordende creación de los objetos manualmente.
¿Por qué no utilizar ObjectGetInteger() con el identificador de propiedad OBJPROP_CREATETIME?
¿Qué me impide utilizar ObjectGetInteger() con la propiedad ID OBJPROP_CREATETIME?
La idea es que quiero que todo lo que dibuje en el gráfico se escriba en el nombre de los objetos, incluyendo la numeración de la creación de los objetos en la lista, en el orden de creación, el timeframe, el tipo de nivel de Fibo y el número de serie del tipo de nivel de Fibo, a la vez que se escriben arrays con los datos de estos niveles en el orden en que se enumeran. Luego crearemos los criterios para las acciones comerciales por estos nombres y datos en arrays correspondientes al orden de creación de estos objetos.
Hasta ahora, he encontrado esta manera: creamos 4 objetos Fibo
En la lista, se guarda el orden de creación, los numeramos para procesarlos según el orden de creación
Ejecutar el Asesor Experto
Recorremos los objetos en el orden de su creación con cambio de nombres para mantener el orden de creación en la lista,
y escribimos características y niveles de objetos en arrays en el orden de su creación como en la lista.
La primera pasada de código, manteniendo el orden de creación de los objetos en la lista modifica los nombres, complementando con características para la orientación al crear criterios y manteniendo el orden en la lista de objetos para la correcta selección posterior pasando por el orden en caso de cambio de coordenadas de los objetos, y la correcta sobreescritura de las matrices en el orden de primer llenado.
Hasta ahora, la lógica se guarda en la primera pasada))
La cuestión es que quiero que todo lo que dibuje en el gráfico se escriba con el nombre de los objetos, incluyendo la numeración de los objetos en la lista, por orden de creación, el timeframe, el tipo de nivel Fibo y el número de serie del tipo de nivel Fibo, escribiendo paralelamente arrays con los datos de estos niveles en el orden de los objetos en la lista de objetos del gráfico. Luego crearemos los criterios para las acciones comerciales por estos nombres, y los datos en arrays correspondientes al orden de creación de estos objetos.
Hasta ahora, he encontrado el siguiente método. Creamos 4 objetos Fibo en la lista en el orden de su creación, los numeramos para el procesamiento de acuerdo con el orden de creación Lanzar Asesor Experto
La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres de los objetos para mantener el orden de su creación y registrar características y niveles en arrays en el orden de creación de estos objetos como en la lista. La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres, añadiendo características para orientarse al crear criterios y manteniendo el orden en la lista de objetos para una correcta selección posterior intentando cambiar el orden de las coordenadas de los objetos y sobrescribiendo correctamente los arrays en la primera pasada
Mientras que en la primera pasada, la lógica se guarda))
Todo sería mucho más sencillo si los objetos tuvieran un número en la lista de objetos que correspondiera al orden de creación.
La gente que es consciente de esto, se ha puesto a dibujar con la clase CCanvas. Y he descubierto un problema totalmente desconocido. Los rectángulos y círculos de fondo rellenos se dibujan bien, pero todos mis intentos de dibujar un círculo han terminado en un completo fracaso. Hay tres variantes de círculos en el código y ningún resultado de dibujarlos en el gráfico. ¿Funciona este código para los círculos o falta algo?
Siempre ha funcionado.
Sí, todo funciona.
Prueba este script. Dibuja en tres algoritmos Círculo, CírculoAA y CírculoWu círculos de radios, color y transparencia aleatorios
Es mejor no utilizarCircleAA: es un algoritmo muy lento.
Sería mucho más fácil si a los objetos se les asignara tácitamente un número en la lista de objetos correspondiente al orden en que fueron creados.
La cuestión es que quiero que todo lo que dibuje en el gráfico se escriba con el nombre de los objetos, incluyendo la numeración de los objetos en la lista, en orden de creación, timeframe, tipo de nivel de Fibo y número de serie del tipo de nivel de Fibo, escribiendo paralelamente arrays con los datos de estos niveles en el orden de los objetos en la lista de objetos del gráfico. Luego crearemos los criterios para las acciones comerciales por estos nombres, y los datos en arrays correspondientes al orden de creación de estos objetos.
Hasta ahora, he encontrado el siguiente método. Creamos 4 objetos Fibo en la lista en el orden de su creación, los numeramos para su procesamiento de acuerdo con el orden de creación Ejecutar el Asesor Experto
La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres de los objetos para mantener el orden de su creación y registrar las características y los niveles en arrays en el orden de creación de estos objetos como en la lista. La primera pasada del código, manteniendo el orden de los objetos en la lista, modifica los nombres, añadiendo características para la orientación en la creación de criterios y manteniendo el orden en la lista de objetos para la correcta selección posterior intentando cambiar el orden de las coordenadas de los objetos y sobrescribir correctamente los arrays en la primera pasada
Mientras que en la primera pasada, la lógica se conserva)))
Su pregunta está resuelta en "una vez". Basta con escribir el cambio de nombre de los objetos creados.
Ahora, cada vez que cree un objeto gráfico en el gráfico con un Asesor Experto instalado, los nombres de los objetos tendrán la hora de creación en lugar de un número aleatorio en el nombre y se ordenarán estrictamente en la secuencia de creación.
Su pregunta se resuelve en un instante. Basta con escribir el cambio de nombre de los objetos creados.
Ahora cada vez que cree un objeto gráfico en el gráfico con el Asesor Experto instalado, los nombres de los objetos, en lugar de un número aleatorio, en el nombre tendrán la hora de creación y se ordenarán estrictamente en la secuencia de creación.
Muchas gracias!!! No leer completamente sobre estas Funciones de Manejo de Eventos, simplifica la vida de un proger)
¿No es el tiempo de creación del objeto (utilizado como tipo ulong) OBJPROP_CREATETIME un identificador del orden de creación del objeto?
¡Sí! ¡Gracias!