Bueno, el codigo es simple:
Código:
Uses
Unit2
...
Implementation
procedure TForm4.Button4Click(Sender: TObject);
var
form2: TForm2;
begin
if MessageDlg('Esto creará un nuevo expediente. ¿Desea continuar?', mtConfirmation, [mbOk, mbCancel], 0) = mrCancel then close
else
begin
creaexpediente;
form2 := TForm2.Create(NIL);
form2.ShowModal;
end;
end;
El proceso creaexpediente simplente hace un INSERT en una base de datos access, pero no hace falta para resolver esto
En el Form2 he probado de todo.... para intentar modificar la listbox o los edit que existe en el Form1 y ninguna funciona. Por ejemplo:
Código:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Labelededit2.text := 'NO FUNCIONA';
FORM1.UpdateApplication;
MyGlobals.nomclient := ListBox1.Items.Strings[ListBox1.ItemIndex];
Form1.reactiva;
Form1.CheckListBox1.Refresh;
Form1.CheckListBox1.Items.Add('memo');
Form1.Repaint;
CLOSE;
end;
Me explico:
He intentado hacerlo por las bravas: Form1.Labelededit2.text := 'NO FUNCIONA'; resultado: NADA
A traves de un procedimiento llamado UPDATEAPLICATION, que actualiza todas las ventanas, por si hubiera algun tipo de "desfase"
A base de añadir una classe en otro formulario llamada MyGlobals que contiene las variables que quiero pasar (MyGlobals.nomclient := ListBox1.Items.Strings[ListBox1.ItemIndex]
a traves de un proceso en la FORM1 llamado "reactiva" que, básicamente, lo que hace es un form1.activate, esperando que ello lance el onactivate... pero eso tampoco funciona.
Y finalmente con repaint y refresh, a ver si la cosa cambia, pero no.