Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

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 14:56


function für mehrere Units?
 
Hallo,

ich bin gerade dabei ein etwas größeres Programm mit vielen Formularen zu erstellen, das klappt auch schonmal soweit ;)

Allerdings bin Ich gerade auf ein kleines Problem gestoßen, und zwar versuche Ich bei einem Klick auf einen Button(z.B. +1 Zeile), 4 StringGrids auf 4 verschiedenen Formularen zu verändern. Also das in jedem StringGrid die gleiche Änderung vorgenommen wird.

Hierzu versuche Ich gerade eine function zu schreiben das Ich nicht den ganzen Quelltext in jedes OnClick Event packen muss.

Problem Nr1.: Wo muss ich die function hinschreiben damit ich sie in einer anderen Unit aufrufen kann?
Problem Nr2.: Wie kann ich die function aufrufen? Vielleicht wär ein gutes und Verständliches Tutorial ganz gut ;)

Schonmal danke für eure Antworten.

mfg
Alex

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

Re: function für mehrere Units?
 
Zitat:

Zitat von Borschti
Problem Nr1.: Wo muss ich die function hinschreiben damit ich sie in einer anderen Unit aufrufen kann?

Da wo sie gesehen wird?

Zitat:

Zitat von Borschti
Problem Nr2.: Wie kann ich die function aufrufen? Vielleicht wär ein gutes und Verständliches Tutorial ganz gut ;)

So wie man eine Funktion aufruft? Unit einbinden, Klasse die die Funktion enthält instanzieren, aufrufen?
:wiejetzt:

mkinzler 3. Mär 2008 15:01

Re: function für mehrere Units?
 
1.) Am Besten Klasse in weiterer Unit, welche du in die andere einbindest
2.) einfach die Property des Ereignissen mit der Methode verbinden. Das geklickte Element erhälst du als Referenz im Parameter Sender.

Aurelius 3. Mär 2008 15:05

Re: function für mehrere Units?
 
Ganz einfach:
du muss im public-Bereich deiner Unit die Function definieren und sie dann im implemantation-Teil erstellen:
Delphi-Quellcode:
unit
...
uses
...
type
...
   private
   public
     function Test() : bool;
...
implementation

function TMeineForm.Test() : bool;
begin
...
end;
Ansprechen tust du die dann außerhalb des Formulars so:
Delphi-Quellcode:
...
  if MeineForm.test then
...

Borschti 3. Mär 2008 15:16

Re: function für mehrere Units?
 
Hallo zusammen,

der Teamkollege meldet sich auch mal zu Wort ;). Also unser Problem ist, dass wir einen Abgleich des Layouts der sich verändernden Tabellen erreichen wollen. Per buttonclick werden so Spalten oder Zeilen hinzugefügt was mit den logisch in verbindung stehenden Tabellen auch geschehen soll.
Wir haben 2 verschiedene Anweisung die jeweseils die Spalten um eins erhöhen und sie beschriften das gleiche passiert mit dem Zeilen. In allen Tabellen ist das Layout gleich aber der Inhalt ändert sich (z.B. EK VK).
Da wir nicht in jede Unit alles für die anderen Units schreiben wollen, möchten wir eine Funktion im Mainprogramm schaffen, die dann für alle anderen gültig ist. Quasi ist der Klick auf dem spezifischen Formular, die verarbeitung im Mainprogramm und die Ausgabe bzw. der Abgleich findet mit allen in Verbindung stehen Tabellen statt (Es sind vier tabellen). Da die Anzahl an Anweisungen mit jeder weiteren Tabelle Expotential steigt, könnt ihr euch vorstellen das wir das gerne umgehen würden xD.

so ^^ hoffe das hilft zum Verständnis weiter.

Mit freundlichen Grüßen
Manuel

mkinzler 3. Mär 2008 15:19

Re: function für mehrere Units?
 
Hauptformular ist schlecht! Besser weitere Unit.

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

Re: function für mehrere Units?
 
Wie wäre es mit einer Funktion, der ihr das StringGrid übergebt?
Delphi-Quellcode:
procedure ProcessGrid (Grid: TStringGrid; ActionId: Integer);
begin
  case ActionId of
    1: AddSomething (Grid);
    2: DeleteSomething (Grid);
    // ...
   end;
end;

Borschti 3. Mär 2008 15:22

Re: function für mehrere Units?
 
an Nuclear-Ping

kannst du uns vill genauer erklären wie die Syntax aussieht und wie das von statten geht

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

Re: function für mehrere Units?
 
:wiejetzt:

Delphi-Quellcode:
unit Irgendwas;

interface

uses ...;

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

implementation

procedure AddSomething (Grid: TStringGrid);
begin
  // ...
end;

procedure ProcessGrid (Grid: TStringGrid; ActionId: Integer);
begin
  case ActionId of
    1: AddSomething (Grid);
    2: DeleteSomething (Grid);
    // ...
   end;
end;

end.
Delphi-Quellcode:
unit Unit1;

interface

uses ...;

type

  TForm1 = class(TForm)
    // ...
    procedure Button1Click (Sender: TObject);
  private
    // ...
  public
    // ...
  end;

var
  // ...

implementation

uses Irgendwas;

{$R *.dfm}

procedure TForm1.Button1Click (Sender: TObject);
begin
  ProcessGrid (StringGrid1, 1);
end;
Wie lange arbeitet ihr schon mit Delphi?

sirius 3. Mär 2008 15:26

Re: function für mehrere Units?
 
Nochmal zur Frage. Habe ich das richtig verstanden?
1. Es ändert sich etwas bei StringGrid1 auf irgendeinem Formular (Es wird z.B. irgendwo draufgeklickt)
2. Daraufhin soll sich z.B. das Design mehrere oder aller StringGrids (inkl. StringGrid1) ändern

Wenn das stimmt, dann würde ich mkinzlers Vorschlag hoch halten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr.
Seite 1 von 4  1 23     Letzte »    

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