Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi function für mehrere Units? (https://www.delphipraxis.net/109555-function-fuer-mehrere-units.html)

Borschti 3. Mär 2008 15:51

Re: function für mehrere Units?
 
Nun teilt der Compiler uns leider mit, dass es einen Fehler mit dem TStringGrid gibt bei diesen Stellen:

procedure ProcessGrid (Grid: TStringGrid ; ActionId: Integer);

procedure addmon (Grid: TStringGrid);

usw...

Woran könnte das leigen

Fehlermeldung: Undefinierter Bezeichner: 'TStringGrid'

Frage: Woran liegt das, weil es ja eigentlich richtig sein müsste, oder haben wir etwas übersehen ?

(EDIT)

Das problem ist gelöst. nun folgt das nöchste -.-... Lösung für das erste war das wir die "Grids" nicht unter uses eingetragen hatten nun haben wir im nicht mainprogramm die fehler meldung Inkompatible Typen: 'TStringGrid' und 'Class reference'

und was bedeutet das nun und was ist eine Class reference überhaupt ?? ^^

Aurelius 3. Mär 2008 15:53

Re: function für mehrere Units?
 
Ihm wird eine benötigte Unit fehlen. Einfach die Delphi-Hilfe aufmachen, TStringgrid suchen. Im Hilfefenster sollte dann zu sehen sein was für eine Unit das benötigt.

Nuclear-Ping 3. Mär 2008 16:15

Re: function für mehrere Units?
 
Ohne Code zu sehen wird das nix ... Meine Kristallkugel ist grad in der Werkstatt. ;)

Borschti 3. Mär 2008 16:20

Re: function für mehrere Units?
 
okay dann hier mal die code fragmente

Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, GIFImg, ExtCtrls, Grids;
   procedure ProcessGrid (Grid: TStringGrid ; ActionId: Integer);
type
//...


  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation

uses BList, BListK, Kndst, KndstK, Eink, EinkK, Verk, VerkK, KursT, KursTK;

{$R *.dfm}

 procedure addmon (Grid: TStringGrid);
 var i : Integer;
    b : String;
 begin
 
 i := 0;

 Form4.StringGrid1.RowCount := Form4.StringGrid1.RowCount +1;

 for i := 1 to Form4.Stringgrid1.rowcount - 1 do
  begin
    b := IntToStr(i);
    Form4.Stringgrid1.Cells[0,i] := (b + '. Monat');
  end
end;
//...
procedure ProcessGrid (Grid: TStringGrid ; ActionId: Integer);
begin
  case ActionId of
    1: addmon (Grid);
    //2: adddrug (Grid);
    //3: killcol (Grid);
   end;
end;

end.
Andere Unit

Delphi-Quellcode:

unit EinkK;

interface

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

type

//...
var
  Form13: TForm13;

implementation
uses Main, BList, BListK, Kndst, KndstK, Eink, Verk, VerkK;
{$R *.dfm}

procedure TForm13.ColorButton2Click(Sender: TObject);
begin
ColorDialog1.Execute;
Form11.StringGrid1.Color := ColorDialog1.Color;
end;

procedure TForm13.ColorButton3Click(Sender: TObject);
begin
form13.close;
end;

procedure TForm13.ColorButton4Click(Sender: TObject);
begin
FontDialog1.Execute;
Form11.StringGrid1.Font := FontDialog1.Font;
end;

procedure TForm13.ColorButton6Click(Sender: TObject);
begin

ProcessGrid (TStringGrid, 1); //<---  Hier tritt der Fehler Auf



end;

end.

mkinzler 3. Mär 2008 16:32

Re: function für mehrere Units?
 
Ihr solltet vielleicht mal ein paar Grundlagen Tutorials wälzen. :zwinker:

Nuclear-Ping 3. Mär 2008 16:33

Re: function für mehrere Units?
 
Denke ich mir auch grad ... :wall:

taaktaak 3. Mär 2008 16:39

Re: function für mehrere Units?
 
Moin, Moin,

habt ihr wirklich ein Stringgrid mit dem Namen TStringGrid ??????

Zitat:

ProcessGrid (TStringGrid, 1); //<--- Hier tritt der Fehler Auf
Ihr müsst hier den Gridnamen übergeben nicht den Klassennamen...

Nuclear-Ping 3. Mär 2008 16:42

Re: function für mehrere Units?
 
Delphi-Quellcode:
procedure addmon (Grid: TStringGrid);
var i : Integer;
    b : String;
begin
 
i := 0;

Form4.StringGrid1.RowCount := Form4.StringGrid1.RowCount +1;

for i := 1 to Form4.Stringgrid1.rowcount - 1 do
  begin
    b := IntToStr(i);
    Form4.Stringgrid1.Cells[0,i] := (b + '. Monat');
  end
end;
... und warum wird hier wohl ein Grid als Parameter übergeben?

DeddyH 3. Mär 2008 16:46

Re: function für mehrere Units?
 
Delphi-Quellcode:
procedure addmon (const Grid: TStringGrid);
var i : Integer;
    b : String;
begin

  Grid.RowCount := Grid.RowCount.RowCount +1;

  for i := Grid.FixedRows to Grid.rowcount - 1 do
    begin
      b := IntToStr(i);
      Grid.Cells[0,i] := (b + '. Monat');
    end;
end;
Siehst Du den Unterschied?

Borschti 4. Mär 2008 08:54

Re: function für mehrere Units?
 
Hi nochmal :lol:

Wir haben eine Globale Variable test und wollen nun von einem Formular die variable test aus einem Editfeld an die Prozedur im Mainprogramm übergeben. Dieser String dient als Beschriftung für die Spalte

EDITIERT !! Unnötige Deklarationen sind jetzt weg
Funktioniert auch so weit, aber unsere frage jetzt kann man das direkte zugreifen auf form13 umgehen, sodass die Procedur allgemein gültig ist und von jeder Form angesprochen werden kann


Main:

Delphi-Quellcode:
  public
  //Deklaration entfallen
 /...
procedure adddrug (Const Grid: TStringGrid);

begin


// Vorher hier Grid.ColCount := Grid.ColCount + 1;

grid.Cells[Grid.ColCount ,0] := form13.test;

//Jetzt Hier
Grid.ColCount := Grid.ColCount + 1;

end;
/...
procedure ProcessGrid (Grid: TStringGrid ; ActionId: Integer);
begin
  case ActionId of
    1: addmon (Grid);
    2: adddrug (Grid);
    //3: killcol (Grid);
   end;
end;
Andere Unit
Delphi-Quellcode:
  public
     test : String;
/...
procedure TForm13.ColorButton5Click(Sender: TObject);
//Deklaration entfallen
begin

test := Edit5.text;

ProcessGrid(form11.StringGrid1, 2)
end;
Vielleicht könnt ihr uns helfen den String zu übergeben oder vielleicht kennt ihr eine bessere Lösung für unser Problem.

Mit freundlichen Grüßen
Manuel


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz