AGB  ·  Datenschutz  ·  Impressum  







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

Dynamische Fenster über Funktion ansteuern

Ein Thema von cback · begonnen am 3. Okt 2005 · letzter Beitrag vom 3. Okt 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von cback
cback

Registriert seit: 3. Sep 2005
Ort: Spiesen-Elversberg
12 Beiträge
 
Delphi 6 Personal
 
#11

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 15:10
Alles klar, das hat mir schon weitergeholfen.

Vielen Dank für die Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#12

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 16:20
Moin, zusammen,

also ich habe da bei Torry noch was hilfreiches. Dort findet sich eine Routine, die alle Formualare einer Liste enumeriert.
Um an Daniels TList anzuknüpfen: Könnte mir vorstellen, dass man dort automatisch alle Formulare eintragen lässt.

Kurzum der Link: enumerate all TForms of a Project

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 16:26
Warum geht "Self" nicht?

So wie ich das verstanden habe, ist die Funktion bestandteil der Form.

Dann also:

Delphi-Quellcode:
procedure AddAction(action:string);
begin
  Self.MiroEdit.SelText := #13#10 + '#' + #13#10 + '#-----[ ' + action + ' ]------------------------------------------'+ #13#10 + '#' + #13#10;
  Self.MiroEdit.SetFocus;
end;
Gruß Igotcha
  Mit Zitat antworten Zitat
Benutzerbild von cback
cback

Registriert seit: 3. Sep 2005
Ort: Spiesen-Elversberg
12 Beiträge
 
Delphi 6 Personal
 
#14

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 16:43
Self kann man bei Delphi ja nur in so dingen benutzen wie Create(self) usw. aber nicht als bezeichnung des aktiven, das geht nur bei JavaSkript soweit mir bekannt ist. Wenn man nur Self schreibt würde das zu nem undefinierten Bezeichner führen.
  Mit Zitat antworten Zitat
Benutzerbild von cback
cback

Registriert seit: 3. Sep 2005
Ort: Spiesen-Elversberg
12 Beiträge
 
Delphi 6 Personal
 
#15

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 17:53
Hi,

ich habe mal etwas rumexperimentiert und eine wesentlich einfachere und bessere Methode herausgefunden. Bei den ersten uses im Hauptformular wo also Windows, Messages usw. eingebunden ist füge ich einfach den Komponentennamen noch hinzu:

, editor_miro wobei editor_miro der Name des Forms ist.

Anschließend lege ich die Objektvariable nicht nur lokal an, da wo ich vorher das Fenster geöffnet habe, sondern Superglobal, also in die var-Liste noch vor "implementation"

  EditorMOD : TEditor_MOD;
Das öffnen der Fenster bleibt identisch, nur habe ich halt keine var mehr lokal gebraucht, da diese Superglobal besteht also aus

Delphi-Quellcode:
procedure ...;
  var EditorMOD: TEditor_MOD;
begin
  EditorMOD := TEditor_MOD.Create(self);
  EditorMOD.Caption := 'CBACK MIRO - Mod Editor';
  EditorMOD.Show;
end;
wurde nun

Delphi-Quellcode:
procedure ...;
begin
  EditorMOD := TEditor_MOD.Create(self);
  EditorMOD.Caption := 'CBACK MIRO - Mod Editor';
  EditorMOD.Show;
end;


Soo und im Editorfenster die Prozedur sieht nun einfach so aus:
Delphi-Quellcode:
procedure AddAction(action:string);
begin
  EditorMOD.MiroEdit.SelText := #13#10 + '#' + #13#10 + '#-----[ ' + action + ' ]------------------------------------------'+ #13#10 + '#' + #13#10;
  EditorMOD.MiroEdit.SetFocus;
end;


So kann ich diese Prozedur nun auch nutzen wenn mehrere Fenster geöffnet werden und es wird auch im richtigen Fenster zugeordnet. Ich brauche also kein Array, keine Liste, nix. Also die einzige Änderung ist, das Objekt für die Multi-Fenster nicht lokal, sondern Superglobal anzulegen, wie beispielsweise das beim Hauptformular von Delphi gemacht wird.


  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#16

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 18:08
Wie schickst du dann Actions an Fenster, die nicht das zuletzt erstellte sind? Oder geht es nur um dieses?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von cback
cback

Registriert seit: 3. Sep 2005
Ort: Spiesen-Elversberg
12 Beiträge
 
Delphi 6 Personal
 
#17

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 18:12
Ich kann die Actions in allen Fenstern senden, das Windows API macht nämlich den Rest, das Fenster muss von Delphi so nur erzeugt werden. Wo es dann letztendlich hingeht verwaltet das Windows Fenstersystem. Die Actions werden nur in dem Fenster angezeigt, von wo sie aufgerufen wurden, also genau so wie es sein soll.
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 18:18
Zitat von cback:
Self kann man bei Delphi ja nur in so dingen benutzen wie Create(self) usw. aber nicht als bezeichnung des aktiven, das geht nur bei JavaSkript soweit mir bekannt ist. Wenn man nur Self schreibt würde das zu nem undefinierten Bezeichner führen.
Nee nee, "Self" ist das Objekt selber.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#19

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 18:20
Ich muss zugeben, dass ich von Actions keine Ahnung habe .
Aber trotzdem, wenn diese Funktion - von wem auch immer - aufgerufen wird, wird doch immer das Edit im zuletzt erstellten Formular geändert?
Delphi-Quellcode:
procedure AddAction(action:string);
begin
  EditorMOD.MiroEdit.SelText := #13#10 + '#' + #13#10 + '#-----[ ' + action + ' ]------------------------------------------'+ #13#10 + '#' + #13#10;
  EditorMOD.MiroEdit.SetFocus;
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#20

Re: Dynamische Fenster über Funktion ansteuern

  Alt 3. Okt 2005, 18:28
Hallo Sebastian,

lass dich nicht vom Namen täuschen - es geht hier nicht um TAction. Außerdem stolperst du gerade über den nicht vorhandenen qualifier vor dem procedure identifier "AddAction" - da steht mitnichten TEditorMod.AddAction. Und außerdem wäre der Zugriff über die globale Form-Variable bei mehreren Instanzen ein grober Fehler.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 11:30 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