Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.10;
Descargar: [xml.tar.bz2];

abajo

Nuevos problemas del ruso;) Encontrar ramas similares


Русский   (2001-12-21 21:54) [0]

Hay un procedimiento:
procedimiento EnumResource;
comenzar
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
si asignado (OnEnumResource), entonces OnEnumResource (Self, Buf);
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
fin;
Acc. hay un controlador:
procedimiento OnEnumResource (remitente: TObject; Buf: TNetworkResource);
// donde TNetworkResource es mi clase.
Problema: los valores de los campos Buf se leen, y si los completa
Lista, algo como esto:
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
List.Add (Buf);
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
Al leer de esta Lista, obtenemos eso en cada elemento, por alguna razón
los mismos valores, y cada elemento es igual al último elemento,
empujado en una lista. Y sin Lista "¡el procedimiento funciona!



Иван Шихалев   (2001-12-21 22:12) [1]

Una linea:
Buf := TNetworkResource.Create;
está presente en EnumResource?



evgeg   (2001-12-21 22:12) [2]

Trae un pedazo de código.
Seguramente su lista se completa con las guías para el mismo objeto.




Русский   (2001-12-21 23:17) [3]

En general, gracias por responder; Parece haber hecho todo, pero aquí el problema es este :()
A Ivan Shikhalev >>
Esta línea está presente :)))
Evgeg >> Y aquí está:

// Tipos para la descripción de campos, clase TNetworkResource.
TResourceDisplayType = (RESOURCEDISPLAYTYPE_GENERIC, RESOURCEDISPLAYTYPE_DOMAIN, RESOURCEDISPLAYTYPE_SERVER, RESOURCEDISPLAYTYPE_SHARE,
RESOURCEDISPLAYTYPE_FILE, RESOURCEDISPLAYTYPE_GROUP, RESOURCEDISPLAYTYPE_NETWORK, RESOURCEDISPLAYTYPE_ROOT,
RESOURCEDISPLAYTYPE_SHAREADMIN, RESOURCEDISPLAYTYPE_DIRECTORY, RESOURCEDISPLAYTYPE_TREE, RESOURCEDISPLAYTYPE_NDSCONTAINER);
TResourceScope = (RESOURCE_CONNECTED, RESOURCE_GLOBALNET, RESOURCE_REMEMBERED);
TResourceType = (RESOURCETYPE_ANY, RESOURCETYPE_DISK, RESOURCETYPE_PRINT);
TResourceUsage = (RESOURCEUSAGE_ALL, RESOURCEUSAGE_CONNECTABLE, RESOURCEUSAGE_CONTAINER);
// Clase para describir el recurso de red.
TNetworkResource = class (TPersistent)
privada
FScope: TResourceScope;
FType: TResourceType;
FDisplayType: TResourceDisplayType;
FUsage: TResourceUsage;
FLocalName: cadena;
FRemoteName: cadena;
FComment: cadena;
FProvider: cadena;
público
procedimiento Asignar (Fuente: TNetResource);
publicado
propiedad dwScope: TResourceScope lee FScope escribe FScope;
propiedad dwType: TResourceType lee FType escribe FType;
propiedad dwDisplayType: TResourceDisplayType leer FDisplayType escribir FDisplayType;
propiedad dwUsage: TResourceUsage lee FUsage escribe FUsage;
propiedad lpLocalName: cadena leer FLocalName escribir FLocalName;
propiedad lpRemoteName: cadena leer FRemoteName escribir FRemoteName;
propiedad lpComment: cadena lee FComment escribe FComment;
propiedad lpProvider: cadena leer FProvider escribir FProvider;
fin;
TEnumEvent = procedimiento (Remitente: TObject; Recurso: TNetworkResource) del objeto;
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
TEnumNetwork = class (TComponent)
privada
{Declaraciones privadas}
Buf: TNetworkResource;
Buffer: matriz [0..1000] de TNetResource;
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
procedimiento TEnumNetwork.EnumResource;
// El procedimiento para enumerar los recursos de red disponibles.
var
C: DWORD;
dwResultar: DWORD;
comenzar
// Traduce TNetworkResource a TNetResource.
NetworkToNet (FRootResource, FResource);
// Abre el descriptor de enumeración.
si no es EnumRootResource entonces
dwResult: = WNetOpenEnum (Cardinal (FResourceScope) + 1, Cardinal (FResourceType), Cardinal (FResourceUsage), nil, hEnum) más
dwResult: = WNetOpenEnum (Cardinal (FResourceScope) + 1, Cardinal (FResourceType), Cardinal (FResourceUsage), @FResource, hEnum);
si dwResult = NO_ERROR entonces
comenzar
// Establece el tamaño del búfer.
BufSize: = SizeOf (Buffer);
Recuento: = $ 0FFFFFFFF;
// Comience a enumerar los recursos de red.
si WNetEnumResource (hEnum, Count, @Buffer, BufSize) = NO_ERROR entonces
para C: = 0 para contar - 1 hacer
comenzar
Buf.Assign (Buffer [C]);
si asignado (FOnEnumResource) entonces FOnEnumResource (Self, Buf);
final
si no está asignado (OnEnumError), entonces OnEnumError (Self, dwResult);
// Cerrar el descriptor de enumeración.
WNetCloseEnum (hEnum);
final
si no está asignado (OnEnumError), entonces OnEnumError (Self, dwResult);
fin;
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
procedimiento TEnumNetwork.NetworkToNet (Fuente: TNetworkResource; Destino: TNetResource);
comenzar
// El procedimiento convierte el tipo TNetworkResource en TNetResource.
con Destino hacer
comenzar
dwScope: = Cardinal (Source.dwScope) + 1;
dwType: = Cardinal (Source.dwType);
dwDisplayType: = Cardinal (Source.dwDisplayType);
dwUsage: = Cardinal (Source.dwUsage);
lpRemoteName: = PChar (Source.lpLocalName);
lpLocalName: = PChar (Source.lpLocalName);
lpComment: = PChar (Source.lpComment);
lpProvider: = PChar (Source.lpProvider);
fin;
fin;
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario



