Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi StringGridSelectCell Procedure Aufruf-Problem (https://www.delphipraxis.net/35203-stringgridselectcell-procedure-aufruf-problem.html)

Piro 3. Dez 2004 19:40


StringGridSelectCell Procedure Aufruf-Problem
 
Moin ich folgende Procedure geschrieben als Ereignis bei einem StringGrid

Delphi-Quellcode:
procedure Tfrm_main.sg_asciiSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
 zeichen: string;
begin
 with frm_asciizeichen do
 begin
   if not ((ARow = 10) and (ACol > 12)) then
   begin
     zeichen := sg_ascii.Cells[ACol, ARow];
     lbl_asciizeichen.caption := zeichen;
     lbl_dez.Caption := inttostr(Ord(zeichen[1]));
     lbl_hex.Caption := '0x'+DezToX(StrToInt(inttostr(Ord(zeichen[1]))),16);
     top := Mouse.CursorPos.Y;
     Left := Mouse.CursorPos.X + 20;
     Show;
   end;
 end;
end;
Nun möchte ich diese Procedure aus einer anderen Procedure (z.B.: Suchen) aufrufen.
Delphi-Quellcode:
procedure Tfrm_main.btn_sucheClick(Sender: TObject);
var
 i,j:integer;
begin
 for i:=0 to sg_ascii.RowCount-1 do
   for j:=0 to sg_ascii.ColCount - 1 do
     if edt_suche.Text = sg_ascii.Cells[j,i] then
        sg_asciiSelectCell(sg_ascii, j, i, True)
     else
       MessageDlg('Es wurde kein Eintrag gefunden.', mtInformation, [mbOK], 0);
end;
Die Fehlermeldung lautet: Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen.
Für mich sind die Parameter aber richtig gesetzt. Sieht einer den Fehler?

Danke im voraus.

Sven

martin-sun 3. Dez 2004 20:10

Re: StringGridSelectCell Procedure Aufruf-Problem
 
hallo,

es gibt einen kleinen fehler beim aufruf:

Delphi-Quellcode:
sg_asciiSelectCell(sg_ascii, j, i, True)
Delphi-Quellcode:
procedure Tfrm_main.sg_asciiSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
in der deklaration ist der letzte parameter(CanSelect) als var deklariert. d.h. dieser parameter wird nicht als wert sondern als adresse übergeben. heißt im klartext, du musst beim aufruf eine boolean-variable übergeben. einfach nur true reicht nicht.
anschließend sollte es funktionieren.

Delphi-Quellcode:
var BoolParam: Boolean;
begin
   ...
   BoolParam := true;
   sg_asciiSelectCell(sg_ascii, j, i, BoolParam);
   ...
hoffe es hilft.
martin

Piro 3. Dez 2004 20:26

Re: StringGridSelectCell Procedure Aufruf-Problem
 
Danke. hat geholfen.

Sven


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.

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