Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   cómo deshabilitar un menu(Form principal) desde otro Form contenido en una DLL dinámi (https://www.clubdelphi.com/foros/showthread.php?t=94082)

michal 22-07-2019 15:56:07

cómo deshabilitar un menu(Form principal) desde otro Form contenido en una DLL dinámi
 
Hola a todos, estoy haciendo un proyecto grande que involucra bases de datos en SQLite etc..
Entonces quiero que cuando mi proyecto detecte que no existe la base de datos, se inhabilite el menu para acceder a ella, y solo esté accesible uno para crear una Base Datos nueva, y que, luego, al ser creada, se vuelva a habilitar todo el menú. Parece complejo, y por eso hice algo nuevo, para solamente tratar el tema que me ocupa, expliqué lo anterior, para que vean el motivo que me impulsa a todo esto.
Ahora tengo el Proyecto1, un sencillo Form1,un botón(para llamar a Form3), con un TMainMenu, y algunos Items y cada uno con un subItem (ninguno hace nada) solo quiero habilitarlos y deshabilitarlos.
Tengo un Proyecto2.dll, que tiene dentro a Form3, el cual tiene un botón, para habilitar/deshabilitar los Items del TMainMenu del Form1. Desde el Form1 puedo llamar al Form3 dinámicamente (me saltaré esos pasos). En la Unit3 (que pertenece al Form3) agregué el header Unit1.h(que pertenece al Form1) y en evento onclick del botón del Form3 puse esto:

Código PHP:

void __fastcall TForm3::Button1Click(TObject *Sender)
{
 if(
Form1->Item11->Enabled)
 {
 
Form1->Item11->Enabled false;
 
Form1->Item21->Enabled false;
 
Form1->Item31->Enabled false;
 
Button1->Caption "Activate Menu";
 }
 else
 {
  
Form1->Item11->Enabled true;
  
Form1->Item21->Enabled true;
  
Form1->Item31->Enabled true;
  
Button1->Caption "Deactivate Menu";
 }


Al compilar me dá este ERRORSAZO

[ilink32 Error] Error: Unresolved external '_Form1' referenced from C:\USERS\ADMINISTRADOR\DOCUMENTS\EMBARCADERO\STUDIO\PROJECTS\MAINMENU2\WIN32\DEBUG\UNIT3.OBJ

Quiero saber qué es lo que estoy haciendo mal, gracias ya por adelantado

Casimiro Notevi 22-07-2019 18:21:15

No olvides usar las etiquetas para el código:

michal 22-07-2019 18:52:40

No entendí
 
Hola Moderador, te refieres a que vuelva a redactar mi duda, pero con lo que me sugieres??

Casimiro Notevi 22-07-2019 19:31:51

Cita:

Empezado por michal (Mensaje 532875)
Hola Moderador, te refieres a que vuelva a redactar mi duda, pero con lo que me sugieres??

No, solamente que lo tengas en cuenta para otras ocasiones ^\||/
Saludos.

michal 22-07-2019 20:21:23

Discúlpenme todos, estoy programado en RAD Studio TOKYO 10.2.3, C++Builder. Y por no poner la etiquetas de código, el foro lo interpretó como php, pero no: es C++Builder

Casimiro Notevi 22-07-2019 21:55:47

Cita:

Empezado por michal (Mensaje 532877)
Discúlpenme todos, estoy programado en RAD Studio TOKYO 10.2.3, C++Builder. Y por no poner la etiquetas de código, el foro lo interpretó como php, pero no: es C++Builder

No te preocupes por eso, es que con las etiquetas php creo que se ve mejor el código.
Tu pregunta está en el foro correcto, c++ builder, así que todo bien :)

Código:

void __fastcall TForm3::Button1Click(TObject *Sender)
{
 if(Form1->Item11->Enabled)
 {
 Form1->Item11->Enabled = false;
 Form1->Item21->Enabled = false;
 Form1->Item31->Enabled = false;
 Button1->Caption = "Activate Menu";
 }
 else
 {
  Form1->Item11->Enabled = true;
  Form1->Item21->Enabled = true;
  Form1->Item31->Enabled = true;
  Button1->Caption = "Deactivate Menu";
 }
}



La franja horaria es GMT +2. Ahora son las 16:48:50.

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