![]() |
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:
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
procedure Tgehzu.Button1Click(Sender: TObject);
var Inhalt:string; begin Inhalt:='Blabla'; Hauptfenster.Tform1.edit1.text:=Inhalt; end;
Delphi-Quellcode:
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?
var Form1:Tform1
Vielen Dank im Vorraus, treuergebenst, Samufi |
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 ? |
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...
|
Re: Edit von Frame aus ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
Sollte doch in der Unit deklariert sin in der die Form1 (Hauptfenster ?) ist.
var Form1:Tform1
Hier mal ein Beispiel: |
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...
|
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:
Du hast 2 Mal! das Formular erstellt, also einmal rauslöschen.
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. Und wenn du 100 Edits brauchst dann erstell die doch dynamisch:
Delphi-Quellcode:
Zugreifen kannst du auf die Editfelder da du wie im designer einen Namen vergeben hast mit:
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;
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; |
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?...
|
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.
|
Re: Edit von Frame aus ändern
Ich hab das jetzt alles hingekriegt, meine Frage währer jetzt: Geht das auch in einem Frame?
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 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