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 Neues Formular EDIT nicht beschreibbar (https://www.delphipraxis.net/184876-neues-formular-edit-nicht-beschreibbar.html)

DavidJNG 27. Apr 2015 15:14

Neues Formular EDIT nicht beschreibbar
 
Hallo,
ich habe ein Formular erstellt, wo durch ein Klick ein neues Parent-Formular erstellt wird. In dieses Formular habe ich nun mehrere Edit-Komponenten eingefügt. Leider kann ich diese nicht editieren.
Allerdings funktioniert der Klick auf einen Button problemlos. :wall:

Woran kann das liegen?

Ich tippe auf den Focus oder auf die Active-Eigenschaft, aber beides funktioniert nicht.


Viele Grüße

baumina 27. Apr 2015 15:22

AW: Neues Formular EDIT nicht beschreibbar
 
Schrecklich wenig Angaben zu deinem Problem. Da hilft nur die :glaskugel:, die evtl. was über ReadOnly oder Enabled sagt.

DeddyH 27. Apr 2015 15:22

AW: Neues Formular EDIT nicht beschreibbar
 
Mal ganz langsam: was ist ein Parent-Formular? Wird das komplett zur Laufzeit erzeugt samt aller Unterkomponenten, oder hast Du es im OI zusammengeklickt und erzeugst nur Instanzen davon?

p80286 27. Apr 2015 15:47

AW: Neues Formular EDIT nicht beschreibbar
 
Zitat:

Zitat von DavidJNG (Beitrag 1299416)
Hallo,
ich habe ein Formular erstellt, wo durch ein Klick ein neues Parent-Formular erstellt wird. In dieses Formular habe ich nun mehrere Edit-Komponenten eingefügt. Leider kann ich diese nicht editieren.
Allerdings funktioniert der Klick auf einen Button problemlos. :wall:

Woran kann das liegen?

Ich tippe auf den Focus oder auf die Active-Eigenschaft, aber beides funktioniert nicht.

Was bitte willst Du uns mitteilen?
Vermutung:
du hads ein Formular das eine ButtononClick-Procedur enthält in der mit Hilfe von
Delphi-Quellcode:
form2.show;
ein weiteres Formular angezeigt wird.
In die auf diesem Formular enthaltenen Edit-Komponenten (TEdit?) kannst du nichts eintragen.
(.Enabled schon einmal überprüft?)

Ist das so richtig?

Gruß
K-H

DavidJNG 27. Apr 2015 17:03

AW: Neues Formular EDIT nicht beschreibbar
 
Zitat:

Zitat von p80286 (Beitrag 1299426)
Zitat:

Zitat von DavidJNG (Beitrag 1299416)
Hallo,
ich habe ein Formular erstellt, wo durch ein Klick ein neues Parent-Formular erstellt wird. In dieses Formular habe ich nun mehrere Edit-Komponenten eingefügt. Leider kann ich diese nicht editieren.
Allerdings funktioniert der Klick auf einen Button problemlos. :wall:

Woran kann das liegen?

Ich tippe auf den Focus oder auf die Active-Eigenschaft, aber beides funktioniert nicht.

Was bitte willst Du uns mitteilen?
Vermutung:
du hads ein Formular das eine ButtononClick-Procedur enthält in der mit Hilfe von
Delphi-Quellcode:
form2.show;
ein weiteres Formular angezeigt wird.
In die auf diesem Formular enthaltenen Edit-Komponenten (TEdit?) kannst du nichts eintragen.
(.Enabled schon einmal überprüft?)

Ist das so richtig?

Gruß
K-H

Genau so ist es.

In der Unit dieser 2.Form habe ich nichts außer die Edit-Komponenten und folgenden Code, der das Vergrößern und verschieben der Form verhindert:

Code:
procedure TNeuerKundeForm.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
  NeuerKundeForm.Height := Hauptform.ClientHeight;
  resize := false;
end;


procedure TNeuerKundeForm.WMNCHitTest(var Msg: TWMNCHitTest);
begin
   DefaultHandler(Msg);
  if Msg.Result = HTCAPTION then
    Msg.Result:=0;
end;

procedure TNeuerKundeForm.FormCreate(Sender: TObject);
const
  MnuCommand = SC_MOVE;
var
  SysMenu : HMenu;
begin
  SysMenu := GetSystemMenu(Handle, FALSE) ;
  DeleteMenu(SysMenu, MnuCommand, MF_BYCOMMAND);
end;

.Enabled überprüft, ist auf true.
ReadOnly ist ebenfalls auf false.

Einen Button auf dem 2.Formular kann ich problemlos anklicken und das funktioniert auch, aber Edit-Felder gehen eben nicht. Außerdem kann ich noch in die Edit-Felder auf der 1.Form etwas eintragen.

BadenPower 27. Apr 2015 17:32

AW: Neues Formular EDIT nicht beschreibbar
 
Zitat:

Zitat von DavidJNG (Beitrag 1299439)

Code:
procedure TNeuerKundeForm.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
  NeuerKundeForm.Height := Hauptform.ClientHeight;
  resize := false;
end;

Ändere mal diese Zeile:

Delphi-Quellcode:
procedure TNeuerKundeForm.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
  //NeuerKundeForm.Height := Hauptform.ClientHeight; // Das geht schief
  resize := false;
end;
Du kannst doch die Werte für NewWidth und NewHeight benutzen und resize muss dann auch true sein.

DeddyH 27. Apr 2015 17:46

AW: Neues Formular EDIT nicht beschreibbar
 
Wenn man das Formular nicht in der Größe ändern können soll, könnte man doch einfach einen von bsSizeable abweichenden BorderStyle setzen, oder täusche ich mich?

dataspider 27. Apr 2015 17:58

AW: Neues Formular EDIT nicht beschreibbar
 
Zitat:

Zitat von DeddyH (Beitrag 1299444)
Wenn man das Formular nicht in der Größe ändern können soll, könnte man doch einfach einen von bsSizeable abweichenden BorderStyle setzen, oder täusche ich mich?

und damit wird sich IMHO auch das Problem mit der Editierbarkeit erledigen...

Frank

BadenPower 27. Apr 2015 18:17

AW: Neues Formular EDIT nicht beschreibbar
 
Zitat:

Zitat von dataspider (Beitrag 1299445)
und damit wird sich IMHO auch das Problem mit der Editierbarkeit erledigen...

Oder eben die besagte Zeile rauswerfen.

Die Größenänderung der Form in FormCanResize mit dem anschließenden
Delphi-Quellcode:
Resize := false;
sorgt dafür, dass das Eingabefeld nicht mehr an der Stelle sitzt, wo es vom System vermutet wird, bzw. das Fenster und ein Teil der Komponenten falsch gezeichnet werden.

DavidJNG 27. Apr 2015 18:23

AW: Neues Formular EDIT nicht beschreibbar
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von BadenPower (Beitrag 1299442)

Ändere mal diese Zeile:

Delphi-Quellcode:
procedure TNeuerKundeForm.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
  //NeuerKundeForm.Height := Hauptform.ClientHeight; // Das geht schief
  resize := false;
end;
Du kannst doch die Werte für NewWidth und NewHeight benutzen und resize muss dann auch true sein.

Code:
NeuerKundeForm.Height := NewHeight;
  resize := false;
Wenn ich resize auf true setze, kann man noch die Größe ändern.

Auch wenn ich einen anderen BorderStyle benutze und resize := true setze, ist es weiterhin nicht editierbar.

Hab's mal in den Anhang geladen.

frankyboy1974 27. Apr 2015 18:54

AW: Neues Formular EDIT nicht beschreibbar
 
Hallo,

du benutz ein DBEdit (DatenbankEdit). Entweder du nimmst ein normales Editfeld. Ansonsten musst du das DBEdit auch mit einer Datenbank verbinden.


mfg

Frank

Sir Rufo 27. Apr 2015 18:58

AW: Neues Formular EDIT nicht beschreibbar
 
Überlege doch mal, warum in der Ereignis-Methode die drei Argumente als
Delphi-Quellcode:
var
deklariert sind ... evtl. klingelt da ja was ...

Ach ja, wenn du die globale Form-Variable benutzt, dann gilt das nur für diese eine Instanz (die es dann hoffentlich auch gibt) ... das ist eigentlich sehr ungeschickt

Zitat:

Zitat von frankyboy1974 (Beitrag 1299449)
Hallo,

du benutz ein DBEdit (DatenbankEdit). Entweder du nimmst ein normales Editfeld. Ansonsten musst du das DBEdit auch mit einer Datenbank verbinden.


mfg

Frank

Der ist natürlich auch nicht schlecht :)

DavidJNG 27. Apr 2015 19:23

AW: Neues Formular EDIT nicht beschreibbar
 
Jetzt blicke ich nicht mehr durch. :pale:

Wenn ich die 2.Form aus bsNone setze, dann geht es. Allerdings möchte ich, dass man die 2.Form schließen kann bzw. ein Rand vorhanden ist.

Und Jap, das ist erstmal nicht mit der DB verbunden, war eigentlich nur zu Testzwecken und wird noch verbunden. Teste es grade mit einer normalen Edit-Komponenten.

Was genau meinst du mit den Variablen? :oops:

Dalai 27. Apr 2015 19:24

AW: Neues Formular EDIT nicht beschreibbar
 
Suchst du BorderStyle = bsDialog?

MfG Dalai

DavidJNG 27. Apr 2015 19:33

AW: Neues Formular EDIT nicht beschreibbar
 
Zitat:

Zitat von Dalai (Beitrag 1299452)
Suchst du BorderStyle = bsDialog?

MfG Dalai

Fehlermeldung "Exception der Klasse EInvalidOperation. Deaktiviertes oder unsichtbares Fenster kann den Fokus nicht erhalten".

Sir Rufo 27. Apr 2015 20:23

AW: Neues Formular EDIT nicht beschreibbar
 
Schau mal hier http://www.delphipraxis.net/161097-f...ert-nicht.html

Dalai 27. Apr 2015 21:12

AW: Neues Formular EDIT nicht beschreibbar
 
Achso, innerhalb des ersten Formulars ist ein weiteres eingebettet. Na dann sieht die Sache wieder anders aus. Das war also mit "Parent-Formular" gemeint, auch wenn der Begriff irreführend ist, denn es geht ja darum, dass das neue Formular ein Kind, also ein Child, des bestehenden wird (das seinerseits der Parent ist).

Ohne mir den Code oder das Design genauer angeschaut zu haben: Wäre das nicht anders lösbar, z.B. mit Panels, Frames, Tabs (TabControl oder PageControl) oder ähnlichem? Irgendwie empfinde ich das als ziemliche Frickelei, ein Formular in ein anderes einzubetten.

MfG Dalai

Sir Rufo 27. Apr 2015 21:17

AW: Neues Formular EDIT nicht beschreibbar
 
Die Kern-Frage ist hierbei ob es sich um einen Bug handelt.

Mit XE8 habe ich das gleiche Verhalten, allerdings kann man mit der TAB-Taste zum Edit-Feld gelangen und dort auch Eingaben vornehmen. Nur mit der Maus will das Edit-Control den Focus nicht erhalten.

Nimmt man ein Panel und dockt die Form dort an, dann funktioniert es wie gewünscht.

DavidJNG 28. Apr 2015 09:28

AW: Neues Formular EDIT nicht beschreibbar
 
Wenn ich es Pannels mache, müsste ich dann manuell ein Button zum Schließen der Form einfügen. Wäre zwar nicht optimal, aber würde sicherlich auch gehen.

Edit:
Schaut jetzt folgendermaßen aus: Habe ActiveControl von der 2.Form auf den Button gelegt und dann bsDialog genutzt. Damit geht es, allerdings lässt sich die Form verschieben und ist nicht als Parent der Hauptform bzw nicht an der richtigen Position.

Edit2: Problem gelöst, geht jetzt alles mit bsDialog.


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