Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi StringReplace im MDIChild klappt nicht! (https://www.delphipraxis.net/56394-stringreplace-im-mdichild-klappt-nicht.html)

Grolle 4. Nov 2005 23:37


StringReplace im MDIChild klappt nicht!
 
Hallo!
Ich habe ein Problem mit Stringreplace in einem Childfenster. Der Quelltext:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
  if ActiveMDIChild <> nil then
    begin
      if (Checkbox1.Checked) and (Checkbox3.Checked) then
        begin
          TMDIChild(ActiveMDIChild).SynEdit1.SelText :=
          StringReplace(TMDIChild(ActiveMDIChild).SynEdit1.SelText,Edit1.Text,Edit2.Text,[rfReplaceAll]);
        end
Der Quelltext liegt auf einer anderen Form. Das Childfenster verliert beim Aufruf
den Focus. Geht das deswegen nicht? Wie kann ich das ändern?

sh17 5. Nov 2005 05:49

Re: StringReplace im MDIChild klappt nicht!
 
Wenn das Childfenster den Focus verliert und ActiveMDIChild das aktuelle sein soll, dann wirds so wohl nicht gehen.

Ist das betreffende Childfenster denn nicht irgendwo über eine Variable referenziert?

Ich nehm mal an, es gibt mehrere ChildFenster und nur eine TForm3.
Dann leg doch eine Variable MyActiveMDIChild an und setzt sie, wenn betreffendes Childfenster aktiv ist. So weist Du nach verlorenem Focus, welches das letzt Childfenster war.

bigg 5. Nov 2005 09:18

Re: StringReplace im MDIChild klappt nicht!
 
Hi,

ich schätze mal TForm3 ist nicht dein Hauptformular, oder?
Robert_G und ich haben das Thema vor kurzem erst durchgekaut:
http://www.delphipraxis.net/internal...ct.php?t=66716

Robert_G 5. Nov 2005 11:15

Re: StringReplace im MDIChild klappt nicht!
 
Wenn ich mich recht entsinne, ist MdiChildren[0] das zuletzt aktivierte ChildForm.
Somit könntest du also statt ActiveMdiChild, MdiChildren[0] probieren.
Ist dein Such dialog ebenfalls ein MdiChild wäre es demnach MdiChild[1], aber hier fängt dann das Gefrickel an... :mrgreen:

btw: Ich habe MDI+VCL vor Äonen das letzte Mal ngefasst, deshalb wäre ich nicht überrascht, dass sich das oben geschriebene als nett gemeinter Bullshit entpuppt. ;)

Grolle 5. Nov 2005 12:56

Re: StringReplace im MDIChild klappt nicht!
 
@ Robert_G
Schade, klappt leider nicht. Wäre sehr schön einfach gewesen :stupid:

Die anderen Vorschläge teste ich später mal....

Danke

bigg 5. Nov 2005 13:54

Re: StringReplace im MDIChild klappt nicht!
 
Hi Grolle,

rate mal, warum ich einen Link dazu gepostet habe, den du dir natürlich nicht
durchgeslesen hast?

Du rufst die Funktionen innerhalb von TForm3 auf, lässt aber gleichzeitig
die Formularbezeichner weg, somit schreibt der Compiler:

Delphi-Quellcode:
Form3.ActiveMDiChild.Eigenschaft;
Und Form3 ist mit Garantie nicht dein Hauptforumlar, oder?
Bitte im Thread von oben weiterlesen... :angel2:

Grolle 6. Nov 2005 23:10

Re: StringReplace im MDIChild klappt nicht!
 
Hi Bigg!

Ich habe jetzt alles gelesen. Hat dann aber immer noch nicht geklappt und zwar:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
  if ActiveMDIChild <> nil then // Zu diesem Zeitpunkt kann kein aktives MDIChild existieren,
    begin                       // weil -> Form3 ist aktiv!
      if (Checkbox1.Checked) and (Checkbox3.Checked) then
        begin
          TMDIChild(ActiveMDIChild).SynEdit1.SelText :=
          StringReplace(TMDIChild(ActiveMDIChild).SynEdit1.SelText,Edit1.Text,Edit2.Text,[rfReplaceAll]);
        end
Die Abfrage kommt jetzt direkt beim Aufruf von Form3 und nicht erst wenn man
auf den Button klickt.

Viele Grüße....

bigg 7. Nov 2005 13:10

Re: StringReplace im MDIChild klappt nicht!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Grolle,

du machst noch immer den selben Fehler.
Im Bild unten sind diese Fehler deutlich gekennzeichnet.

PS: Du schreibst übrigens sehr umständlich.
Wozu zwei TypeCasts? Einer tut es doch auch!


mfg bigg

Grolle 7. Nov 2005 13:28

Re: StringReplace im MDIChild klappt nicht!
 
Hi!
Nein, ich habe den Fehler nicht nochmal gemacht. Ich habe den Source oben
aus dem Beitrag rauskopiert. Der war natürlich noch falsch. :oops:

Viele Grüße

bigg 7. Nov 2005 13:30

Re: StringReplace im MDIChild klappt nicht!
 
Ist dein Problem denn damit nun gelöst?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 Uhr.
Seite 1 von 2  1 2      

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