• Viernes 29 de Marzo de 2024, 08:32

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - sonGoku

Páginas: [1]
1
C++ Builder / Re: Problemas con patrón de diseño Visitante...
« en: Miércoles 3 de Septiembre de 2008, 08:08 »
tienes que utilizar en cada fichero la directiva IFNDEF, por que si lo incluyes por mas de un camino te sale un mensaje de redeclaracion de clases.

ej.
#ifndef _TGATO_
class TGato : Public TAnimal{ //Clase hija de TAnimal
public:
TGato();
virtual void Accept(TReaccion&);
};
#endif

Suerte, ya me cuentas.

2
C++ Builder / Re: Base de Datos de Acces con Sockets
« en: Martes 2 de Septiembre de 2008, 14:34 »
para utilizar la base de datos sólo debes intercambiar informacion alfanumerica sobre la informacion que deseas compartir, es decir el nombre de tabla y el valor de  la clave primaria de los registros que quieras referenciar. no es necesario enviar nada mas porque la informacion esta en la base de datos.

3
C++ Builder / Re: Problemas con patrón de diseño Visitante...
« en: Martes 2 de Septiembre de 2008, 14:29 »
**********  Error E2316

El problema es porque la variable "TReaccion& Visitante"  la tienes que pasar con un puntero para que te tome el enlace dinámico. Te quedaria asi:
void TGato::Accept(TReaccion *Visitante){
Visitante->visit(this); //Error E2316
}


El otro error no se porque teda cuando cambies esto igual te compila ya bien.

Suerte, ya me cuentas

4
C++ Builder / Re: Duda con OpenDialog.
« en: Viernes 18 de Julio de 2008, 12:01 »
Existe una función "SelectDirectory" en la unidad FileCrt. te adjunto un ejemplo.

#include <FileCtrl.hpp>
const SELDIRHELP = 1000;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString Dir = "C:\Program Files\MyApp";
  if (SelectDirectory(Dir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt,SELDIRHELP))
    Label1->Caption = Dir;
}

ya me cuentas si te ha valido.

Suerte

5
C++ Builder / Re: Leer una parte concreta de un fichero txt
« en: Viernes 11 de Julio de 2008, 08:05 »
El problema es por el segundo parámetro debe ser unnumero alto por ejemplo 1000, fgets te devolveria 1000 caracteres omenos si encuentra un retorno de carro. Pon esta linea

fgets(linea,1000,OutFile);

suerte ya me cuentas.

