Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ayuda de Delphi - Gotobookmark (https://www.clubdelphi.com/foros/showthread.php?t=7627)

juanchi 21-02-2004 00:12:36

Ayuda de Delphi - Gotobookmark
 
Hola amigos, ¿han probado el ejemplo de la ayuda de delphi en el que copia los datos de una grilla en un listbox?, bueno, yo si, pero no me funciona.

Saludos. :)

marcoszorrilla 21-02-2004 13:45:03

Cita:

Ayuda de Delphi - Gotobookmark
En el título planteas una cosa y en el texto preguntas otra.

Para poder resolver tu pregunta, tendrías que decir exactamente que ejemplo es el que te da error, por ejemplo carpeta Demos carpeta xxxxx ejemplo ELqueSea.

No cabe duda que algo estás haciendo mal, por que la gente de Borland no va a poner un ejemplo que no funcione.

Un Saludo.

juanchi 21-02-2004 17:13:20

Disculpá, no he sido demasiado claro, ha lo que me refiero es al 2° ejemplo de delphi que viene en la ayuda y es referente a la función gotobookmark en la que copia los datos de una grilla en un listbox. Te mando el código:

var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin

if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;

marcoszorrilla 21-02-2004 17:56:51

Para que funcione te hace falta una rejilla conectada a una fuente de datos.
Sigue estos pasos:
1. de la paleta Data Access bájate un Ttable en su propiedad DatabaseName eliges DbDemos que son las Tablas de ejemplos que tiene Delphi.
2. Ahora en la propiedad TableName elige por ejemplo Customer.Db pon active a True
3. Baja un TdataSource de la misma paleta anterior y lo conectas al Ttable.
4. Ahora Baja un rejilla “DbGrid”, lo econtrarás en la paleta DataControls
5. Conecta la rejilla al DataSource por medio de la propiedad DataSource de la rejilla
6. En las propiedades de la rejilla a través del inspector de ojbetos pulsa en Options y activa la propiedad Multiselect
7. Bájate un Listbox de la paleta estandar

Con esto te funcionará el ejemplo:

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
  if DBGrid1.SelectedRows.Count>0 then
    with DBGrid1.DataSource.DataSet do
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
      GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
      for j := 0 to FieldCount-1 do
      begin

      if (j>0) then s:=s+', ';
      s:=s+Fields[j].AsString;
      end;
      Listbox1.Items.Add(s);
      s:= '';
      end;
end;

Un Saludo.

jachguate 21-02-2004 18:43:51

Que tal juanchi.

Intervengo solo para hacerte algunas recomendaciones:
  • el uso de la etiqueta code para indentar el código que publiques en el foro. Podes aprender como usarla siguiendo el link en mi firma.
  • que incluyas toda la información que tengas disponible para que quien se interese en ayudarte pueda hacerlo... en este caso, en ningun momento indicas si se trata de un error de compilación (y cual), de un error en tiempo de ejecución (tipo de excepción, línea que la eleva, etc) o un error de lógica (compila, corre, pero no hace lo que se espera que haga, con tal o cual comportamiento)
  • la lectura (o relectura) de la guia de estilo, donde se plasman las recomendaciones ya hechas y algunas mas que permiten mantener el buen ambiente y nivel de colaboración de estos foros.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 13:20:55.

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