AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Prob (WICHTIG)

Ein Thema von Hezekiel · begonnen am 5. Feb 2004 · letzter Beitrag vom 5. Feb 2004
Antwort Antwort
Hezekiel

Registriert seit: 5. Feb 2004
2 Beiträge
 
Delphi 8 Professional
 
#1

Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 14:24
Hallo zusammen,

ich weiss nicht ob es hier rein gehört, man möge mir verzeihen wenn nicht. Weiss aber nicht mehr an wen ich mich wenden kann diesbezüglich!!! Ich muss für die Schule ein Programm mit Delphi schreiben, das so ähnlich wie
MS Paint funktioniert, aber nur die 4 BitButtons Freihandzeichen,
Strich zeichnen, Viereck und Ellipse hat. Dazu noch ein paar
Farben. Schnelle Hilfe wäre wichtig, hab Mittwoch das nächste
mal info und ich komme nich weiter.

Hier mein Script, dass leider i.M "noch" nicht richtig funzt. Könnt ihr es euch mal bitte anschauen was ich falsch mache??

Ich danke euch!!


Delphi-Quellcode:
unit umain;

interface

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

type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
BitBtn_stift: TBitBtn;
BitBtn_strich: TBitBtn;
BitBtn_viereck: TBitBtn;
BitBtn_ellipse: TBitBtn;
BitBtn_schwarz: TBitBtn;
BitBtn_weiss: TBitBtn;
BitBtn_rot: TBitBtn;
BitBtn_gruen: TBitBtn;
BitBtn_blau: TBitBtn;
BitBtn_gelb: TBitBtn;
BitBtn_violett: TBitBtn;
Image1: TImage;
procedure FormCreate (Sender: TObject);
procedure BitBtn_stiftClick(Sender: TObject);
procedure BitBtn_strichClick(Sender: TObject);
procedure BitBtn_viereckClick(Sender: TObject);
procedure BitBtn_ellipseClick(Sender: TObject);
procedure FormMouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
procedure FormMouseUp (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
procedure FormMouseMove (Sender: TObject; Shift: TShiftState;
X,Y: Integer);
procedure Merkwuerdig (Sender: TObject);
private
{ Private-Deklarationen } 
MausGedrueckt: Boolean;

public
{ Public-Deklarationen } 
end;

var
Form1: TForm1;

implementation


{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject);
begin
image1.canvas
end;

procedure TForm1.BitBtn_stiftClick(Sender: TObject);
begin
BitBtn_stift.Enabled := False;
BitBtn_strich.Enabled := True;
BitBtn_viereck.Enabled := True;
BitBtn_ellipse.Enabled := True;
end;

procedure TForm1.BitBtn_strichClick(Sender: TObject);
begin
BitBtn_stift.Enabled := True;
BitBtn_strich.Enabled := False;
BitBtn_viereck.Enabled := True;
BitBtn_ellipse.Enabled := True;
end;

procedure TForm1.BitBtn_viereckClick(Sender: TObject);
begin
BitBtn_stift.Enabled := True;
BitBtn_strich.Enabled := True;
BitBtn_viereck.Enabled := False;
BitBtn_ellipse.Enabled := True;
end;

procedure TForm1.BitBtn_ellipseClick(Sender: TObject);
begin
BitBtn_stift.Enabled := True;
BitBtn_strich.Enabled := True;
BitBtn_viereck.Enabled := True;
BitBtn_ellipse.Enabled := False;
end;

procedure TForm1.FormMouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
begin
MausGedrueckt := True;
Canvas.MoveTo (X,Y) ;
end;

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


procedure TForm1.FormMouseUp (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
begin
MausGedrueckt := False
end;

procedure TForm1.Merkwuerdig;
var I: Boolean;
begin
for I := False to True do
Form1.Left := Form1.Left+50;
end;


end.

Cheerz Hezekiel

[edit=FuckRacism]Delphi-Syntax hinzugefügt. Bitte absofort selber machen. Mfg, FuckRacism[/edit]
  Mit Zitat antworten Zitat
ims

Registriert seit: 23. Jul 2003
Ort: Sirnach
157 Beiträge
 
Delphi 7 Professional
 
#2

Re: Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 14:42
schreib doch bitte was nicht funktioniert und was für fehlermeldungen erscheinen. ansonsten kann dir nicht sehr gut geholfen werden.

was ich bemerkt habe ist, du definierst nirgends die variable "Mausgedrueckt" (oder seh ich das falsch...?)
nachdem ich diese nämlich definiert habe, klappte das freihandzeichnen tiptop!

gruss, dave


PS: ändere deinen titel, wird nicht gern gesehen da zu wenig aussage kräftig
  Mit Zitat antworten Zitat
Cuchulainn

Registriert seit: 26. Aug 2003
182 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 15:04
Ich habe hier mal schnell etwas gebastelt. Es ist nicht schön und auch nicht gut, aber schließlich habe ich nur einige Minuten dran gearbeitet. Aber sieh es dir mal an, vielleicht hilft es dir weiter bei deinem Programm. Wenigstens als kleine Anregung kann mein Programm dir bestimmt dienen.
Benutz den Debugger, um dir den Programmablauf anzusehen, und überleg dir, was man verbessern kann (es ist eine ganze Menge) und wie.
Ich habe den Quelltext ein wenig kommentiert.
Hoffentlich nützt es dir etwas.
Angehängte Dateien
Dateityp: zip zeichnen.zip (178,5 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 15:07
Delphi-Quellcode:
procedure TForm1.FormMouseMove (Sender: TObject; Shift: TShiftState;
X,Y: Integer);
begin
if MausGedrueckt
then Canvas.LineTo (X,Y)
end;
Da musst du auch noch MoveTo reinbringen, denn sobald LineTo ausgeführt wird, gibt's ja das vorige MoveTo nicht mehr
  Mit Zitat antworten Zitat
Hezekiel

Registriert seit: 5. Feb 2004
2 Beiträge
 
Delphi 8 Professional
 
#5

Re: Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 15:11
Vielen Dank euch allen!!! Werde mich dann mal wieder an die Arbeit machen

Cheerz Hezekiel
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 15:15
Ach, nochwas. Das mit Mausgedrückt ist schon umständlich, machso doch so:

Delphi-Quellcode:
procedure TForm1.FormMouseMove (Sender: TObject; Shift: TShiftState;
X,Y: Integer);
begin
  if ssleft in shift then
  begin
    Canvas.LineTo(X,Y);
    Canvas.MoveTo(X,Y);
  end;
end;

Nachtrag: Noch herzlich willkommen in der DP!
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#7

Re: Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 15:15
Hi...

Ich hab ein bissel länger gebraucht, will aber auch noch posten...

Mein CFD-beitrag zum thema viereck basierend auf dem code von hezekiel:
Delphi-Quellcode:
[..]
  private
    { Private-Deklarationen }
    MausGedrueckt: Boolean;
    X1: Integer;
    Y1: Integer;
[..]

procedure TForm1.FormMouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
begin
  MausGedrueckt := True;
  Canvas.MoveTo (X,Y) ;
  X1:= X;
  Y1:= Y;
end;

procedure TForm1.FormMouseMove (Sender: TObject; Shift: TShiftState;
X,Y: Integer);
begin
  if MausGedrueckt then
  begin
    if not BitBtn_stift.Enabled then
      Canvas.LineTo(X,Y);
    if not Bitbtn_viereck.Enabled then
    begin
      canvas.Pen.Color:=clbtnface;
      Canvas.Rectangle(X1, Y1, X, Y);
      canvas.Pen.Color:=clblack;
      Canvas.Rectangle(X1, Y1, X, Y);
    end;
  end;
end;


procedure TForm1.FormMouseUp (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
begin
  MausGedrueckt := False;
  if not Bitbtn_viereck.Enabled then
  begin
    canvas.Pen.Color:=clblack;
    Canvas.Rectangle(X1, Y1, X, Y);
  end;
end;
[Edit]Nachtrag: Matze hat Recht... ist umständlich und kein schöner Style[/Edit]
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Delphi Prob (WICHTIG)

  Alt 5. Feb 2004, 19:39
@Hezekiel: Bitte benenn umgehend deinen Thread sinnvoll um (ersten Beitrag editieren und Topic ändern). Hilfe in Delphi brauchen hier die meisten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 13:49 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