AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit checkbox.checked := true

Ein Thema von MarcusB · begonnen am 22. Aug 2004 · letzter Beitrag vom 23. Aug 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#11

Re: Problem mit checkbox.checked := true

  Alt 23. Aug 2004, 09:50
Zitat von MarcusB:
Warum setzt

  checkbox.Perform(BM_SETCHECK, 1, 0); zwar den Haken in die Checkbox, aber die Property "Checked" ist immer noch false?

Und bei der Lösung von scp

Delphi-Quellcode:
  checkbox1.OnClick := nil;
  checkbox1.checked := true;
verstehe ich nicht, dass nach OnClick := nil doch wieder checked:=true aufgerufen wird, was doch eigentlich wieder OnClick auslöst
1. Dieser Befehl ist aus der Windows-API und dort hat eine Checkbox kein Checked-Property, wie in Delphi (also schon eins, ob die Box angehakt ist oder nicht, aber der Bool-Wert Checked in TCheckBox ist quasi zusätzlich) Das heißt, eine Änderung über die Win-API hat keine Änderung des Checked-Status einer TCheckBox zufolge andersrum aber schon (Check auf true setzen zeichnet die Box neu)

2. Intern wird die Funktion Click aufgerufen und die macht folgenden Befehl (vereinfacht):
Delphi-Quellcode:
if Assigned(FOnClick) then
  FOnClick(Self);
Das heißt, wenn OnClick (ist ja nur ein Methodenzeiger) nicht gesetzt ist (was ja mit dem := nil bewerkstelligt wurde), dann wird die Funktion auch nicht aufgerufen, wenn du Checked setzt.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#12

Re: Problem mit checkbox.checked := true

  Alt 23. Aug 2004, 09:56
Wow, danke, ich glaube nun wird Licht im Kopf

Wieder was gelernt, danke für Eure Mühe
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#13

Re: Problem mit checkbox.checked := true

  Alt 23. Aug 2004, 16:45
da du den checked-status über die windows-message togglest, kannst du auch die abfrage über winapi-funktionen machen...
mithilfe von
CheckBox1.Perform(BM_GETCHECK,0,0) bekommst du (bei einer normalen delphi-checkbox) entweder BST_CHECKED oder BST_UNCHECKED als ergebnis zurück, bedeutung dürfte klar sein, dann machst du halt statt
if CheckBox1.Checked then ein
if CheckBox1.Perform(BM_GETCHECK,0,0) = BST_CHECKED then und schon is das problem gelöst
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 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