AGB  ·  Datenschutz  ·  Impressum  







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

Sender abfragen klappt nicht richtig

Ein Thema von Bjoerk · begonnen am 24. Feb 2014 · letzter Beitrag vom 25. Feb 2014
 
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Sender abfragen klappt nicht richtig

  Alt 25. Feb 2014, 00:35
Das sieht mir insgesamt etwas verkrampft aus, da steigt doch niemand durch so. Ich hab die noch falsche Version genommen, und so hin geschrieben, wie ich dann endlich eine Chance hatte sie nachzuvollziehen. Die ganze Verschachtelung die du da anstellt ist viel komplizierter als nötig.

Delphi-Quellcode:
function TDrawPadProperties.GetAll(Sender: TObject): integer; // ****
begin
  Result := 0;
  if not FSimple then
  begin
    if (Sender is TCheckBox) and TCheckBox(Sender).Checked and (Pos('_MultiProp', TControl(Sender).Name) > 0) then
      Result := 1
    else
    if (Sender is TPropCheckBox) and TPropCheckBox(Sender).CheckBox.Checked then
      Result := 2
    else
    if (Sender is TPropEdit) and TPropEdit(Sender).CheckBox.Checked then
      Result := 3
    else
    if (Sender is TPropComboBox) and TPropComboBox(Sender).CheckBox.Checked then
      Result := 4;
  end;
  // ShowMessage(TControl(Sender).Name);
end;
Edit: Die vollständige Auswertung Bool'scher Ausdrücke sollte hierbei abgeschaltet bleiben (ist sie standardmäßig), dann bricht ein "if" nämlich sofort ab, wenn das Ergebnis fest steht und prüft die nachstehenden Bedingungen nicht mehr ab. Heisst hier: Wenn (Sender is TPropEdit) bereits false ist, und nachfolgende Bedingungen nur aufgeundet werden, wird der nachfolgende (möglicherweise ungültige) Cast erst gar nicht gemacht. False and "egal was" ist immer false.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (25. Feb 2014 um 00:40 Uhr)
  Mit Zitat antworten Zitat
 


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 22:47 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