Avatar billede r.hegaard Nybegynder
27. december 2003 - 13:46 Der er 5 kommentarer og
1 løsning

Udfør noget på "Sender".

Jeg har en procedure, hvor der er koblet flere edit-felter. Hvordan får jeg proceduren til at udføre noget på det edit-felt, som er "Sender" ??
Avatar billede tauron Nybegynder
27. december 2003 - 14:59 #1
Her har  du en ultrakort demo.  Du kan selv digte videre ....

et indledende test "if sender is tedit" kan udelades hvis du kun bruger event på editfelter.

Konstruktionen "with sender as tedit" kunne også skrives "with tedit(sender)", men den første form er den mest stuerene.

unit usendertest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1Click(Sender: TObject);
begin
  if sender is tedit then with sender as tedit do text := 'Sådan';
end;

end.
Avatar billede r.hegaard Nybegynder
27. december 2003 - 15:54 #2
Det ser ud til at det virker.
Hvad så hvis jeg skal lave en if-sætning med det ??
Hvad skal jeg så gøre ??
Avatar billede tauron Nybegynder
27. december 2003 - 16:18 #3
Jeg er ikke helt klar over, hvad du mener.

If sætningen i mit eksempel har til formål at sikre, at det faktisk er et "tedit" felt, der sender eventet - hvis der er flere muligheder, kan du jo forgrene dig videre.

Med "with" sætningen åbner du klassen "tedit" og har adgang til de properties, der hører hertil.

Hvis du har flere edit-felter, der kalder det pågældende event kan du jo f.eks spørge på feltets "name" property og beslutte dig på det grundlag.

Ellers præciser dit problem lidt nøjere ...
Avatar billede r.hegaard Nybegynder
27. december 2003 - 16:23 #4
Jeg skal lave en if-sætning, som om sender editen er tom.
Jeg har prøvet med følgende:
  if (with sender as TEdit do Text='') then.....
men det virker desværre ikke.
Avatar billede tauron Nybegynder
27. december 2003 - 16:27 #5
Hvis det går ud på at undersøge, om edit feltet er tomt (eller har en besstemt værdi) skal du skrive:

if (sender as tedit).text = '' then ...

eller alternativt

with sender as tedit do if text = '' then ...
Avatar billede r.hegaard Nybegynder
27. december 2003 - 16:29 #6
OK. Mange tak for hjælpen....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester