AGB  ·  Datenschutz  ·  Impressum  







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

Image

Ein Thema von Stefan_w · begonnen am 28. Apr 2005 · letzter Beitrag vom 1. Mai 2005
 
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#14

Re: Image

  Alt 28. Apr 2005, 18:38
In deiner Beispielprozedur ist eckpunkte lokal definiert, d.h. die variable wird immer wieder gelöscht.
Du musst die Variable entsprechend im public/privat Abschnitt deklarieren (oder halt ganz global - das mögen hier einige aber nicht )

Edit: Mal ein schneller Test.
Ok, nun gehts
(Nachteil ist noch, dass nach dem Zeichnen eines Dreiecks ein Mausklick "leer" ist und dann erst 3 neue folgen.
Und dass man das Fenster nicht minimieren sollte )


Aber nur zu Testzwecken

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    // Variable für Ecken
    ecke: integer;
    // Variable für Array d. Punkte
    points: array[0..2] of TPoint;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
        points[ecke-1].X := X;
        points[ecke-1].Y := Y;

        Inc(ecke);

        if ecke = 4 then
        begin
                with Form1.PaintBox1 do
                begin
                        Canvas.MoveTo(points[0].X, points[0].Y);
                        Canvas.LineTo(points[1].X, points[1].Y);

                        Canvas.MoveTo(points[1].X, points[1].Y);
                        Canvas.LineTo(points[2].X, points[2].Y);

                        Canvas.MoveTo(points[2].X, points[2].Y);
                        Canvas.LineTo(points[0].X, points[0].Y);
                end;
                ecke := 1;
        end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
        ecke := 1;
end;

end.
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
 


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:19 Uhr.
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