Иван Шихалев   (2001-12-22 14:22) [4]

Algo que no vi donde se crea el objeto. Y debería ser así:

begin
Buf := TNetworkResource.Create;
Buf.Assign(Buffer[C]);
if Assigned(FOnEnumResource) then FOnEnumResource(Self, Buf);
end



Русский   (2001-12-22 15:04) [5]

A Ivan Shikhalev>
El objeto se crea en el constructor del componente mismo;
Componente que hago :)
constructor TEnumNetwork.Create (AOwner: TComponent);
comenzar
Creación heredada (AOwner);
FResourceScope: = RESOURCE_GLOBALNET;
FEnumSubResources: = True;
Buf: = TNetworkResource.Create;
FRootResource: = TNetworkResource.Create;
fin;



Иван Шихалев   (2001-12-22 17:08) [6]

Entonces lo necesitas cada vez crear. Y entonces tienes un objeto y resulta que solo cambias sus propiedades. Y TList.Add agrega exactamente el objeto, no su copia :)



Русский   (2001-12-22 18:19) [7]

A Ivan Shikhalev>
¡Todo funciona!
Solo creo, luego lo creo, pero ¿dónde destruirlo?



Иван Шихалев   (2001-12-22 18:42) [8]

Antes de destruir el TList, camina y destruye. O escriba el descendiente de TList.



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.10;
Descargar: [xml.tar.bz2];

arriba





Memoria: 0.58 MB
Tiempo: 0.025 c
1-28454
Imelda
2001-12-21 17:00
2002.01.10
¿Cómo "comprimir" estas líneas para que vayan en orden?


1-28459
SerGa
2001-12-21 21:22
2002.01.10
Registro y NT


1-28462
Anatoly podgoretsky
2001-12-21 21:49
2002.01.10
Cómo almacenar la configuración del programa - 1


3-28415
Romul
2001-12-07 13:00
2002.01.10
Campo booleano en archivo DBF


6-28518
Sregey
2001-10-17 14:13
2002.01.10
Acerca de ServerWinSocket





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish French
gallego georgiano Alemán Griego criollo haitiano Hebreo hindi Húngaro islandés Indonesian irlandés Italiano Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese Rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español