Avatar billede koden12 Nybegynder
11. september 2003 - 15:36 Der er 13 kommentarer og
1 løsning

Procedure gøres aktiv

Når jeg har lavet min egen procedure i delphi og den skal gøres aktiv så har jeg en

Procedure (et eller andet)

Begin

End;

Nu vil jeg gerne kunne aktiverer den fra fx en knap..
Hvad gør jeg ?
Hvad kalder jeg ?
VH
Koden12
Avatar billede Slettet bruger
11. september 2003 - 15:38 #1
Du bare funktionens navn i knappens onclick:

procedure TForm1.Button1Click(Sender: TObject);
begin
(et eller andet)
end;
Avatar billede borrisholt Novice
11. september 2003 - 15:39 #2
Det er ikke så svært :

Du skriver bare :

Procedure Hest(const EnHest : Integer);
begin
  //do stuff
end;

Jens B
Avatar billede borrisholt Novice
11. september 2003 - 15:39 #3
Den skal bare ligge i samme unit som Der fra hvor du ønsker at kalde den


Jens B
Avatar billede tolderlund Nybegynder
11. september 2003 - 16:32 #4
Borrisholt, den kan ligge i en hvilken som helst unit. Den unit hvor den ligger i skal blot skrives i uses i den unit hvorfra proceduren skal kaldes.
Lidt frihåndskodning (ikke testet):

implementation

uses
  Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
  KaldMig;
end;

og i unit2:

interface

uses
  Windows, Dialogs;
 
procedure KaldMig;

implementation

procedure KaldMig;
begin
  ShowMessage('Hello World!');
end;
Avatar billede borrisholt Novice
11. september 2003 - 16:36 #5
Det er jeg klar over. Har vist nok en gang selv lavet en procedure :-)

Mit svar var udformer for at være nemt :-)

Og så glemte du i øvrigt hesten !

Jens B
Avatar billede koden12 Nybegynder
12. september 2003 - 01:08 #6
Sådan en Procedure kan jeg ikke få aktiv en en Klik botten sag...
Hvorfor ikke ?

procedure TForm1.InsertColumn(Sender: TStringGrid; ToIndex: Integer);

VH
Koden12
Avatar billede tolderlund Nybegynder
12. september 2003 - 14:33 #7
Det er sort snak.
Hvad er det lige du spørger om?
Avatar billede koden12 Nybegynder
12. september 2003 - 15:06 #8
public
procedure ResizeStringGrid(_Grid: TCustomGrid);
End;


*****

procedure TForm1.ResizeStringGrid(_Grid: TCustomGrid);

var
Hest : String;

Begin
Hast := Text1.text;
End;

procedure TForm1.ToolButton3Click(Sender: TObject);

Begin
ResizeStringGrid;
End;

Knappen virker ikke ?
VH
Koden12
Avatar billede tolderlund Nybegynder
12. september 2003 - 16:11 #9
Næste gang fortæller du også hvilken fejlmelding du får, det gør det nemmere for os at hjælpe dig.
Men ved at se din kode her, kan jeg godt regne fejlen ud.
Du prøver at kalde ResizeStringGrid ved at skrive
  ResizeStringGrid;
Men du har jo erklæret ResizeStringGrid proceduren med en parameter _Grid.
  procedure ResizeStringGrid(_Grid: TCustomGrid);
Derfor skal du angive denne parameter når du kalder proceduren.
Tingene skal passe sammen.
Sådan her:
procedure TForm1.ToolButton3Click(Sender: TObject);
Begin
  ResizeStringGrid(HerSkriverDuNavnetPåDinGrid);
End;
Hvis du ikke bruger _Grid parameteren til noget i ResizeStringGrid proceduren kan du i stedet skrive
  ResizeStringGrid(nil);
Eller simplelthen fjerne parameteren fra proceduren.
Avatar billede koden12 Nybegynder
12. september 2003 - 17:42 #10
Mange tak !
Så er der alligevel forskel på hvordan de ser ud..
VH
Koden12
Avatar billede janbb Juniormester
13. september 2003 - 05:01 #11
Hvis du har fundet eksemplet i en bog af ældre dato (turbo pascal) kan det være eksemplerne var uden parametre ved kald af procedurer, idet programmet lå i selve hovedunit - og man skulle kun angive parametre ved kald af eksterne units.
Avatar billede koden12 Nybegynder
13. september 2003 - 12:35 #12
Mange af dem er rigtig dårlige. Når man så, som Ny? ikke kender det og det ustandselig stopper er man på spanden. Fx sådan en linje som denne :
ColCount := ColCount + 1;
        xx := ColCount - 1;
        Cols[xx].BeginUpdate;
        for yy := 0 to RowCount - 1 do
        begin
          Cells[xx, yy] := ' ';

Den stopper ved fx Cols da der foran skal stå StringGrid1.  og så Cols så mange rigtig mange går i vasken på grund af det.
Andre har TYPE
Som ikke slutter med end; andre passer ikke ind i Type..
Denne her skal skrives om så den passer til min Stringgrid :
type
  TCSGrid = class(TStringGrid)
Mange eksempler giver marreridt.
VH
SpørgerJørgen
Avatar billede janbb Juniormester
13. september 2003 - 20:18 #13
En dag vil det lønne sig at du ikke er sprunget over hvor gærdet var lavest selv om det kan virke surt når man er i det.Husker især if - then - else sætningerne, hvor der ikke skal apostrof efter end - den slags sætter sig i baghovedet og en dag vil det være en foræring at man har knoklet sig til en løsning engang.Jeg tror der var en gammel sang med omkvædet "Be prepared - thats the boyscouts marching song" af Tomothy Leary ?.
Avatar billede janbb Juniormester
13. september 2003 - 20:23 #14
Timothy hed han nok snarere.Der var osse et ordsprog i indledningen til en biokemibog jeg havde engang, hvor der stod: "Favour enchanses the prepared mind", hvilket vistnok betyder: Heldet tilsmiler den velforberedte elev.
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

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging