AGB  ·  Datenschutz  ·  Impressum  







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

Prozedur von Unit2 auf Unit1 ausführen?

Ein Thema von GroZ · begonnen am 27. Aug 2015 · letzter Beitrag vom 31. Aug 2015
Antwort Antwort
Seite 1 von 2  1 2      
GroZ

Registriert seit: 6. Jul 2015
Ort: Harz
167 Beiträge
 
Delphi 7 Personal
 
#1

Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 14:57
Delphi-Version: 5
Hey,

Ich möchte eine Prozedur die in Unit2 geschrieben ist auf die Paintbox anwenden welche sich in Unit1 befindet. Im Internet stand:
Delphi-Quellcode:
Unit Unit1
Uses Unit2;
Geht aber trotzdem nicht. Hat jemand eine Idee?
Julian
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:01
Wie genau definiert sich denn "geht nicht"?
Sebastian
  Mit Zitat antworten Zitat
GroZ

Registriert seit: 6. Jul 2015
Ort: Harz
167 Beiträge
 
Delphi 7 Personal
 
#3

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:01
Er kennt die Paintbox nicht
Julian
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:05
Ohne Quellcode = Stochern im Nebel
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:06
Dann solltest du die Paintbox als Parameter beim Methodenaufruf übergeben...
Sebastian
  Mit Zitat antworten Zitat
GroZ

Registriert seit: 6. Jul 2015
Ort: Harz
167 Beiträge
 
Delphi 7 Personal
 
#6

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:08
Unit2
Delphi-Quellcode:
unit UnitFormen;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, ExtCtrls, Unit1;

type
  TPaint = class //Mutterklasse TPaint
  private
    FFarbe : TColor;
    FStiftbreite : integer;
    procedure SetStiftbreite(const Value: integer);
    procedure SetFarbe(const Value: TColor);
  public
    procedure Rechteck;
    property Farbe : TColor read FFarbe write SetFarbe;
  end;

  TZeichnen = class(TPaint) //Zeichnenklasse für Koordinaten
  private
   // Fx1,Fy1,Fx2,Fy2 : integer;
  end;

  TVieleck = class(TZeichnen) //Klasse für Vieleck
  private
    constructor Create (x1,y1,x2,y2 : integer);
  end;

implementation

procedure TPaint.SetFarbe(const Value: TColor);
begin
  if FFarbe <> Value then //Farbe ändern
  begin
    FFarbe := Value;
    //Invalidate;
  end;
end;

procedure TPaint.SetStiftbreite(const Value: integer);
begin
  if FStiftbreite <> Value then
    begin
      FStiftbreite := Value;
      //Invalidate;
    end;
end;

procedure RechteckOnCreate(Sender: TVieleck);
var MousePos : TCursor;
    x2,y2 : integer;
begin
  X2 :=200;
  Y2 :=200;
  Paintbox1.Canvas.Rectangle(MousePos,MousePos,X2,Y2);
end;
end.
Unit1
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    PaintBox1: TPaintBox;
    procedure PaintBox1Paint(Sender: TObject);
    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private-Deklarationen }
    draw : boolean;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  Paintbox1.Canvas.Brush.Color := clWhite;
  Paintbox1.Canvas.FillRect(Paintbox1.ClientRect);
end;

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  draw := true;
  Paintbox1.Canvas.MoveTo(X,Y);
end;

procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if draw then
    begin
      Paintbox1.Canvas.LineTo(X,Y);
    end;
end;

procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  draw := false;
end;

end.
Ich weiß es ist purer Spaghetti Code^^
Julian
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:15
Theoretisch hast du in Unit2 Zugriff über Form1.Paintbox1 - wobei das nicht zu empfehlen ist, schließlich würde die Unit2 dann nur funktionieren, wenn es irgendwo eine Form1 mit einer Paintbox1 gibt.

Ich würde empfehlen, die Paintbox als Klassenvariable deiner Helferklasse zu halten und beim Create mit zu übergeben.
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:27
Ich weiß es ist purer Spaghetti Code^^
Spaghetti Code ist das nicht. Ich sehe, dass du durch zusammenkopieren von Codezeilen dich gleich mal an das große Thema Klassen inkl. Vererbung wagst. Bis auf die procedure RechteckOnCreate(Sender: TVieleck), die eigentlich einer Klassen gehören sollte, und von der man noch nicht so genau weiß wohin sie mal gehören soll, schaut das doch ganz nett aus.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
GroZ

Registriert seit: 6. Jul 2015
Ort: Harz
167 Beiträge
 
Delphi 7 Personal
 
#9

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 15:35
Ne da is nix zusammenkopiert ein kollege hat mir da etwas geholfen.
Ja mein Ausbilder möchte das ich ein Paintprogramm schreibe das eigene Klassen nutzt. Ich checks gar nicht.
Julian
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#10

AW: Prozedur von Unit2 auf Unit1 ausführen?

  Alt 27. Aug 2015, 16:57
Hallo...
Zitat:
Ja mein Ausbilder möchte das ich ein Paintprogramm schreibe das eigene Klassen nutzt.
Hat er dir auch erklärt was Klassen sind und wie man damit arbeitet? Mein Bauchgefühl sagt eher... Nöööö.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:58 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