• Miércoles 14 de Mayo de 2025, 21:13

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 - _Viktor

Páginas: 1 ... 8 9 [10] 11
226
C++ Builder / Autocomplementar en un ComboBox
« en: Domingo 28 de Septiembre de 2003, 02:48 »
No me habia fijado en esta pregunta (:D ), te publico este codigo, lo podras acomodar perfectamente a tu aplicacion, los datos que se autocomplementan estan en la Tabla.db que te adjunto.-

 
Código: Text
  1.  
  2. //-------------UNIT1.CPP-----------------------------------------------------
  3.  
  4. #include <vcl.h>
  5. #pragma hdrstop
  6.  
  7. #include "Main.h"
  8. //---------------------------------------------------------------------------
  9. #pragma package(smart_init)
  10. #pragma resource "*.dfm"
  11. TForm1 *Form1;
  12. //---------------------------------------------------------------------------
  13. __fastcall TForm1::TForm1(TComponent* Owner)
  14.         : TForm(Owner)
  15. {
  16. }
  17. //---------------------------------------------------------------------------
  18. void __fastcall TForm1::FormCreate(TObject *Sender)
  19. {
  20. Table1->Open();
  21.   Table1->First();
  22.   while (!Table1->Eof)
  23.   {
  24.     cb->Items->Add(Table1->FieldByName("Dato")->AsString);
  25.     Table1->Next();
  26.   }
  27. }
  28. //---------------------------------------------------------------------------
  29. void __fastcall TForm1::cbKeyPress(TObject *Sender, char &Key)
  30. {
  31.  lastkey = Key;
  32. }
  33. //---------------------------------------------------------------------------
  34. void __fastcall TForm1::cbChange(TObject *Sender)
  35. {
  36.  String srch = cb->Text;
  37.   if ((lastkey == 0x08) || (lastkey == VK_DELETE))
  38.   {
  39.     lastkey = 0;
  40.     return;
  41.   }
  42.   lastkey = 0;
  43.  
  44.   int ix = cb->Perform(CB_FINDSTRING,-1,(LPARAM)srch.c_str());
  45.   if (ix != CB_ERR)
  46.   {
  47.     cb->ItemIndex = ix;
  48.     cb->SelStart = srch.Length();
  49.     cb->SelLength = (cb->Text.Length()-srch.Length());
  50.   }
  51.  
  52. }
  53. //---------------------------------------------------------------------------
  54.  
  55.  
  56.  

Y finalmente en Unit.h agregas:

 
Código: Text
  1.  
  2. public:  // User declarations
  3.         WORD lastkey;
  4.  
  5.  

Espero te sirva, aunque lo dudo por la fecha de tu post.  Pero bueno, recuerda bajarte la tabla y ponerla en el mismo directorio que tu ejecutable.-

Suerte!

227
C++ Builder / Fichero de recursos
« en: Sábado 27 de Septiembre de 2003, 23:02 »
De esta forma:

 
Código: Text
  1.  
  2. Graphics::TBitmap *bmp = new Graphics::TBitmap;
  3.  bmp->LoadFromResourceName((int) Instance,"Bitmap1");
  4.  
  5.  
  6.  

Espero aun te sirva.-

Saludos!

228
C++ Builder / Entornos de desarollo integrados C/C++
« en: Sábado 27 de Septiembre de 2003, 01:29 »
Hola, se que tal vez no suene como una opinion imparcial, C++ Builder definitivamente es el mejor, el unico que se le acerca es Visual C++, pero igual se le queda muy por detras a C++Builder.-
;-)

Aqui te dejo el link a un pdf que te dara una mejor perspectiva de las diferencias que ambos tienen.-

Click Aqui

229
C++ Builder / cómo calcular el tamaño (en bytes) de un archivo de imagen *
« en: Sábado 27 de Septiembre de 2003, 01:06 »
Esto te servira:

 
Código: Text
  1.  
  2. void __fastcall TForm1::Button1Click(TObject *Sender)
  3. {
  4.  
  5. //Creación de un tipo de datos donde se contendrán los atributos de un fichero
  6.  
  7. WIN32_FIND_DATA* dat = new WIN32_FIND_DATA();
  8. //Busco el fichero en concreto.
  9. HANDLE buscar = FindFirstFile("d:avathar.bmp",dat);
  10. //Si existe el fichero.
  11. if (buscar != INVALID_HANDLE_VALUE)
  12. {
  13.  float dato =dat->nFileSizeLow;
  14.  ShowMessage(FloatToStr(dato) +" bytes." );
  15. }
  16. else
  17. {
  18. ShowMessage("No Existe el fichero");
  19. }
  20.  
  21. }
  22.  
  23.  

Espero aun te sirva.-

230
C++ Builder / Re: Evento OnClick
« en: Sábado 27 de Septiembre de 2003, 00:38 »
Holas, si quieres hacerlo en forma completamente dinamica hazlo asi:

 
Código: Text
  1.  
  2. /****************UNIT1.H**********/
  3. //---------------------------------------------------------------------------
  4.  
  5. #ifndef Unit1H
  6. #define Unit1H
  7. //---------------------------------------------------------------------------
  8. #include <Classes.hpp>
  9. #include <Controls.hpp>
  10. #include <StdCtrls.hpp>
  11. #include <Forms.hpp>
  12. #include <ExtCtrls.hpp>
  13. //---------------------------------------------------------------------------
  14. class TForm1 : public TForm
  15. {
  16. __published:    // IDE-managed Components
  17.         TButton *Button1;
  18.         TImage *Image1;
  19.         void __fastcall Button1Click(TObject *Sender);
  20. private:    // User declarations
  21. public:     // User declarations
  22.         void __fastcall MiOnClick(TObject *Sender);
  23.         __fastcall TForm1(TComponent* Owner);
  24. };
  25. //---------------------------------------------------------------------------
  26. extern PACKAGE TForm1 *Form1;
  27. //---------------------------------------------------------------------------
  28. #endif
  29.  
  30.  
  31.  

y finalmente:

 
Código: Text
  1.  
  2. void __fastcall TForm1::Button1Click(TObject *Sender)
  3. {
  4.  
  5.   TImage *Imagen = new TImage(this);
  6.   Imagen->Top = 10;
  7.   Imagen->Left = 10;
  8.   Imagen->Parent=this;//Form1
  9.   Imagen->Picture->LoadFromFile("d:avathar2.bmp");
  10.   Imagen->Show();
  11.   Imagen->OnClick = MiOnClick;
  12. }
  13. //---------------------------------------------------------------------------
  14.  
  15. void __fastcall TForm1::MiOnClick(TObject *Sender)
  16. {
  17.   ShowMessage("Esta haciendo Click!");
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21.  
  22.  

Asi asignas en tiempo de ejecucion el evento MiOnClick al OnClick de Imagen, con lo que te ahorras poner un TImage en diseño, que creo es lo que querias evitar.  Espero te sirva aun.

Saludos.-:good:

231
C++ Builder / Paso de valores entre ventanas
« en: Jueves 25 de Septiembre de 2003, 09:12 »
Apenas lo encuentra en el monton de cd's que tengo te lo envio....

Suerte

232
C++ Builder / Re: Paso de valores entre ventanas
« en: Jueves 25 de Septiembre de 2003, 00:07 »
Hola, que bueno haber podido ayudarte..
Ahora, con respecto al manual de puertos no recuerdo haber ofrecido alguno, ya que no tengo ninguno, lo que si ofreci fue un manual de creacion de componentes, eso si te lo puedo enviar.-

Saludos.

233
C++ Builder / Re: Paso de valores entre ventanas
« en: Miércoles 24 de Septiembre de 2003, 02:38 »
Hola, la verdad que cuando te aparecen errores como
 
Citar
C++ Error] frmgrafica.cpp(22): E2034 Cannot convert 'TLabel *' to 'AnsiString'


