AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TMDIApp - Geisteranwendung?

Ein Thema von snapman · begonnen am 27. Mai 2005 · letzter Beitrag vom 27. Mai 2005
Antwort Antwort
snapman
(Gast)

n/a Beiträge
 
#1

TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 20:46
Hallo,
also ich bin total verwirrt.
Wenn ich in Delphi 2005 (oder auch in Delphi 6) diese Demo TMDIApp erstellen lasse, dann kommt da ja so ein kleiner halbfertiger MDI Texteditor.
Das verrückte ist aber das obwohl bei im Dateimenü z.B. bei "Close" oder im gesamten "Windows" Menü KEIN code hinterlegt ist, funktionieren diese Menüeinträge.

Wie kann das sein?
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#2

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 21:05
Das müsste mit der TActionList erledigt werden.
Schau mal bei der Eigenschaft Action, da ist was eingetragen.
Wenn du die Actions anschaust, wirst du bemerken, dass es eine Action namens FileExit1 gibt, bei der im OnExecute-Ereignis was eingetragen ist -> close;
Damit wird das fenster geschlossen
genauso bei den anderen Menüpunkten, bei den kein OnClick abgefragt wird.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#3

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 21:18
Zitat von Chimaira:
Wenn du die Actions anschaust, wirst du bemerken, dass es eine Action namens FileExit1 gibt, bei der im OnExecute-Ereignis was eingetragen ist -> close;
FileExit bezieht sich aber auf das ganze Programm was dann beendet wird, wenn ich das close ausklammere wird das einzelne MDI fenster trotzdem beendet....und FileClose (der Menüeintrag für MDI fenster beenden) hat weder in der ActionList nen Bezug noch im OnClick.. also doch geistertechnik?
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 21:33
Im Menü der Application gibts im File-Untermenü ein ExitFileItem-Menüeintrag. Dort ist ein Eintrag Action, der Rot gekennzeichnet ist. Dort ist auch was eingetragen: FileExit1
FileExit1 ist eine Action, die der ActionList1 angehört. FileExit1 hat im OnExecute-Event das close stehen. Wenn ich das ausklammere, die Application nochmal kompiliere und ausführe, gehts nicht mehr zu.
Wenn nun auf das Item geklickt wird, wird die Action ausgeführt, also auch das OnExecute-Ereignis aufgerufen, und somit das close ausgeführt.
Also nix mit Geistertechnik, sondern reine VCL-Spielereien
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#5

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 21:37
ist ja alles richtig, ich beziehe mich aber nicht auf FileExit, sondern auf FileClose ... und das hat im OnExecute-Event GARNICHTS stehn und funktioniert trotzdem!?!?!
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 21:53
Oh, ok
Bis bei auf den wenigsten Actions ist ein OnExecute implementiert. Das kommt daher, weil es nicht Standard-Actions sind, sonder 'spezifische'. Wenn du in der ActionList schaust, kannst du normale und vorgefertigte Actions einfügen. Diese führen dann den Code z.B. zum schließen des Fensters, anordnen der Children ect. ohne das OnExecute aus. Das müsste der ganze 'Trick' sein. Compiler-Magics sind da ziemlich sicher nicht dahinter.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 22:02
Sowas nennt man auch OOP.
Oft verwendeten Code in Klassen zu verpacken, damit man sich nicht immer und überall einen Wolf tippt...
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#8

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 22:09
Zitat von Robert_G:
Sowas nennt man auch OOP.
Oft verwendeten Code in Klassen zu verpacken, damit man sich nicht immer und überall einen Wolf tippt...
weisst du zufällig, woher dann delphi bei den standard actions "weiss" auf welches fenster es sich z.b. beziehen muss wenn man ne standard-find action oder close action plaziert? und woher weiss delphi ob MDI oder SDI etc??
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#9

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 22:15
Ob MDI oder SDI erkennt man anhand des FormStyles (fsMDIChild, fsMDIForm ect.)
Welches MDI-Form erkennt es dann durch das Parent (was wahrscheinlich fsMDIForm sein muss) und die Eigenschaft ActiveMDIChild.
Falls du mehr als eine Personal Edition deiner Delphi-Version hast, kannst du im fall per Strg+Click durch den Quellcode "surfen"
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#10

Re: TMDIApp - Geisteranwendung?

  Alt 27. Mai 2005, 22:56
Zitat von snapman:
Zitat von Robert_G:
Sowas nennt man auch OOP.
Oft verwendeten Code in Klassen zu verpacken, damit man sich nicht immer und überall einen Wolf tippt...
weisst du zufällig, woher dann delphi bei den standard actions "weiss" auf welches fenster es sich z.b. beziehen muss wenn man ne standard-find action oder close action plaziert? und woher weiss delphi ob MDI oder SDI etc??
Wenn du eine >=Professional von Delphi hast, dürfte ein Strg+Linksklick auf den Bezeichner wahre Wunder bewirken.
Das hätte übrigens die Frage unnötig gemacht, da Source code mehr sagt als 1.000 Worte.
Ich habe hier gerade kein Delphi installiert, aber ich denke mal einfach, dass sie die Standard Methoden/Properties der VCL verwenden.
Also Application.MainForm.ActiveMdiChild, Application.MainForm.Cascade,...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz