WinFuture-Forum.de: Delphi Programm "paint" - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 3 Seiten +
  • 1
  • 2
  • 3

Delphi Programm "paint" Dickes Problem

#16 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. Januar 2006 - 19:46

Ah hab ich was verwechselt.
Hatte die falsche Kompo, mach es so:

mediaplayer1.filename:='C:\file.mp3';
mediaplayer1.open;
mediaplayer1.play;


Die Kompo muss der mediaplayer sein.

Dieser Beitrag wurde von tavoc bearbeitet: 05. Januar 2006 - 19:54

your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

Anzeige



#17 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 05. Januar 2006 - 19:56

das sind aber die einstellungen, die ich im objekt inspektor vorgenommen habe, muss das trotzdem nochmal in den quelltext? bei den bildern war das nicht so...
0

#18 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 514
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 05. Januar 2006 - 20:00

Also nochmals zum Zeichnen:
Nehmen wir mal den Kreis, als erstes machst du ein Image (z.B. 400x400). Dann brauchen wir noch einen Button und ein Editfeld für den Radius. So, bei einem ButtonKlick soll jetzt der Kreis mit dem gewünschten Radius gezeichnet werden

also ->
-------
procedure TForm1.Button1Click(Sender: TObject);
var
rad: integer;
begin
rad := StrToInt(Edit1.Text);
Form1.Image1.Canvas.Brush.Style := bsClear; // Ellipse ohne "Füllung"
Form1.Image1.Canvas.Ellipse(200-rad,200-rad,200+rad,200+rad); // Mitte als Ursprung
end;
--------

und schon sind wir fertig. :)

P.S:
Rechtecke zeichnen mit:
-> Form1.Image1.Canvas.Rectangle(X1,Y1,X2,Y2);

Als BMP-Bild speichern mit:
-> Form1.Image1.Picture.SaveToFile('picture.bmp');

Und als JPEG z.B. mit (benötigt "uses jpeg"):
------
procedure TForm1.Button2Click(Sender: TObject);
var jpg :TJPEGImage;
begin
jpg:=TJPEGImage.Create;
jpg.Assign(Form1.Image1.Picture.Bitmap);
jpg.CompressionQuality := 80; //Qualität 80%
jpg.Compress;
jpg.SaveToFile('picture.jpg');
end;
----

Dieser Beitrag wurde von bardelot bearbeitet: 05. Januar 2006 - 20:25

0

#19 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 05. Januar 2006 - 20:04

image=paintbox? ich hab da sowas gelesen mit TImage und sowas.. klang mir aber zu kompliziert.. aber so schnipsel meinte ich ^^ die kann ich ja fast 1:1 übernehmen =) danke dir
0

#20 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 514
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 05. Januar 2006 - 20:05

Noch kurz zur Musik:
Als Beispiel ein MP3 Player mit der TMediaPlayer Komponente

http://delphi.about....l/aa112800a.htm
Src: http://delphi.about....ncaa112800a.htm
0

#21 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. Januar 2006 - 20:07

diese einstellungen müssen in das oncreate der form, damit der ton bei start abgespielt wird.

dann schau mal lieber hier nach http://www.delphipra...forum_main.html, das ist wenigstens auf deutsch.
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#22 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 05. Januar 2006 - 20:26

ah, musik klappt jetzt. Vielen Dank dafür schonmal.
So, das mit dem Pinseln klappt dagegen nicht so. der pienst rum mit dem Integer Wert der Variable "rad"
wenn ich in das Feld irgendwie 2 oder 2.0 eingebe, kackt mir das compilierte und Delphi ab mit der Fehler meldung ""ist kein gültiger Integerwert. Die Fehlermeldung hatten wir schonmal in der Schule.. aber damals konnte man das beheben, wenn man float einsetzt, das klappt hier nicht.
0

#23 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. Januar 2006 - 20:31

Kannst du das betreffende Stück source mit deklaration posten, dann kann ich die fehlermeldeung besser sehen.
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#24 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 05. Januar 2006 - 22:56

 private
	{ Private declarations }
  public
	{ Public declarations }
  end;

procedure Button1Click(Sender: TObject);

procedure TForm1.Button1Click(Sender: TObject);
var
rad: integer;
begin
rad := StrTointeger(Radius.Text);
Form1.PaintBox1.Canvas.Brush.Style := bsClear; // Ellipse ohne "Füllung"
Form1.PaintBox1.Canvas.Ellipse(200-rad,200-rad,200+rad,200+rad); // Mitte als Ursprung
end;


Das gibts doch nich, jetzt kommt keine Fehlermeldung mehr, aber er malt nicht ^^ muss da noch dieses TImage rein?
0

#25 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. Januar 2006 - 23:13

Der fehler lag daran das nur du integerwerte nehmen darfst, also es darf kein . oder , vorkommen.
Das musst du vorher abfragen, z.b. mit einem Key press event.

Es darf also nicht der Key(54) oder Key(56) gedrückt werden.
Oder du wandelst es erst in ein float und rundest dann, sodass du integerwerte hast.


Weiterhin fehlt noch das:


 Form1.PaintBox1.Canvas.Pen.Color:=clnavy;
 Form1.PaintBox1.Canvas.Pen.Width:=1;


da du noch sagen musst welche farbe und wie dick der stift sein soll

Dieser Beitrag wurde von tavoc bearbeitet: 05. Januar 2006 - 23:25

your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#26 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 05. Januar 2006 - 23:25

und jetzt muss man dem nur noch verklickern was der Graph1 is..
0

#27 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. Januar 2006 - 23:27

ich habe es schon umbenannt, bei mir hieß so die paintbox für die linearen funktionen, die für die quadratischen entsprechend graphq.
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#28 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 05. Januar 2006 - 23:41

der kompiliert zwar aber zeichnet nix.. irgendwas mit moveto,lineto uss da nich noch hin?
0

#29 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. Januar 2006 - 23:47

Lineto / Moveto sind zum zeichnen von linien, aber ich denke mal ich weiß wo der fehler ist.

Kann es sein das die paintbox kleiner als 200 pixel ist?


Weil sie müsste 400 x 400 sein damit du einen kreis siehst der in der mitte ist, das liegt daran wie du den mittelpunkt bestimmst, es kann jetzt nämlich sein das der kreis ausserhlab des canvas gemalt wird.
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#30 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 05. Januar 2006 - 23:50

wie peinlich *rotwerd*
353x275 ist mein Feld groß.. müsste dann doch jetzt reichen, wenn aus der 200 ne 50 mach..ach, ich probiers mal.. ^^
örghs, immernoch nicht.. hab auch mal die pinseldicke variiert.. immernoch nicht..

var
rad: integer;
begin
rad := StrToInt(Radius.Text);


ob der da vll. irgendwie nicht zurecht kommt? ich geb als test immer 2 ein.. aber größer/niedriger macht keinen unterschied..

Dieser Beitrag wurde von He4db4nger bearbeitet: 05. Januar 2006 - 23:54

0

Thema verteilen:


  • 3 Seiten +
  • 1
  • 2
  • 3

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0