Significa que estas asignando una cadena directamente a un Label, es decir:
 
Código: Text
  1.  
  2. cadena = Label1;
  3.  

de la misma forma con el double,  y en el codigo que publicaste no veo ningun error de ese tipo... revisa bien tu codigo, tal vez en algun sitio estas haciendo alguna asignacion como esa.-

Suerte.-

234
C++ Builder / Re: Paso de valores entre ventanas
« en: Martes 23 de Septiembre de 2003, 22:51 »
Para ello yo haria que esas variables fueran parte del formulario , en el ejemplo que pongo a continuacion declaro "var" como parte del Form2, es decir en Unit2.h luego accedo a ella desde el Form1.-

El Unit2.h (cabecera Form2)

 
Código: Text
  1.  
  2. //-----------------------------------------------------------
  3.  
  4. #ifndef Unit2H
  5. #define Unit2H
  6. //---------------------------------------------------------------------------
  7. #include <Classes.hpp>
  8. #include <Controls.hpp>
  9. #include <StdCtrls.hpp>
  10. #include <Forms.hpp>
  11. //---------------------------------------------------------------------------
  12. class TForm2 : public TForm
  13. {
  14. __published:    // IDE-managed Components
  15. private:    // User declarations
  16. public:     // User declarations
  17.   int var; //pasa a ser parte del TForm2
  18.   //puse var por dar el ejemplo-
  19.         __fastcall TForm2(TComponent* Owner);
  20. };
  21. //---------------------------------------------------------------------------
  22. extern PACKAGE TForm2 *Form2;
  23. //---------------------------------------------------------------------------
  24. #endif
  25.  
  26.  
  27.  



El Unit1.cpp (Fuente del Form1)
 
Código: Text
  1.  
  2. //---------------------------------------------------------------------------
  3.  
  4. #include <vcl.h>
  5. #pragma hdrstop
  6.  
  7. #include "Unit1.h"
  8. /*INCLUYES TFORM2*/
  9. #include "Unit2.h"
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. #pragma resource "*.dfm"
  13. TForm1 *Form1;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.         : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21. void __fastcall TForm1::Button1Click(TObject *Sender)
  22. {
  23.   //Asi asignas
  24.   Form2->var = 1000;
  25.   //Asi lees por ejemplo.-
  26.   Edit1->Text = IntToStr(Form2->var);
  27. }
  28. //---------------------------------------------------------------------------
  29.  
  30.  
  31.  

Es super simple, espero te sirva.-

235
C++ Builder / Re: Paso de valores entre ventanas
« en: Martes 23 de Septiembre de 2003, 01:39 »
Te refieres a pasar valores entre formularios ??

Espero tu respuesta para poder ayudarte.-

Saludos :hippi:

236
C++ Builder / consulta mysql desde c++ builder
« en: Sábado 20 de Septiembre de 2003, 00:57 »
Lo mejor que puedes haber es bajarte el controlador MyOdbc, con ese controlador es mucho mas sencillo usar MySql con CBuilder...

(Le pones "MyOdbc download" en google y listo.-)
Saludos.-

