Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text in Form2 übertragen (https://www.delphipraxis.net/99973-text-form2-uebertragen.html)

Delphieinsteiger 20. Sep 2007 10:11


Text in Form2 übertragen
 
Ich habe mal wieder eine Frage!

Und zwar möchte ich anhand der mouseMove-Funktion in Form1 einen Text auf meine Form2 übertragen.
Das sieht dann ungefähr so aus:

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
        Y: Integer);
       
begin
Case x of
0..96:form2.Canvas.TextOut(20,20,'test');
Delphi gibt den Text aber nicht auf meine Form2 aus.Wenn ich aber das Form2 wegnehme dann schreibt Delphi mir das schon auf meine Form1.

Es klappt auch so:
Delphi-Quellcode:
0..96::form2.label17.caption:='test';
nur ich brauche unbedingt die Canvas-Funktion die mir den Text auf meine Form2 überträgt.

Vieleicht weiß einer Rat!

sirius 20. Sep 2007 10:22

Re: Text in Form2 übertragen
 
Ist denn die Form2 auch an dieser Stelle sichtbar? Denn der Text bleibt nicht bestehen, sobald das Fenster neu gezeichnet wird.

s-off 20. Sep 2007 10:24

Re: Text in Form2 übertragen
 
Hallo,

bei mir funktioniert das so, wie Du es beschrieben hast.

Delphi-Quellcode:
Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
   Case x Of
      0..96: form2.Canvas.TextOut(20, 20, 'test');
   End;
End;

Procedure TForm1.FormShow(Sender: TObject);
Begin
   Form2.Show;
End;
Edit: ok, mit dem Unterschied, dass ich die Form sichtbar habe, also das von Sirius genannte Neuzeichnen bei mir nicht anfällt.

Delphieinsteiger 20. Sep 2007 10:43

Re: Text in Form2 übertragen
 
Super,es klappt!!hatte vorher die Form2 auf Buttonclick aufgerufen aber Dank Form2.Show bleibt sie ja direkt hinter meiner Form1 bestehen und dann klappt es.Hatte mich nur gewundert das wenn man es mit dem Label macht nicht nötig ist.Aber ich bin Froh das es so funktioniert.Vielen Dank euch Beiden!

Delphieinsteiger 20. Sep 2007 13:03

Re: Text in Form2 übertragen
 
Es klappt zwar ganz gut so,aber es hat sich herausgestellt wenn es eine möglichkeit gibt den Text beizubehalten auch wenn die Form2 neu gezeichnet wird wäre es in meinem Fall die schönere Lösung.
Also wenn das möglich wäre wäre das ganz Großartig!

DeddyH 20. Sep 2007 13:06

Re: Text in Form2 übertragen
 
Hallo,

definiere doch einfach eine String-Property in Form2 und gib diese in der Paint-Methode von Form2 aus.

Delphieinsteiger 20. Sep 2007 13:17

Re: Text in Form2 übertragen
 
Ich weiß leider nicht was eine String property ist,könntest du vieleicht ein Beispiel nennen?
ist das dann eine besondere eigenschaft von einem String?

DeddyH 20. Sep 2007 13:22

Re: Text in Form2 übertragen
 
Form2:
Delphi-Quellcode:
unit blubb;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    { Private-Deklarationen }
    FMeinText: String;
    procedure SetMeinText(value: string);
  public
    { Public-Deklarationen }
    property MeinText: string read FMeinText write SetMeinText;
  end;

var
  Form2: TForm2;

implementation

{$R *.DFM}

procedure TForm2.SetMeinText(value: string);
begin
  FMeinText := value;
  invalidate;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  FMeinText := '';
end;

procedure TForm2.FormPaint(Sender: TObject);
begin
  Canvas.Textout(10,10,FMeinText);
end;

end.
Form1:
Delphi-Quellcode:
unit bla;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses blubb;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.MeinText := Edit1.Text;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Form2.Show;
end;

end.

Delphieinsteiger 20. Sep 2007 14:05

Re: Text in Form2 übertragen
 
Das finde ich ja voll super das du dir soviel arbeit gemacht hast.Sehr vielen Dank!Ich denke jetzt sollte ich mein Problem gelöst kriegen.Dankeschön!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz