Delphi-PRAXiS

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 Edit von Frame aus ändern (https://www.delphipraxis.net/125079-edit-von-frame-aus-aendern.html)

Samufi 30. Nov 2008 13:09


Edit von Frame aus ändern
 
Hallo,
ich schreibe gerade an der Prozedur von einem Button auf einem eingebundenen Frame, mit dem ich ein Edit auf dem Hauptfenster verändern will.
Delphi-Quellcode:
procedure Tgehzu.Button1Click(Sender: TObject);
var Inhalt:string;
begin
Inhalt:='Blabla';
Hauptfenster.Tform1.edit1.text:=Inhalt;
end;
So erscheint bei mir die Fehlermeldung "Methodenbezeichner erwartet" hinter edit1. Ich habe das ganze schon vorher in einem Testprogramm ausprobiert, da hat das alles noch ganz gut geklappt, ich hatte bei Tform1 das T weggenommen und im Hauptfenster form1 mit
Delphi-Quellcode:
 var Form1:Tform1
definiert, warum ich das gemacht hatte weiß ich nicht, auf jeden fall hat es funktioniert. Wenn ich das nun mache, passiert bei Klick auf den Button einfach gar nichts. Könnt ihr mir vielleicht sagen, wo der Fehler liegt?
Vielen Dank im Vorraus,
treuergebenst,
Samufi

turboPASCAL 30. Nov 2008 13:41

Re: Edit von Frame aus ändern
 
Das "T" von TForm1 muss weg. Du möchtest ja auf die Form und nicht auf die Deklatation derer zugreifen.

Was ist denn Hauptfenster ?

Samufi 30. Nov 2008 13:51

Re: Edit von Frame aus ändern
 
"Hauptfenster" ist die Unit, auf der der Frame eingebunden ist. Wenn ich das T einfach wegnehme, ohne die var-Sache, sagt Delphi mir aber, dass Hauptfenster kein Element namens Form1 enthält. Aber selbst mit passiert ja nichts...

turboPASCAL 30. Nov 2008 14:40

Re: Edit von Frame aus ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
var Form1:Tform1
Sollte doch in der Unit deklariert sin in der die Form1 (Hauptfenster ?) ist.


Hier mal ein Beispiel:

Samufi 30. Nov 2008 15:04

Re: Edit von Frame aus ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das habe ich auch alles so gemacht, es funktioniert nur nicht. Ich schicke dir einfach mal, was ich bisher gemacht habe, es ist zwar ein bisschen unaufgeräumt, es ist auch viel Müll im Zip-Ordner, aber ich hoffe, du wirst dich trotzdem zurechtfinden...

geskill 30. Nov 2008 15:57

Re: Edit von Frame aus ändern
 
Hey, habe ziemlich lang gebraucht bis ich den Fehler gefunden habe ^^

Das ist deine aktuelle DPR Datei.
Delphi-Quellcode:
program BatchEditor;
uses
  Forms,
  Ausgeben in 'Ausgeben.pas',
  Hauptfenster in 'Hauptfenster.pas' {Form1},
  gehezu in 'gehezu.pas' {gehzu: TFrame};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Du hast 2 Mal! das Formular erstellt, also einmal rauslöschen.

Und wenn du 100 Edits brauchst dann erstell die doch dynamisch:
Delphi-Quellcode:
VAR I:Integer; newEdit:TEdit;
BEGIN
  FOR I := 0 TO 10
    DO BEGIN
      newEdit := TEdit.Create(Form1);
      newEdit.Name := 'eEingabe'+IntToStr(I);
      newEdit.Parent := Form1;
      newEdit.Top := I * 30 + 8; {Abstand in Abhängikeit von I}
      newEdit.Left := 8;
      newEdit.Width := 100;
      {Hier kannst du noch weitere Eigenschaften/Methoden deklarieren}
      newEdit.Show;
    END;
Zugreifen kannst du auf die Editfelder da du wie im designer einen Namen vergeben hast mit:
Delphi-Quellcode:
BEGIN
  newEdit := (Form1.FindComponent('eEingabe0') AS TEdit); // "Typecast" mit TEdit ist nötig damit man weiß um was es sich handelt.
  newEdit.Text := 'Neuer Text';
END;

Samufi 30. Nov 2008 16:23

Re: Edit von Frame aus ändern
 
Vielen Dank für deine Suche!(!!) Ich habe zwar in meinem Projekt die betreffenden Zeilen noch nicht gefunden, weil ich irgendwie nur die beiden unsits sehe, wenn ich die dpr-Datei anklicke, aber das ist wahrscheinlich ganz normal so... Dadurch, dass du mir gezeigt hast, wie man die ganze Sache dynamisch löst, werde ich das Programm noch mal ganz von vorne erstellen, da ist dann auch keine falsche Zeile mehr drin. Das dynamische Erstellen war also viel wertvoller als die Fehlerbehebung (für die ich trotzdem dankbar bin!)! Ist es auch möglich, unendlich viele Edits zu erstellen (bei jedem Knopfdruck eins mehr) und den Platz mit einer Scrolleiste zu schaffen? Das würde dem Ganzen noch einen richtigen Qualitätsschub geben. Falls das aber zu schwer ist, kann ich auch darauf verzichten. Vielleicht sollte ich dafür ein neues Thema aufmachen?...

geskill 30. Nov 2008 17:05

Re: Edit von Frame aus ändern
 
Klar geht alles, kannst das was ich oben geschrieben habe etwas umändern dann geht es auch per Knopfdruck.

Samufi 30. Nov 2008 17:42

Re: Edit von Frame aus ändern
 
Ich hab das jetzt alles hingekriegt, meine Frage währer jetzt: Geht das auch in einem Frame? --> im neuen Thema


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 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