AGB  ·  Datenschutz  ·  Impressum  







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

class function - Rückgabewert immer False

Ein Thema von Andreas L. · begonnen am 20. Jan 2010 · letzter Beitrag vom 20. Jan 2010
 
Andreas L.
(Gast)

n/a Beiträge
 
#1

class function - Rückgabewert immer False

  Alt 20. Jan 2010, 11:48
Mahlzeit,

ich habe eine Form die beim Start nicht automatisch erstellt wird. Diese Form hat folgende class function:

Delphi-Quellcode:
class function TfrmEditStartupEntry.Execute(AItem: TStartupItem):Boolean;
begin
  with TfrmEditStartupEntry.Create(nil) do
  try
    FStartupItem := AItem;
    //ModalResult := mrCancel; <-- auch das hilft nicht
    Result := ShowModal = mrOK;
  finally
    Free;
  end;
end;
Auf der Form sind zwei Buttons:
Delphi-Quellcode:
procedure TfrmEditStartupEntry.btnCancelClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmEditStartupEntry.btnOKClick(Sender: TObject);
begin
  ModalResult := mrOK;
  Close;
end;
Wenn der OK-Button gedrückt wird sollte das Ergebnis von Execute True sein, beim Cancel Button False. Soweit so theoretisch...

Der Rückgabewert ist immer False (bzw. True wegen dem not). So rufe ich den Dialog auf:
Delphi-Quellcode:
procedure TfrmManager.lstStartupAddEntry(AItem: TStartupItem;
  var ACancel: Boolean);
begin
  ACancel := not TfrmEditStartupEntry.Execute(AItem);
  ShowMessage(BoolToStr(ACancel, true)); //zum testen weil der Debugger ACancel wegoptimiert....
end;
lstStartupAddEntry ist ein Event einer modifizierten ListView. ACancel und AItem werden initialisiert (ACancel := False;, AItem := TStartupItem.Create bevor das Ereignis ausgelöst wird.
Delphi-Quellcode:
TStartupListViewAddEvent = procedure(AItem: TStartupItem; var ACancel: Boolean) of object;

...

procedure TStartupListView.Add;
var
  NewEntry: TStartupItem;
  DoCancel: Boolean;
begin
  if Assigned(FOnAddEntry) then
  begin
    NewEntry := TStartupItem.Create;
    DoCancel := False;
    OnAddEntry(NewEntry, DoCancel);
    if not DoCancel then
    begin
      FStartupList.Add(NewEntry);
      Refresh;
    end;
  end;
end;
Was mache ich falsch?
  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 00:48 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