Avatar billede bolorolo Nybegynder
03. april 2015 - 01:19 Der er 3 kommentarer

Procedure som laver actions?

Hej alle

jeg er gået helt kold på det her procedure i Delphi, måske der er noget helt grundliggende som jeg har misforstået.

jeg vil kalde en procedure som gør følgende:

-------------------------------------

button1.enabled := true;
DataModule1.ADOTable1.Open;
button1.Enabled := false;
button3.Enabled := true;
button4.Enabled := true;
label1.Visible := false;
edit1.Visible := false;
button7.Visible := false;
image2.Visible := true;

--------------------------------------

procedure gogreen;
begin
button1.enabled := true;
DataModule1.ADOTable1.Open;
button1.Enabled := false;
button3.Enabled := true;
button4.Enabled := true;
label1.Visible := false;
edit1.Visible := false;
button7.Visible := false;
image2.Visible := true;
end;


Men delphi brokker sig over at button osv ikke er declared.
det forvirrer mig totalt, de er jo declared længere oppe i koden.

--------------------------------

type
  TForm2 = class(TForm)
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    Image1: TImage;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label1: TLabel;
    Button6: TButton;
    Edit1: TEdit;
    Button7: TButton;
    Image2: TImage;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


Er der noget jeg roder helt rundt i ?
Avatar billede kgkg Nybegynder
03. april 2015 - 01:53 #1
Din gogreen procedure aner ingenting om Form2 og de komponenter og metoder som er i denne.

Hvis du skal referere til komponenter i en procedure, som ikke er erklæret i din form, så skal du bruge. Form2.button1.enabled := true;

Du kan også bruge With

Eks.

procedure gogreen;
begin
  With Form2 do
  begin
    button1.enabled := true;
    DataModule1.ADOTable1.Open;
    button1.Enabled := false;
    button3.Enabled := true;
    button4.Enabled := true;
    label1.Visible := false;
    edit1.Visible := false;
    button7.Visible := false;
    image2.Visible := true;
  end
end;
Avatar billede bolorolo Nybegynder
03. april 2015 - 02:11 #2
1000 tak, det giver fint mening - hvor kan man dog stirre sig blind
når man sidder for længe med det i de sene timer.

igen mange mange tak for hjælpen :-)
Avatar billede kroning Nybegynder
03. april 2015 - 07:38 #3
Men det du burde gøre er måske at erklære den i din form som kgkg skriver:

procedure TForm2.gogreen;
begin
button1.enabled := true;
DataModule1.ADOTable1.Open;
button1.Enabled := false;
button3.Enabled := true;
button4.Enabled := true;
label1.Visible := false;
edit1.Visible := false;
button7.Visible := false;
image2.Visible := true;
end;


--------------------------------

type
  TForm2 = class(TForm)
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    Image1: TImage;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label1: TLabel;
    Button6: TButton;
    Edit1: TEdit;
    Button7: TButton;
    Image2: TImage;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure gogreen;        //Bemærk her
  end;
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

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