AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form als Parameter übergeben?

Ein Thema von FBrust · begonnen am 9. Mär 2004 · letzter Beitrag vom 9. Mär 2004
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Form als Parameter übergeben?

  Alt 9. Mär 2004, 14:29
Hallo,

ich habe in meinem Programm diverse Berichte, deren Berichtskopf immer gleich aussieht. Zur Vereinfachung möchte ich eine Prozedur schreiben, die diese Formatierungen übernimmt. Der Prozedur möchte ich den Namen des Formulars mit der Quickreport-Komponente übergeben und sie macht dann den Rest.

Also etwa so:

Delphi-Quellcode:
procedure PrepareReport(frmRep: TForm);
var strFile: string;
begin
    with frmRep do begin
      QRShape1.Brush.Color := GetColor('RepUp');
      QRShape1.Pen.Color := GetColor('RepUp');
      QRShape2.Brush.Color := GetColor('RepDown');
      QRShape2.Pen.Color := GetColor('RepDown');
    end;
end;
Allerdings wird beim Kompilieren "QRShape1" als undefinierter Bezeichner angemeckert, vermutlich weil frmRep kein Formular hinterlegt ist.

Hat vielleicht jemand einen Tip, wie ich das bewerstelligen kann?

Grüße
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#2

Re: Form als Parameter übergeben?

  Alt 9. Mär 2004, 14:38
Solltest die Prozedur im Interface-Teil "ankündigen":

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure PrepareReport(frmRep: TForm);
... und in der eigentlichen Prozedur den Namen der Form ergänzen:

Delphi-Quellcode:
procedure TForm1.PrepareReport(frmRep: TForm); // vorausgesetzt deine Form heißt Form1
var strFile: string;
begin
    with frmRep do begin
      QRShape1.Brush.Color := GetColor('RepUp');
      QRShape1.Pen.Color := GetColor('RepUp');
      QRShape2.Brush.Color := GetColor('RepDown');
      QRShape2.Pen.Color := GetColor('RepDown');
    end;
end;
WICHTIG: Den formalen Paramter frmRep brauchst du dann nicht mehr!
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Form als Parameter übergeben?

  Alt 9. Mär 2004, 14:44
Hallo Wheelie,

danke für Deine Antwort.

Ich vergaß zu erwähnen, dass die Prozedur in einer Unit liegt, der kein Formular zugeordnet ist, da hier Routinen enthalten sind, die von mehreren Programmteilen aus genutzt werden sollen.

Daher funktioniert "TForm1.PrepareReport" hier leider nicht.


Grüße
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Form als Parameter übergeben?

  Alt 9. Mär 2004, 16:50
Du brauchst eine Standard-Form und mußt nur die Änderungen anpassen. Z.B. in der StandardForm einen leeren Kopf definieren, diesen vererben und bei den Nachkommen nach Wunsch anpassen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#5

Re: Form als Parameter übergeben?

  Alt 9. Mär 2004, 17:42
Also ich denke, dass ich jetzt verstanden habe was du meinst. Habe der Anschaulichkeit wegen mal ein kleines Programm geschrieben. Das Programm beinhaltet 3 Forms und eine Unit (Unit4), in welcher sich die Prozedur befindet, mit der man die Captions der Forms ändern kann (von Form1 aus). Klick dich mal durch ... hoffe es hilft dir weiter.
Angehängte Dateien
Dateityp: zip form_138.zip (94,6 KB, 14x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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