Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Enabled funktioniert nicht (https://www.delphipraxis.net/208722-enabled-funktioniert-nicht.html)

Amalkotey 10. Sep 2021 09:55

Enabled funktioniert nicht
 
Moin,

ich habe bei Delphi 7 enterprise und bei Delphi 10.4.2 festgestellt, dass bei Radiobutton und Checkboxen der Status Enabled setzenkonnte, aber wenn ich mit der Mouse, bei lfd. Programm, auf die form gehe, wird der Status Enabled deaktiviert. Was kann ich Tun?

-Amalkotey-

himitsu 10. Sep 2021 11:01

AW: Enabled funktioniert nicht
 
Da das eigentlich nicht so ist und sich der Status eigentlich nicht einfach so ändern kann,

mußt DU wohl irgendwo einen Fehler machen.



Entweder in TControl.SetEnabled oder TControl.CMEnabledChanged einen Haltepunkt (DebugDCUs aktiv)
oder auf CM_ENABLEDCHANGED reagieren und dann im Stacktrace schauen, von wo aus das aufgerufen wurde.

Amalkotey 10. Sep 2021 12:18

AW: Enabled funktioniert nicht
 
@himitsu: Ich habe es gerade getestet unter Windows7. Da geschieht der Effekt nicht.Somit kann ich nicht von einem Programmierfehler ausgehen. Der wäre auch unter windows7. Komisch ist, dass das auch bei der 10.4.2 Version auftritt.

Nachtrag:

Ich habe es gerade mit Lazarus unter Windows 10 21H1 getestet. Da geschieht der Efekt ebenfalls. Ich gehe von einer Macke bi Windows10 aus.

Moombas 10. Sep 2021 13:42

AW: Enabled funktioniert nicht
 
Schon mal probiert ein neues Projekt ohne irgendeine Programmierung, nur mit dem Control zu starten und zu schauen?
Ich denke nicht das dies eine OS-Macke ist, denn sonst hätten ganz viele schon aufgeschrien!

Schau mal ob du ein Mouseover-Ereignis bei dir drin hast, das das ggf. auslöst.

Amalkotey 10. Sep 2021 13:46

AW: Enabled funktioniert nicht
 
@Moombas:

Ja habe ich. Eine MainForm, zwe Radiobuttons und eine Checkbox auf die Form abgelegt. Im Objektinsprektor jeweils Enable auf False gesetzt und dann gestartet. Sobald ich mit der Maus auf die Form gehe, ist der Status Enabled abgeschalt und ich kann switchen zwichen den Radiobutton.

Rolf Frei 10. Sep 2021 13:57

AW: Enabled funktioniert nicht
 
Ich habe nun genau das in 10.4.2 gemacht:
1. Neues VCL Project
2. 2x TRadioButton und 1x TCheckBox auf die Form gelegt.
3. Bei allen das Enabled auf False gestellt.
4. Kompiliert und gestartet.

Dein Effekt tritt hier nicht auf. Die Elemente sind wie erwartet disabled und können nicht bedient werden.

Kompiliere mal deine Anwendung mit den Debug DCU's und platziere dann beim Enablen von TRadioButton und TCheckbox einen Breakpoint. Schau dir dann den Stacktrace an. So solltest du eigentlcih sehen können, was da bei dir reinfummelt.

Incocnito 10. Sep 2021 14:05

AW: Enabled funktioniert nicht
 
Sonst bau doch ein kleines Beispielprojekt mit welchem du das nachstellen kannst und poste das hier. 😉

Amalkotey 10. Sep 2021 16:12

AW: Enabled funktioniert nicht
 
an meinen Quelcode kann es nicht liegen, da ich ein neues Projekt angelegt habe und zwei radiobuttons und eine checkbox auf das Formular gelegt habe. Enabled auf False gessetzt, gestartet. Gleiches Resultat. Enabled-Status wurde aufgehoben.

Leer SSD genommen, windows 10 pro installiert, Delphi7 und Delphi10 installiert. Neues projekt eratellt. Resultat Enabled bleibt. Also lieg es an der Windows installation-.

Uwe Raabe 10. Sep 2021 16:44

AW: Enabled funktioniert nicht
 
Zitat:

Zitat von Amalkotey (Beitrag 1494503)
an meinen Quelcode kann es nicht liegen

Fällt das nicht unter die Rubrik Das sollte ein Entwickler niemals sagen ?

Ich zitiere da mal meine Vorredner (emphasizes by me):
Zitat:

Zitat von Incocnito (Beitrag 1494485)
Sonst bau doch ein kleines Beispielprojekt mit welchem du das nachstellen kannst und poste das hier.


Amalkotey 10. Sep 2021 17:04

AW: Enabled funktioniert nicht
 
Delphi 7 gestartet und das Project genommen, welches angezeigt wird.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    rb1: TRadioButton;
    rb2: TRadioButton;
    chk1: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure chk1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  chk1.Checked := True;
  rb1.Enabled := False;
  rb2.Enabled := False;
end;

procedure TForm1.chk1Click(Sender: TObject);
begin
  if chk1.Checked = True then
    rb2.Enabled := False
  else
    rb2.Enabled := False;
end;

end.
wenn das Prog gestartet wird, wird der Status von rb1.Enabled und rb2.Enabled auf False. Bei der Checkboy wird der Haken gesetzt. Dies geschieht in FormShow. Gehe ich mit der Maus ins Fenster verändert Sie der Status, d. h., die Rabiobuttons sind anwhlbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr.
Seite 1 von 2  1 2   

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