Autor Beitrag
juergen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Di 21.01.03 13:06 
Hallo,

wie kann ich die Toolbar in einer MDI Anwendung vom jeweils aktiven MDIChild abhängig machen ?

Mit dem MainMenu funktioniert es ja sehr gut, aber leider nicht mit der Toolbar.

Oder aber:

Kann ich aus der Toolbar in der MDI-Hauptform Ereignisse des MDIChild aufrufen ?

z.B. Beim Drücken des SAVE-Buttons in der Toolbbar auf dem Hauptformular möchte ich die Daten des aktuellen Child in ein Texfile speichern.

DANKE

juergen
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Di 21.01.03 17:08 
hallo,
also die zweite möglichkeit ist ganz einfach.
im Hauptformular machst du im OnClick des Savebuttons
ausblenden Quelltext
1:
2:
if not assigned(ZielMDIChild) then exit;
ZielMDIChild.meineSaveProcedure; //eventuell noch (Sender)


dazu muss natürlich im Hauptformular das MDIChild unter uses eingetragen sein.

Gruß
Ken
juergen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Mi 22.01.03 09:30 
Hallo Ireniceus

wenn ich den Tip von Dir teste bekomme ich zur Laufzeit die Fehlermeldung:

Zugriffsverletzung bei Adresse ...

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
unit MAIN;
...

procedure TMainForm.ToolButton2Click(Sender: TObject);
begin
   if not assigned(mainform) then exit;
   form1.dateiSpeichern;
end;



unit Unit1;
...

 public
    { Public-Deklarationen }

     procedure dateiSpeichern;
...
procedure TForm1.dateiSpeichern;
begin
       if edit1.text <> ' ' then
       begin
       assignfile(f,'d:\test.txt');
       rewrite(f);
       s:=edit1.text;
       writeln(f,s);
       closefile(f);
       end else
       showmessage('Nichts da zu Speichern');
end;


Der Fehler tritt auf bei der IF-Abfrage!
Es kann anscheinend nicht auf Edit1 zugreifen.

Aber warum ???

DANKE

juergen
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 22.01.03 11:27 
Hallo,

das ist von den Borländern nicht vorgesehen.
In diesem Buch findest du ein Beispiel wie man soetwas machen kann (zumindest war es in der Version zu Delphi 4 enthalden, ich denke es wird immernoch drin sein). Das ist aber komplizierter, (verwendet mehrere Panels und Interfaces). Daher kann ich es hier nicht Posten.
Vieleicht kannst du dir das Buch ja ausleihen.

Gruß
Klabautermann