237
C++ Builder / Re: Crear un dsn
« en: Sábado 20 de Septiembre de 2003, 00:48 »
Código: Text
  1.  
  2.  
  3.  
  4. //---------------------------------------------------------------------------
  5. #include <vcl.h>
  6. #include <stdio.h>
  7. #pragma hdrstop
  8.  
  9. #include "Unit1.h"
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. #pragma resource "*.dfm"
  13. TForm1 *Form1;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.         : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21.  
  22. bool CreateODBCAlias(String sAlias, String sDB, String sDir, String sDescription)
  23. {
  24.     typedef BOOL (__stdcall *pSQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR);
  25.     pSQLConfigDataSource SQLConfigDataSource;
  26.     HINSTANCE hLib;
  27.     bool bRet = false;
  28.     hLib = LoadLibrary("odbccp32.dll");
  29.      if (hLib)
  30.        {
  31.         SQLConfigDataSource = (pSQLConfigDataSource) GetProcAddress(hLib, "SQLConfigDataSource");
  32.         if (SQLConfigDataSource)
  33.          {
  34.            char szParam[1024];
  35.            sprintf(szParam, "DSN=%s; Description=%s; DefaultDir=%s; DBQ=%s",
  36.                           sAlias.c_str(), sDescription.c_str(), sDir.c_str(), sDB.c_str());
  37.            bRet = SQLConfigDataSource(NULL, 1 /*ODBC_ADD_DSN*/,"Microsoft Access Driver (*.mdb)", szParam);
  38.          }        FreeLibrary(hLib);
  39.         }
  40.   // Devuelve true si se crea o false en caso contrario
  41. return bRet;
  42. }
  43.  
  44.  
  45. void __fastcall TForm1::Button1Click(TObject *Sender)
  46. {
  47. bool ret;
  48. ret = CreateODBCAlias("MiAlias",
  49. "bd.mdb",
  50. "C:bd",
  51. "Esto es una prueba");
  52. // Devuelve true si se crea correctamente
  53. ShowMessage(ret ? "Creado" : "Error");
  54.  
  55.  
  56. }
  57. //---------------------------------------------------------------------------
  58.  
  59.  
  60.  
  61.  

238
C++ Builder / TDataBase y Access
« en: Viernes 19 de Septiembre de 2003, 21:29 »
Es dificil adivinar cual puede ser el error, pero podrias tratar poniendo el codigo de la conexion a la bd dentro de un try catch, es decir

 
Código: Text
  1.  
  2. try
  3. {
  4. //aqui pones el codigo para conectar a la bd
  5. }
  6. catch()
  7. {
  8. //si no quieres que aparesca nada no haces nada aqui.
  9. }
  10.  
  11.  

Obviamente cuando ejecutes tu aplicacion por medio de CBuilder te va aparecer el error, pero si lo haces en forma independiente a travez del ejecutable aparecera lo que pusiste en el catch y si no pusiste nada dentro de el no aparecera nada....

Esto te puede servir como solucion mementanea, mientras encuentras el error, ya que no te recomiendo que dejes tu programa asi.

Saludos

239
C++ Builder / Utilizar el InstallShiell
« en: Viernes 19 de Septiembre de 2003, 01:25 »
En el evento OnShow de tu form podria ser, la idea es que antes de que hagas cualquier operacion con BD's.
Suerte!

