AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Einzelne Objekte im Canvas löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Einzelne Objekte im Canvas löschen

Ein Thema von mariking2 · begonnen am 26. Mai 2011 · letzter Beitrag vom 30. Mai 2011
Antwort Antwort
Seite 2 von 3     12 3      
mariking2

Registriert seit: 26. Mai 2011
14 Beiträge
 
#11

AW: Einzelne Objekte im Canvas löschen

  Alt 26. Mai 2011, 15:58
Danke erstmal, eien Frage hätte ich (erstmal) noch:
Ich habe schon mehrere Klassen, wenn ich meine eigene Klasse hinzufüge, steht dort,
ich soll Sie nicht TObjekte = class nennen, sonern TObjekte : class
Also hab ich die vorgefertigte Form-Klasse mit end; beendet. Funktioniert auch nicht,
wie starte ich jetzt die neue Klasse??

Code:
  private
   TObjekt = class
    oldx, oldy, newx, newy, thickness: Integer;
    vgf, hgf: Tcolor; //Vordergrundfarbe, Hintergrundfarbe
    bstyle: TBrushstyle; //Brushstyle;
    procedure saveobjekt(oldx, oldy, newx, newy, thickness: integer; vgf, hgf: TColor; bstyle: TBrushStyle );
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#12

AW: Einzelne Objekte im Canvas löschen

  Alt 26. Mai 2011, 16:02
Vlt. solltest du dir mal ein Grundlagentutorial ansehen?! ...
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Einzelne Objekte im Canvas löschen

  Alt 26. Mai 2011, 16:04
Mein Vorschlag: Teste Dich langsam heran.

Erstelle am besten erst einmal eine eigene Klasse (z.B. Ableitung von einem Panel). TPanelKreis, TPanelLine etc.
Da ersetzt Du einfach die Paint-Methode und lässt etwas passendes auf dessen Canvas zeichnen. Mit Left und Top kannst Du die Objekte positionieren.
Dann hast Du erst mal "richtige Objekte zum anfassen". (Das hat Vor- und Nachteile).

Wenn Du soweit mit Objektentwicklung vertraut bist, kannst Du die Objekte später auch ändern und dann direkt auf die eigentliche Zeichenfläche zeichnen lassen.

Das Problem, das dann zu lösen ist: Du kannst dann die "Objekte" nicht mehr (so ohne Weiteres) mit der Maus selektieren, da Du ja dann nur noch ein großes Gesamtbild darstellst. Die Objekte haben dann kein eigenes Handle, das z.B. Mausereignisse abfangen kann.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
mariking2

Registriert seit: 26. Mai 2011
14 Beiträge
 
#14

AW: Einzelne Objekte im Canvas löschen

  Alt 26. Mai 2011, 16:05
Mach ich gerade, hab das Problem auch schon gefunden. Trotzdem danke.
Wie gesagt, ich habe seit diesem Schuljahr erst Informatik in der Schule, zwei Stunden in der Woche
und ich bin noch der Beste aus unserem Kurs, die Anderen sind gerade an den ersten Zeichenfunktionen ihres "Paint"-Programms
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Einzelne Objekte im Canvas löschen

  Alt 26. Mai 2011, 17:00
Erstell Dir eine Klasse mit den benötigten Attributen. Von dieser Klasse erstellst Du dann eine Instanz, die auf die gewünschte Zeichenfläche malt und speicherst sie (die Instanz) in der Liste. Wird nun eine Instanz aus der Liste gelöscht, gehst Du die Liste von vorn nach hinten durch und lässt alle noch verbleibenden Objekte neu zeichnen.
Bevor die Frage aufkommen sollte, warum die Liste von hinten durchlaufen: Durch das Löschen eines Elementes würden sich die Indices der "darunter" liegenden Items ändern...
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#16

AW: Einzelne Objekte im Canvas löschen

  Alt 26. Mai 2011, 17:09
@scrat1979:
Lies nochmal genau, was DeddyH geschrieben hat. Da steht nichts über "von hinten nach vorne". Das wäre nur wichtig, wenn man die Schleife abarbeitetet und dazu auch noch etwas löscht. Aber nicht, wenn man erst löscht und dann die Liste durchgeht.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#17

AW: Einzelne Objekte im Canvas löschen

  Alt 26. Mai 2011, 17:33
Ich gehe ja davon aus, dass ein neues Objekt zeichnet und sich ans Ende der Liste gesellt. D.h. das erste Objekt steht auch am Anfang der Liste, also muss auch in der Reihenfolge erneut gezeichnet werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mariking2

Registriert seit: 26. Mai 2011
14 Beiträge
 
#18

AW: Einzelne Objekte im Canvas löschen

  Alt 27. Mai 2011, 21:28
Hallo nochmal. Ich habe jetzt die ganze Zeit versucht, die gezeichneten Objekte
in eine ObjectList einzufügen.
Ich bin gerade bei der ersten Zeichenfunktion, den Linien(Z. 432-446).
Ich erstelle eine Variable "Element" und nach dem er die Linie gezeichnet hat,
deklariert er in dieser Variable die Koordinaten und die Art.
Mit der Funktion ObjectList.Add(Element) sollte ja das Element jetzt auch der ObjectList hinzugefügt werden,
allerdings wenn ich das Programm starte, beendet er es wieder, zeigt mir in Delphi so eine Fehlermeldung an:
Im Projekt Minipaint2.exe ist eine Exception der Klasse EAccesViloation...
Aber eine Fehlermeldung im Sinne von: "=" gefunden, aber ":" erwartet
bleibt aus. Könnte Sich jemand vielleicht das Programm mal anschauen, wäre echt nett.
Danke
Angehängte Dateien
Dateityp: rar Minipaint 2.rar (252,8 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Einzelne Objekte im Canvas löschen

  Alt 27. Mai 2011, 22:06
Hallo,

Zitat:
ObjectList.Create;
Der üblige Fehler ...


var
ObjectList: TXXX;


ObjectList:= TXXX.Create;


Heiko
Heiko
  Mit Zitat antworten Zitat
mariking2

Registriert seit: 26. Mai 2011
14 Beiträge
 
#20

AW: Einzelne Objekte im Canvas löschen

  Alt 27. Mai 2011, 22:20
Danke, ich hasse so doofe Fehler.

Habe gerade ausprobiert und soweit funktioniert es auch, aber:
Wenn ich das Programm wieder schließe, kommt der selbe Fehler?
Muss ich die Liste vorher löschen oder so?

Geändert von mariking2 (27. Mai 2011 um 22:23 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:48 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