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 2 von 3     12 3      
oki

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

kein Thema. Schau in der Hilfe zum TImageList nach. Da gibt es Methoden wie AddIcon welche den Index der Position in der Imageliste zurückliefern.

Du mußt dann natürlich alle weiteren Elemente auch zur Laufzeit erstellen (Buttons in Wergzeugleiste usw.).

Gruß oki
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#12
  Alt 14. Apr 2003, 17:29
Hallo,

schön und gut, aber hat so ein icon nicht eine begrenzte Größe

Sollte ich mich dazu entschließen diese Methode zu verwenden, kommt
schon wieder ne' Frage...

Wie geht man vor, wenn man eine Pxelgafik erstellen möchte.

(So in der Art, wenn man icons erstellt)

Kommt dann dieses Gitter (ab bestimmten Zoom) automatisch, oder muß dieses programmiert werden.

Du siehst ich bin ein Mensch mit vielen Fragen. Ich bin auch froh dieses
Forum gefunden zu haben.

Ein bischen Lob muß auch mal sein...
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#13
  Alt 15. Apr 2003, 08:43
Oh Schwanengel,

du brauchst Nachhilfe in Graphik!

Also erste Frage. Das mit der ImageListe geht auch mit Bitmaps und nicht nur mit Icons.

Zweite Frage. Bitmaporientierte Graphiken sind immer "pixelorientiert".
Wenn du dort um den Faktor X vergrößerst bekommst du diese bekannte "Rasterung" mit dem Faktor X. Um das zu vermeiden gibt es Vectorgraphik. Einfach gesagt wird dort das Zeichnungsobject beschrieben, so nach dem Motto "Zeichne linie mit Breite x von Punkt a nach Punkt b. Dan wird immer die Beste Auflösung des Ausgabegerätes benutzt. Das war jetzt alles sehr grob und einfach gesagt, trifft aber in etwa den Grundsatz.

Bleib aber auf der Bitmap-Ebene, sonst wirst du nie mit dem Programm fertig. Ich bin leider wieder knapp in der Zeit. Melde mich vielleicht heute noch.

Gruß oki
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#14
  Alt 15. Apr 2003, 11:44
Hi oki,

heute geht's weiter mit der Fragerei.
Ich hatte mir vor einiger Zeit Delphi2.0 gekauft mit allen Büchern die vorrätig waren.
Ich habe damals den Sprung in's eiskalte Wasser gewagt und den Versucht gestartet mir alles selbst anzueignen. (nie programmiert)
Mich hat die eigene Krativität bei solchen Dingen gelockt.
Aber wie man sieht hapert es bei manchen Dingen ebend und die ewige Sucherei nach Erklärungen macht einen krank..

Ich bin ja auch schon dabei, mit der Imagelist zu experimentieren.

Aber es fehlen mir ein paar Beispiele zur Umgehensweise. Die Erklärung in der Hilfe ist nicht immer leicht zu verstehen für so einen wie mich.

Aber erstmal vielen Dank für Deine Hilfe,
es bringt einen schon weiter...
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#15
  Alt 15. Apr 2003, 16:00
Ja nu,

stell deine nächste Frage.

Gruß oki
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#16
  Alt 15. Apr 2003, 17:52
Hallo

ich bekomme das nicht hin.
Mein Experiment sieht so aus, ich habe zwei Buttons Kopie und Transparent:

Delphi-Quellcode:
procedure TForm1.SpeedButton4Click(Sender: TObject);
var //Button Transparent
  Bmp1,bmp3: TBitmap;
  bmpList: TImageList;
begin
   Bmp1 := TBitmap.Create;
   bmp3 := TBitmap.create;
  try
   bmp1.width:=blatt.width;
   bmp1.height:=blatt.height;
   bmp3.width:=blatt.width;
   bmp3.height:=blatt.height;
  Bmp1.Assign(blatt); //Blatt ist das Bitmap aus Zeichen Canvas
  bmpList := TImageList.CreateSize(bmp1.Width,bmp1.Height);
  bmplist.AddMasked(bmp1,bmp1.transparentcolor);
 try
   bmpList.Getbitmap(0, bmp3);
   blatt.canvas.brush.color:=clnone;
   blatt.canvas.brush.style:=bsclear;
   paintbox1.canvas.brush.style:=bsclear;
{Paintbox1 nimmt das Bild auf welches unter onPaint mit
Paintbox1.canvas.draw(0,0,blatt); immer wider nachgezeichnet wird.
Blatt wurde zuvor durch copyrect mit einem Bitmap, weches einen bestimmten Bereich der Zeichen Canvas enthält geladen.}

   blatt.assign(bmp3);
  finally
   bmpList.Free;
  end;
   finally
   bmp1:=nil;
   bmp3:=nil;
 end;
end;
Im Zweiten Versuch habe ich unter 'BitBlt' mal alles versucht und bin zu diesm Ergebnis gekommen.

Delphi-Quellcode:
bmp1,bmp2:tbitmap;
x,y: integer;
r:TRect;
begin
 bmp1:=tbitmap.create;
 bmp2:=tbitmap.create;
 bmp1.canvas.brush.style:=bssolid;
 bmp1.assign(blatt);
  x:=bmp1.Width;
  y:=bmp1.Height;
  bmp2.Width:=x;
  bmp2.Height:=y;
 bmp2.canvas.brush.style:=bsclear;
  r:=Rect(0,0,x,y);
  bmp2.Canvas.BrushCopy(r, bmp1, r,clwhite);
  BitBlt(bmp2.Canvas.Handle,0, 0, x, y,bmp1.Canvas.Handle, 0,0,PATCOPY);
  blatt.assign(bmp2);
 end;

Hier hat man den Hintergrund vom Desktop mit kopierter Zeichnung, immer wieder lustig. Was ist alles falsch
Oder hab' ich was gefunden was es gar nicht gibt unter Delphi2.0

gruß Schwani
  Mit Zitat antworten Zitat
oki

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

gib mal dein ganzes Projekt rüber. Da kann ich dann mal selber ausprobieren wo dein Problem steckt.

Gruß oki

(am Besten heute noch, dann kann ich über Ostern mal raufschauen)
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#18
  Alt 18. Apr 2003, 07:32
Hi oki,

mein Testprogramm habe ich als selbstentpackende Zip-Datei mit den
Namen 's-Paint' zurecht gemacht.
Warte gespannt auf Antwort...






so das wars und noch schöne Feiertage.
Angehängte Dateien
Dateityp: exe s_paint.exe (145,5 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
oki

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

Tut mir leid, dass ich dich so lange warten lassen habe. Aber ich hab mir dein Projekt jetzt mal angeschaut.

Die Zielrichtung für die Transparenz Deiner kopierten Ausschnitte ist in der Richtung einer Logischen Verknüpfung auf die Hintergrundfarbe deiner Zeichenfläche zu suchen. So nach dem Motto:

-> Ergibt die logische AND-Verknüpfung deines aktuellen Pixels deiner Kopie mit der Hintergrundfarbe keine 1, so zeichne das bestehende.

Oh, da kommt der nächste Termin. Melde mich später.

Gruß oki
  Mit Zitat antworten Zitat
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#20
  Alt 29. Apr 2003, 20:43
Hallo Oki!

ich freue mich ja das Du Dich mit meinem Problem befasst. Wie ich sehe könnte es zu lösen sein.
Ich habe in der Zwischenzeit auch noch einiges probiert, aber ohne
Erfolg!
  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 05:36 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