Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnChange wird 3mal ausgeführt? (https://www.delphipraxis.net/14635-onchange-wird-3mal-ausgefuehrt.html)

Pseudemys Nelsoni 13. Jan 2004 05:52


OnChange wird 3mal ausgeführt?
 
hi,

ich habe folgende procedure im OnChange ereignis meines Edits:

Delphi-Quellcode:
procedure TForm2.Edit2Change(Sender: TObject);
var
  pass: pchar;
  apgard: array [0..8] of char;
begin
  if Length(Edit2.Text) = 8 then
  begin
    pass := pchar(Edit2.Text);
    apgar(pass, @apgard[0]);
    Edit2.text := apgard;
    showmessage('hi');
  end;
end;

ich kriege 3mal die message "hi" angezeigt. das ganze darf aber nur 1mal ausgeführt werden, was kan ich da machen?

gothic_mike 13. Jan 2004 06:05

Re: OnChange wird 3mal ausgeführt?
 
Moin,

Zitat:

Zitat von Pseudemys Nelsoni
hi,

ich habe folgende procedure im OnChange ereignis meines Edits:

Delphi-Quellcode:
procedure TForm2.Edit2Change(Sender: TObject);
var
  pass: pchar;
  apgard: array [0..8] of char;
begin
  if Length(Edit2.Text) = 8 then
  begin
    pass := pchar(Edit2.Text);
    apgar(pass, @apgard[0]);
    Edit2.text := apgard;
    showmessage('hi');
  end;
end;

ich kriege 3mal die message "hi" angezeigt. das ganze darf aber nur 1mal ausgeführt werden, was kan ich da machen?

wenn ich mich zu so fruher stunde recht erinnere, dürfte doch bei "Edit2.text := apgard;" ein onchange-event ausgelöst werden :gruebel:
und wenn dann der Text wieder 8 Zeichen lang ist, wird logischerweise wieder showmessage... ausgeführt.

ich würd da mal ne hilfsvariable als boolean definieren, die dann als erstes mal im onchange-event auf false setzen und statt "if Length(Edit2.Text) = 8 then" dies hier nehmen "if (Length(Edit2.Text) and (hilfsvariable = true)) = 8 then".
falls ich total daneben liege, bitte nicht schlagen, aber ich bin im halbschlaf, werd nun auch langsam mal in's bett müssen...

bye4now, gothic_mike

ps: :dp:

Pseudemys Nelsoni 13. Jan 2004 06:12

Re: OnChange wird 3mal ausgeführt?
 
jo, danke das hab ich übersehen *G*

hab jetzt ne globale boolesche variable genommen


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