240
C++ Builder / apagar windows con c++ builder 5
« en: Jueves 18 de Septiembre de 2003, 07:16 »
Todo depende, que windows??? 95/98/me o nt/2000/xp, ya que el primer grupo se apaga de una forma y el segundo de otra...


 
Código: Text
  1.  
  2. bool apagarWindows(void)
  3. {
  4.     OSVERSIONINFO osvi;
  5.     osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  6.     GetVersionEx( &osvi );
  7.     if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
  8.     {
  9.         //--- Si estamos en NT/2000/XP obtenemos el permiso necesario del sistema
  10.  
  11.         HANDLE hToken;
  12.         TOKEN_PRIVILEGES tkp;
  13.  
  14.         if (!OpenProcessToken(GetCurrentProcess(),
  15.                 TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
  16.             return false;
  17.  
  18.         LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
  19.  
  20.         tkp.PrivilegeCount = 1;
  21.         tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  22.  
  23.         AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
  24.  
  25.         if (GetLastError() != ERROR_SUCCESS)
  26.             return false;
  27.     }
  28.  
  29.     //--- Apagamos
  30.  
  31.     if (!ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0))
  32.         return false;
  33.  
  34.     return true;
  35. }
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  

Eso lo hace en ambos sistemas...

Saludos

241
C++ Builder / Re: Utilizar el InstallShiell
« en: Jueves 18 de Septiembre de 2003, 07:07 »
Hola, la idea es crear un alias en tiempo de ejecucion, ya que cuando yo quise tiempo atras hacer lo mismo que tu no resulto (no me preguntes porque, ya que deberia funcionar).  Entonces la solucion es crear un alias odbc en tiempo de ejecucion....

pero bueno.... aqui publique la respuesta:


AyudaCbuilder / Tips & Tricks

242
C++ Builder / mostrar una imegen guardada en una base de datos
« en: Jueves 18 de Septiembre de 2003, 03:35 »
// Cargando con un Query

 
Código: Text
  1.  
  2. //-------------------------------------------------------------
  3. void __fastcall TForm1::Button3Click(TObject *Sender)
  4. {
  5.     Query->Active = false;
  6.     Query->SQL->Text = "select * from image_testn"
  7.                        "where string_field = 'androm.bmp'";
  8.     Query->Active = true;
  9.  
  10.      std::auto_ptr<TMemoryStream> stream (new TMemoryStream);
  11.     Queryimage_field->SaveToStream(stream.get());
  12.  
  13.         stream->Position = 0;
  14.     stream->SaveToFile("androm.bmp");
  15.  
  16.         stream->Position = 0;
  17.     Image1->Picture->Bitmap->LoadFromStream(stream.get());
  18.  
  19.     Query->Active = false;
  20. }
  21.  
  22.  
  23. //-------------------------------------------------------------
  24. //
  25.  
  26.  
  27.  

Ahora con un Table...
 
Código: Text
  1.  
  2. void __fastcall TForm1::Button3Click(TObject *Sender)
  3. {
  4.      Table->Open();
  5.  
  6.     std::auto_ptr<TMemoryStream> stream (new TMemoryStream);
  7.     Tableimage_field->SaveToStream(stream.get());
  8.  
  9.      stream->Position = 0;
  10.     stream->SaveToFile("androm.bmp");
  11.  
  12.      stream->Position = 0;
  13.     Image1->Picture->Bitmap->LoadFromStream(stream.get());
  14.  
  15.     Table->Close();
  16. }
  17.  
  18.  

Suerte en eso!!!
http://ayudacbuilder.foros.st/

243
C++ Builder / Re: Utilizar el InstallShiell
« en: Jueves 18 de Septiembre de 2003, 03:29 »
En ese caso tienes que crear un DSN, en codigo...
si no sabes como postea...
Saludos

244
C++ Builder / Imprimir en c++ builder
« en: Jueves 18 de Septiembre de 2003, 03:26 »
obviamente que eso tambien se puede, pero con esa opcion no puedes establecer tamaño ni nada, de todas maneras es mejor Printer();

Saludos
;-)

245
C++ Builder / Re: Utilizar el InstallShiell
« en: Domingo 14 de Septiembre de 2003, 01:45 »
Acabo de enviartelo, espero te sirva....
(visita mi foro) AyudaCBuilder

246
C++ Builder / Re: Utilizar el InstallShiell
« en: Sábado 13 de Septiembre de 2003, 04:26 »
Hola, te recomiendo que uses el instalador ISTool y el InnoSetup (trabajan juntos) son mucho mas intuitivos que el instalshield, ademas te ofresco un manual que indica como agregar el BDE a tu instalador... si lo quieres postea un mensaje aqui (no me envies correos porfa), con tu mail y te lo envio, sin problemas....

Suerte!!!

:comp:

248
Otras Bases de Datos / Archivos DBF
« en: Viernes 5 de Septiembre de 2003, 23:56 »
Esos Archivos corresponden a bases de datos DBASE, con eso te sera mas facil averiguar la exportacion....
Saludos

249
C++ Builder / Problema con objetos en C++
« en: Miércoles 3 de Septiembre de 2003, 22:11 »
Ruso tiene toda la razon, no note eso:D

250
C++ Builder / Aplicación Maximizada
« en: Miércoles 3 de Septiembre de 2003, 21:16 »
Para eso estamos! jejeje
Suerte en eso.-

Páginas: 1 ... 8 9 [10] 11