AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Sender

Ein Thema von Natcree · begonnen am 8. Feb 2014 · letzter Beitrag vom 8. Feb 2014
Antwort Antwort
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit Sender

  Alt 8. Feb 2014, 06:59
Hallo

Ich drücke einen Button und öffne Form2. In Form2 ist edit Feld. Werte die ich dort eingebe sollen
die Caption des gedrückten Buttons auf form1 Ändern. Wie Kriege ich das hin? Innerhalb der Form ist es kein problem aber formübergreifend Bekomme ich es nicht hin.

Kann mir jemand helfen

Hab mal hier was gebastelt

Delphi-Quellcode:
procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);
var
Button:Tbutton;
begin
  Button:=TButton(sender);
  if Key = #13 then
    begin
    key := #0;//schalt sound ab
    Button.caption:=edit1.text;//Button <--Hier soll der Sender rein
    edit1.Text:='';
    edit2.Text:='';
    close;
    end;
  end;
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Problem mit Sender

  Alt 8. Feb 2014, 07:41
Habe was gefunden

TColorbutton(form1.findcomponent(edit2.text)).caption:=edit1.text;
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.404 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Problem mit Sender

  Alt 8. Feb 2014, 09:35
Spendiere deiner Form2 besser ein entsprechendes Event.
Delphi-Quellcode:
type
  TMyTextChangeEvent = procedure(Sender: TObject; const ANewMyText: String) of object;

TForm2 = class(TForm)
private
  FOnMyTextChange: TMyTextChangeEvent;
public
  property OnMyTextChange: TMyTextChangeEvent read FOnMyTextChange write FOnMyTextChange;
end;

// da wo du das in Form2 an Form1 geben willst
if Assigned(FOnMyTextChange) then
  FOnMyTextChange(Self, DeinNeuerText);

// Form1

TForm1 = class(TForm)
private
  procedure MyTextChangeEvent(Sender: TObject; const ANewMyText: String);
end;

procedure TForm1.MyTextChangeEvent(Sender: TObject; const ANewMyText: String);
begin
  // mach was mit ANewMyText
end;

// beim Aufruf von Form2:
Form2.OnMyTextChange := MyTextChangeEvent;
Form2.Show; //bzw. ShowModal
Dann muss dein Form2 dein Form1 nicht kennen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.306 Beiträge
 
Delphi 12 Athens
 
#4

AW: Problem mit Sender

  Alt 8. Feb 2014, 10:51
Jupp, Entweder man übergibt beim Aufrufen der Form2 (echt blöder Name) entweder die Referenz des Buttons, aber dann ist man praktisch an Buttons gebunden und kann den Code notfalls nur mit Buttons wiederverwenden,
(wie z.B. bei der Verbindung von TDataSet und TDataSource, oder zwischen TImageList und irgendeiner Komponente, mit diesen Images-Properties)

oder man nutzt ein Callback-Event, so wie schon vorgeschlagen, und kann dann im Event machen was man will, während die Form2 nichts übr den Button wissen muß.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Feb 2014 um 10:55 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:28 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