6
C++ Builder / Re: Leer una parte concreta de un fichero txt
« en: Jueves 10 de Julio de 2008, 08:11 »
En ese código te falta buscar los elementos el código deberia ser:

  while (fgets(linea,sizeof(linea),OutFile) != NULL )
  {
  c = linea[0];
  if (c == "X") {
    indice = indice + 1;
    if (indice = index)   {
       AnsiString sLinea;
       fgets(linea,sizeof(linea),OutFile);
       while (linea[0] != "X"){
          sLinea = (!sLinea.Length()?AnsiString(linea):sLinea + "n"+ AnsiString(linea));
          fgets(linea,sizeof(linea),OutFile);
       }
       ShowMessage(sLinea);
       break;
    }
  }

7
C++ Builder / Re: Manejo de Celdas en el DBGrid
« en: Jueves 3 de Julio de 2008, 12:06 »
si el proceso de importacion los estas realizando a mano (significa recorriendo el DataSet que devuelve la consulta) puedes utilizar un metodo del tipo AnsiString que se llama "Trim" antes de escribirlo en la hoja excell resultado.

Suerte, ya me cuentas.

8
C++ Builder / Re: Manejo de archivos
« en: Jueves 3 de Julio de 2008, 11:42 »
Debes utilizar TOpenDialog para seleccionar el fichero origen y TSaveDialog para seleccionar el fichero destino.

Una vez tengas los nombres de los dos ficheros utilizas la funcion Copyfile

Suerte

9
C++ Builder / Re: error access vialation at
« en: Jueves 3 de Julio de 2008, 11:39 »
Prueba a hacer un rebuiltAll por que hay ocasiones que si utiliza componentes propios se puede liar un poco.

Asegurate que el campo FileName esta en blanco antes de llamarlo o que si contiene un fichero existe.

Si no estas seleccionando un ficheor gráfico (bmp, jpg,...) asegurate que el componente que has cogido es el TOpenDialog, por que hay otro que se llama TOpenPictureDialog que salta un error  si no seleccionas una imagen.

Suerte

10
C++ Builder / Re: como hacer un fichero de extencion .dbf ???
« en: Martes 1 de Julio de 2008, 09:01 »
Aqui tienes un ejemplo de creación.

Yo no lo he ejecutado pero esto te debe de funcionar.

Suerte, pon si tienes alguna duda o si funciona.

/// la variable Table1 es del tipo TTable
//////////////////////////////////////////
if (!Table1->Exists) // Don't overwrite an existing table

{

  Table1->Active = false; // The Table component must not be active

  // First, describe the type of table and give it a name
  Table1->TableType = ttDBase;
  Table1->TableName = "c:\a.dbf";

  // Next, describe the fields in the table

  Table1->FieldDefs->Clear();
  TFieldDef *pNewDef = Table1->AddFieldDef();
  pNewDef->Name = "Field1";
  pNewDef->DataType = ftInteger;

  pNewDef->Required = true;

  pNewDef = Table1->AddFieldDef();

  pNewDef->Name = "Field2";
  pNewDef->DataType = ftString;

  pNewDef->Size = 30;

  // Next, describe any indexes

  Table1->IndexDefs->Clear();
  /* the 1st index has no name because it is a Paradox primary key */
  Table1->IndexDefs->Add("","Field1", TIndexOptions() <<ixPrimary << ixUnique);

  Table1->IndexDefs->Add("Fld2Index","Field2", TIndexOptions() << ixCaseInsensitive);

  // Now that we have specified what we want, create the table

  Table1->CreateTable();
}
//////////////////////////////////////////

11
C++ Builder / Re: Problemas Con El Componente Treeview!!!!
« en: Viernes 13 de Junio de 2008, 11:17 »
Mira en la ayuda el ejemplo de los metodos Add,AddChild de TTreeNodes. No obstante te lo adjunto aqui.

  TTreeNode *Node1;
  TreeView1->Items->Clear(); // remove any existing nodes
  // Add a root node
  TreeView1->Items->Add(NULL, "RootNode1");

  /* Set MyTreeNode to first node in tree view and add a child node to it */
  Node1 = TreeView1->Items->Item[0];
  TreeView1->Items->AddChild(Node1,"ChildNode1");

  // Add another root node
  TreeView1->Items->Add(Node1, "RootNode2");

  /* Reset Node1 to RootNode2 and add a child node to it */
  Node1 = TreeView1->Items->Item[2];

  TreeView1->Items->AddChild(Node1,"ChildNode2");

  /* Reset Node1 to ChildNode2 and add a child node to it */
  Node1 = TreeView1->Items->Item[3];
  TreeView1->Items->AddChild(Node1,"ChildNode2a");

   /* Add another child to ChildNode2 following ChildNode2a */
  TreeView1->Items->AddChild(Node1,"ChildNode2b");

  // add another root node
  TreeView1->Items->Add(TreeView1->Items->Item[0], "RootTreeNode3");


Espero que te sirva aunque haya pasado tanto tiempo desde tu consulta.

Saludos

12
C++ Builder / Re: Lectura De Archivo
« en: Viernes 13 de Junio de 2008, 11:08 »
pon un poco más de código sobre como abres el fichero, y lees datos.

Saludos

13
C++ Builder / Re: Problemas Con Vcle40.lib
« en: Miércoles 11 de Junio de 2008, 17:20 »
Una cosa que puedes hacer es borrar todos los ficheros OBJ que tengas compilados y hacer un "Rebuilt All" si utilizas componentes que no sean de la base de borland reinstala los nuevos para esa version de windows.

Suerte.

14
C++ Builder / Re: Variable Como Nombre De Archivo
« en: Miércoles 11 de Junio de 2008, 11:47 »
Lo que tienes que hacer es:


AnsiString identificador= num_ansi + AnsiString(".csv");
fich(identificador.c_str(), ios::out);

de todas formas si con esto no te aclaras dime con que instruccion tratas de abrir el fichero si es del compilador(fopen,...) o si es propia tuya dime la sintaxis por lo menos.

Saludos.

15
C++ Builder / Re: Variable Como Nombre De Archivo
« en: Lunes 9 de Junio de 2008, 09:29 »
El tipo AnsiString tiene un metodo que lo convierte a char* que es c_str, no se si eso te valdra.

Ejemplo

AnsiString sNombre = AnsiString("c:\\a.xls");
fopen(sNombre.c_str(),"r")

Espero que te valga

16
C++ Builder / Re: Dibujar Con Las Apis
« en: Viernes 30 de Mayo de 2008, 13:00 »
Para visualizar las figuras que creas utilizaras algun componente visual (TImage, TBitMap, ...) casi todos los componentes tienen dos eventos: OnMouseDown, OnMouseUp. Los cuales toman como parametros las coordenadas X,Y del raton cuando pichas y sueltas. Capturando esos eventos podras pintar los elementos al tamaño que deseas.

Suerte.

17
C++ Builder / Re: ¿al Utilizar Variable Ansistring...?
« en: Viernes 30 de Mayo de 2008, 11:47 »
te falta alguna linea antes, debes de tener algunos includes.

He hecho una prueba y debes incluir

#include <vcl.h>


suerte, ya me cuentas.

EI: juntando mensajes, si no hay una respuesta a nuestro ultimo mensaje siempre se puede usar el boton modificar.

18
C++ Builder / Re: Insertar Registros
« en: Viernes 30 de Mayo de 2008, 11:35 »
Lo primero que tienes que decir es que formato esta la tabla, si es dbase debes trabajar con los componente TTable,TQuery,... y no puedes utilizar SQL, mientras si el formato es otro(Access,MySQL,...) debes trabajar con componenete como TADOTable,TADOQuery,... y si puedes utilizar SQL.

Sobre tu codigo fuente deberias hacerlo asi:

AnsiString sTexto = AnsiString("insert into Historial_detalle values ") + _
                     AnsiString(saldo) + AnsiString(",") + _
                     AnsiString(cap_pagado) + AnsiString(",") + _
                     AnsiString(monto_pagar) + AnsiString(",") + _
                     AnsiString(capital) + AnsiString(",") + _
                     AnsiString(cod_p) + AnsiString(",") + _
                     AnsiString(cod_pres) + AnsiString(")");
Qhistorico->SQL->Add(sTexto);
Qhistorico->ExecSQL();

aunque no obstante es mejor hacer con TTable o TADOTable utilizando los metodos Append (añade registro en blanco),Post(salva el registro en la base de datos.)

19
C++ Builder / Re: ¿al Utilizar Variable Ansistring...?
« en: Viernes 30 de Mayo de 2008, 11:20 »
Pon las primeras 8 o 10 lineas para ver el codigo fuente.

20
C++ Builder / Re: Bd (mysql) Y C++builder
« en: Viernes 30 de Mayo de 2008, 10:33 »
Hola, tienes que utilizar los componentes ADO(TADOQuery, TADOConnection, TADOTable, ...), todos se conectan a traves de una cadena de conexion (atributo ConnectionString) la  cual te permite seleccionar el tipo de base datos que quieras.

Espero que sirva.

21
C++ Builder / Re: Problemas Con Listbox
« en: Viernes 30 de Mayo de 2008, 10:26 »
El codigo que has puesto no es el correcto. La forma correcta de acerlo seria con:

  // metemos los datos en la lista.
  ListBox1->Items->Add("A");
  ListBox1->Items->Add("AB");
  ListBox1->Items->Add("AC");
  ListBox1->Items->Add("B");
  ListBox1->Items->Add("BA");
  ListBox1->Items->Add("C");

  // ordenamos la lista
  ListBox1->Sorted = true;


 el orden de las dos operaciones da igual.

Espero que te sirva

Páginas: [1]