|
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
« en: Domingo 28 de Septiembre de 2003, 02:48 »
No me habia fijado en esta pregunta (  ), te publico este codigo, lo podras acomodar perfectamente a tu aplicacion, los datos que se autocomplementan estan en la Tabla.db que te adjunto.- //-------------UNIT1.CPP----------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Table1->Open(); Table1->First(); while (!Table1->Eof) { cb->Items->Add(Table1->FieldByName("Dato")->AsString); Table1->Next(); } } //--------------------------------------------------------------------------- void __fastcall TForm1::cbKeyPress(TObject *Sender, char &Key) { lastkey = Key; } //--------------------------------------------------------------------------- void __fastcall TForm1::cbChange(TObject *Sender) { String srch = cb->Text; if ((lastkey == 0x08) || (lastkey == VK_DELETE)) { lastkey = 0; return; } lastkey = 0; int ix = cb->Perform(CB_FINDSTRING,-1,(LPARAM)srch.c_str()); if (ix != CB_ERR) { cb->ItemIndex = ix; cb->SelStart = srch.Length(); cb->SelLength = (cb->Text.Length()-srch.Length()); } } //---------------------------------------------------------------------------
Y finalmente en Unit.h agregas: public: // User declarations WORD lastkey;
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
« en: Sábado 27 de Septiembre de 2003, 23:02 »
De esta forma: Graphics::TBitmap *bmp = new Graphics::TBitmap; bmp->LoadFromResourceName((int) Instance,"Bitmap1");
Espero aun te sirva.- Saludos!
228
« 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
« en: Sábado 27 de Septiembre de 2003, 01:06 »
Esto te servira: void __fastcall TForm1::Button1Click(TObject *Sender) { //Creación de un tipo de datos donde se contendrán los atributos de un fichero WIN32_FIND_DATA* dat = new WIN32_FIND_DATA(); //Busco el fichero en concreto. HANDLE buscar = FindFirstFile("d:avathar.bmp",dat); //Si existe el fichero. if (buscar != INVALID_HANDLE_VALUE) { float dato =dat->nFileSizeLow; ShowMessage(FloatToStr(dato) +" bytes." ); } else { ShowMessage("No Existe el fichero"); } }
Espero aun te sirva.-
230
« en: Sábado 27 de Septiembre de 2003, 00:38 »
Holas, si quieres hacerlo en forma completamente dinamica hazlo asi: /****************UNIT1.H**********/ //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; TImage *Image1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations void __fastcall MiOnClick(TObject *Sender); __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
y finalmente: void __fastcall TForm1::Button1Click(TObject *Sender) { TImage *Imagen = new TImage(this); Imagen->Top = 10; Imagen->Left = 10; Imagen->Parent=this;//Form1 Imagen->Picture->LoadFromFile("d:avathar2.bmp"); Imagen->Show(); Imagen->OnClick = MiOnClick; } //--------------------------------------------------------------------------- void __fastcall TForm1::MiOnClick(TObject *Sender) { ShowMessage("Esta haciendo Click!"); } //---------------------------------------------------------------------------
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
« 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
« 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
« en: Miércoles 24 de Septiembre de 2003, 02:38 »
Hola, la verdad que cuando te aparecen errores como C++ Error] frmgrafica.cpp(22): E2034 Cannot convert 'TLabel *' to 'AnsiString' Significa que estas asignando una cadena directamente a un Label, es decir: 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
« 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) //----------------------------------------------------------- #ifndef Unit2H #define Unit2H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- class TForm2 : public TForm { __published: // IDE-managed Components private: // User declarations public: // User declarations int var; //pasa a ser parte del TForm2 //puse var por dar el ejemplo- __fastcall TForm2(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm2 *Form2; //--------------------------------------------------------------------------- #endif
El Unit1.cpp (Fuente del Form1) //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" /*INCLUYES TFORM2*/ #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { //Asi asignas Form2->var = 1000; //Asi lees por ejemplo.- Edit1->Text = IntToStr(Form2->var); } //---------------------------------------------------------------------------
Es super simple, espero te sirva.-
235
« en: Martes 23 de Septiembre de 2003, 01:39 »
Te refieres a pasar valores entre formularios ?? Espero tu respuesta para poder ayudarte.- Saludos
236
« 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
« en: Sábado 20 de Septiembre de 2003, 00:48 »
//--------------------------------------------------------------------------- #include <vcl.h> #include <stdio.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- bool CreateODBCAlias(String sAlias, String sDB, String sDir, String sDescription) { typedef BOOL (__stdcall *pSQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR); pSQLConfigDataSource SQLConfigDataSource; HINSTANCE hLib; bool bRet = false; hLib = LoadLibrary("odbccp32.dll"); if (hLib) { SQLConfigDataSource = (pSQLConfigDataSource) GetProcAddress(hLib, "SQLConfigDataSource"); if (SQLConfigDataSource) { char szParam[1024]; sprintf(szParam, "DSN=%s; Description=%s; DefaultDir=%s; DBQ=%s ", sAlias.c_str(), sDescription.c_str(), sDir.c_str(), sDB.c_str()); bRet = SQLConfigDataSource(NULL, 1 /*ODBC_ADD_DSN*/,"Microsoft Access Driver (*.mdb)", szParam); } FreeLibrary(hLib); } // Devuelve true si se crea o false en caso contrario return bRet; } void __fastcall TForm1::Button1Click(TObject *Sender) { bool ret; ret = CreateODBCAlias("MiAlias", "bd.mdb", "C:bd", "Esto es una prueba"); // Devuelve true si se crea correctamente ShowMessage(ret ? "Creado" : "Error"); } //---------------------------------------------------------------------------
238
« 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 try { //aqui pones el codigo para conectar a la bd } catch() { //si no quieres que aparesca nada no haces nada aqui. }
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
« 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
« 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... bool apagarWindows(void) { OSVERSIONINFO osvi; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx( &osvi ); if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { //--- Si estamos en NT/2000/XP obtenemos el permiso necesario del sistema HANDLE hToken; TOKEN_PRIVILEGES tkp; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return false; LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); if (GetLastError() != ERROR_SUCCESS) return false; } //--- Apagamos if (!ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0)) return false; return true; }
Eso lo hace en ambos sistemas... Saludos
241
« 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
« en: Jueves 18 de Septiembre de 2003, 03:35 »
// Cargando con un Query //------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { Query->Active = false; Query->SQL->Text = "select * from image_testn" "where string_field = 'androm.bmp'"; Query->Active = true; std::auto_ptr<TMemoryStream> stream (new TMemoryStream); Queryimage_field->SaveToStream(stream.get()); stream->Position = 0; stream->SaveToFile("androm.bmp"); stream->Position = 0; Image1->Picture->Bitmap->LoadFromStream(stream.get()); Query->Active = false; } //------------------------------------------------------------- //
Ahora con un Table... void __fastcall TForm1::Button3Click(TObject *Sender) { Table->Open(); std::auto_ptr<TMemoryStream> stream (new TMemoryStream); Tableimage_field->SaveToStream(stream.get()); stream->Position = 0; stream->SaveToFile("androm.bmp"); stream->Position = 0; Image1->Picture->Bitmap->LoadFromStream(stream.get()); Table->Close(); }
Suerte en eso!!! http://ayudacbuilder.foros.st/
243
« 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
« 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
« en: Domingo 14 de Septiembre de 2003, 01:45 »
Acabo de enviartelo, espero te sirva.... (visita mi foro) AyudaCBuilder
246
« 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!!!
247
« en: Miércoles 10 de Septiembre de 2003, 17:18 »
248
« 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
« en: Miércoles 3 de Septiembre de 2003, 22:11 »
Ruso tiene toda la razon, no note eso:D
250
« en: Miércoles 3 de Septiembre de 2003, 21:16 »
Para eso estamos! jejeje Suerte en eso.-
Páginas: 1 ... 8 9 [10] 11
|
|
|