Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #18  
Antiguo 22-06-2007
nfrfabian nfrfabian is offline
Miembro
 
Registrado: ago 2006
Posts: 55
Poder: 20
nfrfabian Va por buen camino
Lepe, la utilizacion de los edits (vtAddons), no utilizaran demasiado recursos del sistema (en este momento le tengo miedo a los tedits)?
Probablemente los edis estaran optimizados para ser utilizados sin ningun problema, pero por ahora no los he visto. Ahora tengo otro inconveniente que paso a comentarte:
Yo pensaba usar un virtualstringtree con 3 columnas: hora, nombre, servicio.
Este virtualstringtree representaria un gabinete.
Te pido si podes analices el siguiente codigo y me digas que esta mal:

type
ptgabinete = ^ttgabinete;
ttgabinete = record
hora: string[7];
nombre: string[25];
servisesi: string[10];

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
xxx.NodeDataSize := SizeOf(ptgabinete);
end;


procedure TForm1.xxxInitNode(Sender: TBaseVirtualTree; ParentNode,
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var data: ptgabinete;
begin
Data := Sender.GetNodeData(Node);
data.hora := '00:00hs'; //hora de prueba
data.nombre := 'Juan'; //nombre de prueba
data.servisesi := 'Masaje'; //servicio de prueba
end;

procedure TForm1.xxxGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var data: ptgabinete;
begin
Data := Sender.GetNodeData(Node);
case column of
1:
begin
celltext := data.hora;
end;
2:
begin
celltext := data.nombre;
end;
3:
begin
celltext := data.servisesi;
end;
end;
end;

El problema es el siguiente:
Cuando a la propiedad "rootnodecount" del virtualstringtree le pongo 1 y ejecuto la aplicacion funciona perfectamente. Es decir en el virtualstringtree veo la hora, el nombre y la sesion.
Pero cuando a la propiedad "rootnodecount" le pongo un numero mayor se produce el siguiente error:
Proyect MDIAPP.exe raised exception class EaccessViolation with message "Access Violation at address 700A2DEE in module MDIAPP.exe". Read of address 0000000B.

Una variante que realice es la siguiente:
A la propiedad "rootnodecount" del virtualstringtree le pongo 0, depues en un boton pongo la siguiente instruccion:

procedure TForm1.Button4Click(Sender: TObject);
var
node: PVirtualNode;
begin
node := xxx.AddChild(NIL);
end;

La primera vez que presiono el boton se ejecuta bien, es decir veo la hora, nombre y sesion:

HORA NOMBRE SERVICIO
00:00hs Juan Masaje


Pero la segunda vez me empieza a mostrar datos corruptos (basura), hasta que vuelve a aparecer el error que te dije anteriormente:

HORA NOMBRE SERVICIO
00:00hs Juan Masaje
00:00hs xxx9´´´´3333d¡¡¡¡¡¡¡¡¡¡¡dsd¡¡¡¡¡¡¡
00:00hs sdlffj333''''¡¡¡¡¡¡¡'000'0''''''
00:00hs Juan Masaje

Probablemente algun evento estara mal, yo lo que hice fue modificar algunos ejemplos que vino el el manual del vt y tambien del ejemplo que viene con el vt.

Tambien hice lo que pusiste en otro post:

// definimos el registro:
TRecBase = record
Nombre:string[50];
direccion :string[80];
Nivel: Integer;
end;
PTrecBase = ^trecbase;

procedure TForm1.xxxInitNode(Sender: TBaseVirtualTree; ParentNode,
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var data: ptgabinete;
begin
Sender.CheckType[Node] := ctTriStateCheckBox;
Sender.CheckState[Node] := csCheckedNormal;
end;


procedure TForm1.xxxGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var data: ptgabinete;
begin
Data := Sender.GetNodeData(Node);
case column of
1:
begin
celltext := data.hora;
end;
2:
begin
celltext := data.nombre;
end;
3:
begin
celltext := data.servisesi;
end;
end;


procedure TForm1.Button5Click(Sender: TObject);
var
prec: ptgabinete;
i:integer;
node: PVirtualNode;
begin
for i:= 0 to 3 do
begin
node := xxx.AddChild(NIL);
prec := xxx.GetNodeData(node);
prec.hora := 'n ' + inttostr(i);
prec.nombre := 'direc ' + inttostr(i);
prec.servisesi := '2222';
// prec.hora2 := i;
end;
end;


En este caso el error no se produce, pero igual te muestra los datos basura o no te muestra nada en algunos nodos.


Si tenes alguna idea del problema te lo voy a agradecer.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear proyecto cliente / servidor Aprendiendo Conexión con bases de datos 1 02-01-2006 15:28:49
Crear Instalador para proyecto en Delphi mieltxo Varios 1 14-12-2005 12:05:38
En mi aplicacion MDI quiero crear una ventana hija desde otra ventana hija Durbed Varios 8 05-07-2005 11:51:54
Error en proyecto? danytorres Varios 1 05-12-2003 15:35:29
Como pasar parametros de una forma hija a otra forma hija luisreg OOP 3 17-09-2003 18:18:50


La franja horaria es GMT +2. Ahora son las 20:32:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi