Re: Ein roter Punkt den man auf dem Desktop verschieben kann
Liste der Anhänge anzeigen (Anzahl: 1)
kann mir keiner in der Datei den Fehler suchen und den "ausbessern"!
ICh komm da leider net weiter! thx |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
Wieso deklarierst du zweimal die Klasse TForm1??
Ein mal im Interface, da gehört sie auch hin, und einmal in der Implementation? Bitte mach mal
Delphi-Quellcode:
- Tags um einen Code.
und
Grüße Faux |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
so nochmal!!
ich hoffe der is besser!! :mrgreen:
Delphi-Quellcode:
unit Redpoint; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm2 = class(TForm) Image1: TImage; private LastX, LastY: Integer; public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} end. // Zeichenfarbe (Pinsel) auf rot setzen self.Image1.Canvas.Brush.Color := clRed; // Kreis zeichnen self.Image1.Canvas.Ellipse(0, 0, self.Width, self.Height); // DoubleBuffer aktivieren (verhindert flackern) self.DoubleBuffered := true; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // prüfen ob die linke Maustaste gedrückt wurde if ssLeft in Shift then begin // aktuelle Mausposition merken self.lastX := Mouse.CursorPos.X; self.lastY := Mouse.CursorPos.Y; // Modus wechseln self.moving := True; end; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin // wenn Modus moving aktiv if self.moving then begin // Position des Fensters relativ zu Mauskoordinaten ändern self.Left := self.Left + (Mouse.CursorPos.X - lastX); self.Top := self.Top + (Mouse.CursorPos.Y - lastY); // Merken der neuen Position self.lastX := Mouse.CursorPos.X; self.lastY := Mouse.CursorPos.Y; end; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // Wenn Linke Maustaste losgelassen wurde if Button = mbLeft then begin // Modus moving verlassen self.moving := false; end; end; |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
Ok ich frag mich zwar wie man eine Datei so zerstückeln kann, aber ist ja auch egal.
Hier hab ich sie für dich mal "richtig zusammengesetzt".
Delphi-Quellcode:
edit: Semikolon hinzugefügt. Sry kam von copy&paste
unit Redpoint;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; procedure FormCreate(Sender: TObject); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } Moving: Boolean; // <- hier LastX, LastY: Integer; // <- und hier public { Public-Deklarationen } end; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin // Zeichenfarbe (Pinsel) auf rot setzen self.Image1.Canvas.Brush.Color := clRed; // Kreis zeichnen self.Image1.Canvas.Ellipse(0, 0, self.Width, self.Height); // DoubleBuffer aktivieren (verhindert flackern) self.DoubleBuffered := true; end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // prüfen ob die linke Maustaste gedrückt wurde if ssLeft in Shift then begin // aktuelle Mausposition merken self.lastX := Mouse.CursorPos.X; self.lastY := Mouse.CursorPos.Y; // Modus wechseln self.moving := True; end; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin // wenn Modus moving aktiv if self.moving then begin // Position des Fensters relativ zu Mauskoordinaten ändern self.Left := self.Left + (Mouse.CursorPos.X - lastX); self.Top := self.Top + (Mouse.CursorPos.Y - lastY); // Merken der neuen Position self.lastX := Mouse.CursorPos.X; self.lastY := Mouse.CursorPos.Y; end; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // Wenn Linke Maustaste losgelassen wurde if Button = mbLeft then begin // Modus moving verlassen self.moving := false; end; end; end. |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
Nur mal so ne Frage, wieso schreibst du immer self. ? Ohne ginge es genau so, da du ja in der TForm1-Klasse bist.
Grüße Faux |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
So jetzt schaut die schon besser aus!!
Aber ich hab noch ein Problem! Ich kann die Software nicht testen (F9)
Delphi-Quellcode:
unit Redpoint;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; procedure FormCreate(Sender: TObject); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } Moving: Boolean // <- hier LastX, LastY: Integer; // <- und hier public { Public-Deklarationen } end; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin // Zeichenfarbe (Pinsel) auf rot setzen self.Image1.Canvas.Brush.Color := clRed; // Kreis zeichnen self.Image1.Canvas.Ellipse(0, 0, self.Width, self.Height); // DoubleBuffer aktivieren (verhindert flackern) self.DoubleBuffered := true; end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // prüfen ob die linke Maustaste gedrückt wurde if ssLeft in Shift then begin // aktuelle Mausposition merken self.lastX := Mouse.CursorPos.X; self.lastY := Mouse.CursorPos.Y; // Modus wechseln self.moving := True; end; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin // wenn Modus moving aktiv if self.moving then begin // Position des Fensters relativ zu Mauskoordinaten ändern self.Left := self.Left + (Mouse.CursorPos.X - lastX); self.Top := self.Top + (Mouse.CursorPos.Y - lastY); // Merken der neuen Position self.lastX := Mouse.CursorPos.X; self.lastY := Mouse.CursorPos.Y; end; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // Wenn Linke Maustaste losgelassen wurde if Button = mbLeft then begin // Modus moving verlassen self.moving := false; end; end; end. |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
Hallo!
Spezifiziere dein Problem mal. Denn so kann es an hunderten Dingen liegen:
Grüße Faux |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
@ Brainstalker,
Zitat:
muss das nicht so deklariert werden?
Delphi-Quellcode:
//Jürgen
private
{ Private-Deklarationen } Var Moving: Boolean; // <- hier LastX, LastY: Integer; // <- und hier public |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
Zitat:
Aber ich sehe gerade, dass ohnehin nach Boolean ein Semikolon fehlt. Grüße Faux |
Re: Ein roter Punkt den man auf dem Desktop verschieben kann
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 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