Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi procedure zur plausibilitätsprüfung (https://www.delphipraxis.net/52849-procedure-zur-plausibilitaetspruefung.html)

polondo 5. Sep 2005 13:21


procedure zur plausibilitätsprüfung
 
hi leute ich hab da mal was geschrieben um ne plausibilitätsprüfung für alle editfelder auf meinem form zu bekommen. dabei soll diese procedure in einem onclick-ereignis aufgerufen werden und sämtliche edit-felder überprüfen. ist ein edit feld leer soll es eine messagebox ausgeben und auf das feld fokussieren... allerdings bekomm ich einen fehler wenn ich versuche dieses procedure folgendermaßen auszuführen: plausi (sender:tedit) error:invalid class typecast ... kann mir da einer weiterhelfen?

Delphi-Quellcode:
procedure plausi (sender:tedit);
begin
with (sender as tedit) do
  begin
  if (sender as tedit).text = '' then
    begin
    MessageDlg ('Please fill all required fields!',mtwarning,[mbok],0);
    (sender as tedit).SetFocus;
    end;
  end;
end;
[edit=Luckie]Delphi-Tags gesetzt. Mfg, Luckie[/edit]

Luckie 5. Sep 2005 13:24

Re: plausi heeeeelp :/
 
Bitte ändere den Titel des Threads. Der jetztige ist nicht sehr aussagekräftig. Und setzte bitte auch gleich die Delphi-Tags. Danke.

Luckie 5. Sep 2005 13:27

Re: procedure zur plausibilitätsprüfung
 
Wäre nett, wenn du uns noch den Fehler nennen würdest. :roll:

Thanatos81 5. Sep 2005 13:28

Re: plausi heeeeelp :/
 
Hallo und herzlich Willkommen palondo!

Dein Problem ist, dass du als Parameter bereits ein TEdit erhältst. Du kannst keinen TypeCast als TEdit auf ein TEdit machen, da es ja bereits ein TEdit ist.

@Luckie
Hat er doch:
Zitat:

Zitat von polondo
allerdings bekomm ich einen fehler wenn ich versuche dieses procedure folgendermaßen auszuführen: plausi (sender:tedit) error:invalid class typecast

//Edit:
Rechtschreibfehler :roll:

leddl 5. Sep 2005 13:29

Re: procedure zur plausibilitätsprüfung
 
Die Delphi-Tags fehlen immer noch ([delphi]..[/ delphi])

Ich denke mal, daß du auf jeden Fall mal TObject anstatt TEdit im Prozedurkopf nehmen mußt. Und laß dann beim Aufruf das :TEdit weg, das brauchst du nicht.

//Edit:
OK, die Tags haben sich erübrigt :roll:

NicoDE 5. Sep 2005 13:32

Re: procedure zur plausibilitätsprüfung
 
Der Code weist drei Dinge auf die ich merkwürdig finde:
- Sender ist bereits ein TEdit, trotzdem wird der as-Operator verwendet...
- es wird ein with-Block verwendet, aber trotzdem immer ge-castet...
- ich vermute, dass es sich um eine Ereignisroutine handeln soll, allerdings ist es im Moment eine globale Funktion...

leddl 5. Sep 2005 13:37

Re: procedure zur plausibilitätsprüfung
 
Zitat:

Zitat von NicoDE
- ich vermute, dass es sich um eine Ereignisroutine handeln soll, allerdings ist es im Moment eine globale Funktion...

Nein, er möchte diese Funktion in einem onClick-Ereignis aufrufen (siehe sein erster Post). Das passt schon. Nur muß er eben ein TObject übergeben, und kein TEdit. Dann passt das auch (bis auf die 2 anderen Punkte, die du genannt hast ;))

polondo 5. Sep 2005 13:40

Re: procedure zur plausibilitätsprüfung
 
erstmal danke für die schnellen antworten!

ich hab nun das ganze so geändert:

Delphi-Quellcode:
procedure plausi(sender:tobject);
begin
with sender as tedit do
  begin
  if (sender as tedit).text = '' then
    begin
    MessageDlg ('Please fill all required fields!',mtwarning,[mbok],0);
    (sender as tedit).SetFocus;
    end;
  end;
end;
aufgerufen wird das ganze mit plausi(sender); in einem onclick-ereignis eines buttons.
jedoch bekomm ich wieder diesen fehler: invalid class typecast

mein procedure kopf sieht folgendermaßen aus:
Delphi-Quellcode:
var
  ProductDefinitionForm: TProductDefinitionForm;
  procedure plausi(sender:tobject); <<<<<< hier hab ich den aufgeführt

NicoDE 5. Sep 2005 13:41

Re: procedure zur plausibilitätsprüfung
 
Zitat:

Zitat von leddl
Nein, er möchte diese Funktion in einem onClick-Ereignis aufrufen

Delphi-Quellcode:
property OnClick: TNotifyEvent;
Code:
type TNotifyEvent = procedure (Sender: TObject) [color=red]of object[/color];

leddl 5. Sep 2005 13:45

Re: procedure zur plausibilitätsprüfung
 
Laß mal die Typecasts innerhalb des WITH-Blocks weg. Vielleicht geht es dann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Seite 1 von 2  1 2      

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