AGB  ·  Datenschutz  ·  Impressum  







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

TShape + Canvas

Ein Thema von Schwanengel · begonnen am 10. Apr 2003 · letzter Beitrag vom 19. Mai 2003
Antwort Antwort
Seite 1 von 3  1 23      
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#1

TShape + Canvas

  Alt 10. Apr 2003, 14:18
Hallo
Ich habe folgende Fragen:
Hat ein 'TShape' eigentlich auch einen 'Canvas'? wenn ja, wie kann ich auf diesen zugreifen?
Ich arbeite mit 'Delphi2.0' und möchte gern eine Transparente Ablage,
für ein TBitmap welches Transparente Bereiche enthält.
Falls man eine neue Komponente von TShape ableiten könnte, die ein Canvas enthält bitte ein Beispiel.
Meine Kenntnisse, über die Erstellung von Komponenten ist nicht gerade
groß.

Danke für Antworten
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 10. Apr 2003, 15:04
Hallo,

ich werde es erstmal nach Multimedia verschieben.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#3
  Alt 11. Apr 2003, 13:09
Hallo

Danke für die unheimlich vielen Antworten, aber ich hab's schon selber gefunden.
Das 'TShape' besitzt kein eigenes Fenster, wenn ich das so richtig verstanden habe.

Wo
bekommt man ausführliche Infos über die Erstellung von 'Komponenten'

Auch wenn ich nur Delphi2.0 habe...
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4
  Alt 11. Apr 2003, 13:26
Hi Schwanengel,

also, der Canvas und ein eigenes Fenster sind zwei unterschiedliche Sachen. TShape ist von TControl abgeleitet und besitzt somit von Hause aus keinen Canvas. Hier kannst du nur mittels API-Routinen über den Device-Context zugreifen.

In den letzten Tagen hatte ich mit hansa eine Diskussion zum Thema "Button selbst zeichnen". Der ist auch irgentwo ein TControl und die Themen würde ich als gleichwertig betrachten. Schau dort mal nach und benutze einfach die Suchfunktion des Forums.

Warum willst du überhaupt auf einen Canvas bei TShape zugreifen?

Gruß oki
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#5
  Alt 11. Apr 2003, 15:29
HI OKI

Mein Grundproblem ist eigentlich folgendes,
(bitte nicht vergessen ich habe Delphi2.0)

Ich habe ein Zeichenprogramm geschrieben wo die Zeichenfläche eine TImage ist.
Jetzt möchte ich aber weitere Bilder über dieser Zeichenfläche
Transparent positionieren können.
Wie ich denke benötige ich eine Komponente die das Bild aufnehmen kann
und die Transparent zu machen geht.

Danke für Deine Antwort....
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6
  Alt 12. Apr 2003, 20:43
Hi,

also, ich hab leider noch kein Zeichenprogramm geschriegen. Aber da Graphik auch an anderer Stelle benötigt wird, kommt einem da so einiges über den Weg. Schau mal in die Ecke TBitmap. In diesem Bereich findest Du auch einige Methoden um in einen Canvas zu zeichnen. Canvas.Draw ist ein Bsp.

In der Ecke TImageList kannst du auch recht einfach mehrere Bitmap' halten.

Hier bist du aber auf vorgefertigte Sachen angewiesen. Für das normale Zeichnen mußt du halt auf die Standardmethoden Lineto ... zurückgreifen.

Ich hab aber immer noch nicht so richtig verstanden was Du genau willst und wo dein Problem wirklich steckt. Was soll eine transparente Ablage sein?

Gruß oki
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#7
  Alt 13. Apr 2003, 13:53
Hi oki,

ich möchte so eine Art wie Stempel, mit Hilfe einer Transparenten
Komponente erstellen. Dieser muß Transparent sein um eine teils Transparente 'TBitmap' aufzunehmen. Ich möchte bei der Positionirung
genau sehen wo ich hin stemple.
Gedanke:
Wenn es aber auch geht, dieses Teils transparente 'TBitmap' sichtbar
an die Maus zu hängen(egal welche Größe) würde es auch reichen.

Von Mirilin hatte ich schon den Hinweis erhalten, eine TPaintbox zu verwenden. (danke)

Momentan bin ich dabei dieses zu Probieren.
Frage:
Wenn ich die TPaintbox auf 'brush.style:=bsclear' stelle wird sie dann
auch Transparent.
Frage:
Wie kann ich in einer TImagelist eine Farbe bestimmen, die durch transparent ersetzt wird.

Danke...
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8
  Alt 14. Apr 2003, 08:22
Hi Schwanengel,

erst mal auf die Schnelle.

Wenn du dir eine Werkzeugleiste baust, also ein neues Formular mit der Eigenschaft FormStyle := stayontop und BorderStyle := bs ToolWindow, dann hast du schon mal was zum sammeln Deiner Strempel. Dort dann eine ToolBar rein und soviele Buttons wie Stempel anlegen. Eigenschaft Flat für Buttons macht sich bestimmt gut. Die Buttons-Bitmaps aus deiner ImageList auswählen. Button-Eigenschaft Style auf tbsChecked setzen. Jetzt kannst du deinen "Button-Stempel" durch auswählen (bleibt gedrückt) setzen.

Setze in die Ereignisbehandlungsroutine für OnMouseMove über deinem Zeichnungsobjekt das Zeichnen eines Rectangels in der Größe deines Stempels. Dann siehst du den Umriß deines Stempels beim Bewegen über der Zeichenfläche. Vergiß das Löschen des Rechtecks nicht!

Ich muß jetzt grad mal schluß machen. Den Rest später.

Gruß oki
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#9
  Alt 14. Apr 2003, 11:31
Hi Schwanengel,

jetzt gehts weiter. Wenn du ein Bitmap in die ImageList aufnimmst hast du im oberen Bereich des Editors die Möglichkeit eine Transparentfarbe zu bestimmen. Das tust du einfach und dein Problem ist gelöst.

Leider kenne ich aktuell den Kompo-Umpfang von Delphi 2 nicht mehr aus dem Kopf. Ich arbeite mit Delphi 5. Zur Not mußt du das Thema Transparent über Umwege in der TBitmap lösen. Ich will jetzt nichts falsches sagen, aber schau mal im TBitmap unter Mask nach. Ich glaube das hat irgentwie was mit der Transparentfarbe zu tun. Bin mir aber nicht sicher, da ich damit noch nicht gearbeitet habe.


Gruß oki
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#10
  Alt 14. Apr 2003, 12:01
Hi oki

alles klar mit der Einstellung.

Jetzt kommt das große aber, wie wird dieses zur Laufzeit des programmes eledigt.
Ich möchte die Imagelist zur Laufzeit füllen und auslesen...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:03 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