AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Canvas: "erlaubt kein Zeichnen"
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas: "erlaubt kein Zeichnen"

Ein Thema von VkPenguin · begonnen am 7. Feb 2012 · letzter Beitrag vom 12. Feb 2012
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Canvas: "erlaubt kein Zeichen"

  Alt 8. Feb 2012, 23:49
So ich habe das mal eben compiliert und ausgeführt ... und das läuft perfekt

Im Anhang nochmals die Quellen und die EXE
Angehängte Dateien
Dateityp: zip bitmap1.zip (532,8 KB, 8x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
VkPenguin

Registriert seit: 23. Dez 2011
150 Beiträge
 
Delphi XE7 Architect
 
#2

AW: Canvas: "erlaubt kein Zeichen"

  Alt 9. Feb 2012, 00:19
.. Du hast Recht, ich hatte einen anderen Fehler gemacht, tut mir leid.

Das Testprogramm funktioniert so aber immernoch nicht, mache noch irgendetwas falsch. Fügt man die eingeklammerte Zeile hinzu geht es, aber ich will das Bild ja nicht auf dem Desktop haben, das hab ich nur beim lesen gerade gefunden. Scheint immernoch der am Anfang bereits genannte Fehler zu sein, ich weiß nur nicht, wie ich der Canvas das beibringen soll.. vielleicht find ichs ja noch

Delphi-Quellcode:
Program test;
uses
  ExtCtrls,
  Variants,
  mmsystem,
  sysutils,
  Windows,
  Messages,
  Classes,
  Graphics,
  Controls,
  Forms,
  Math,
  Dialogs,
  StdCtrls,
  JPEG,
  IniFiles;


{W A R T E}

procedure wait(t: extended);
  var
    a: extended;
  begin
    a := GetTickCount;
    repeat
      Application.ProcessMessages;
    until (GetTickCount > a+t);
  end;

VAR
Beispiel :TCanvas;
Bild:Tbitmap;
x,y:Integer;
Begin
  Beispiel:=Tcanvas.create;
  // 2. Objekt erzeugen
  bild := TBitMap.Create;
  // 3. BitMap aus Datei laden, damit wird Größe gesetzt
  bild.LoadFromFile('abc.bmp');
  // 4. Eigenschaften einstellen
  bild.Transparent := true;
   x := 5; y :=5;
  // 5. Bitmap anzeigen
 // Beispiel.Handle := GetWindowDC(0);
  Beispiel.Draw(x,y,bild);



  wait(1500);
  // 6. Speicher freigeben
  bild.free;
 Beispiel.free
end.

Geändert von VkPenguin ( 9. Feb 2012 um 00:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Canvas: "erlaubt kein Zeichen"

  Alt 9. Feb 2012, 06:34
.. Du hast Recht, ich hatte einen anderen Fehler gemacht, tut mir leid.
Ja, du hast eben nicht das Beispiel genommen, sondern Auszüge daraus ohne zu verstehen, was da eigentlich passiert und warum.
Das Testprogramm funktioniert so aber immernoch nicht, mache noch irgendetwas falsch. Fügt man die eingeklammerte Zeile hinzu geht es, aber ich will das Bild ja nicht auf dem Desktop haben, das hab ich nur beim lesen gerade gefunden.
Aber wo willst du das Bild denn gemalt haben? Mir ist das nicht klar und dem Computer - treudoof wie der ist - ist das schon mal gar nicht klar.
Scheint immernoch der am Anfang bereits genannte Fehler zu sein, ich weiß nur nicht, wie ich der Canvas das beibringen soll.. vielleicht find ichs ja noch
Der Canvas brauchst du nichts beibringen, du musst ihr das nur mitteilen.

Du solltest eigentlich gelernt haben:
  • aha, wenn ich der Canvas einen DC-Handle zuweise (ok, war der vom Desktop), dann geht da was
  • ich brauche also ein DC-Handle von dem, wo ich das gemalt haben will
Somit müsstest du jetzt eigentlich nur noch auf der Suche nach diesem DC-Handle sein.

Also, wo soll das Bild denn gemalt werden, dann finden wir ja evtl. das richtige DC-Handle
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#4

AW: Canvas: "erlaubt kein Zeichen"

  Alt 9. Feb 2012, 09:34
dann finden wir ja evtl. das richtige DC-Handle
Und vielleicht sogar schon ein vorhandenes/fertiges Canvas.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Canvas: "erlaubt kein Zeichen"

  Alt 9. Feb 2012, 09:51
dann finden wir ja evtl. das richtige DC-Handle
Und vielleicht sogar schon ein vorhandenes/fertiges Canvas.
Gerüchten zufolge sollen ja TImage und TPaintBox über je ein bereits vordefiniertes Canvas verfügen. Toll, dieses Delphi
  Mit Zitat antworten Zitat
VkPenguin

Registriert seit: 23. Dez 2011
150 Beiträge
 
Delphi XE7 Architect
 
#6

AW: Canvas: "erlaubt kein Zeichen"

  Alt 9. Feb 2012, 10:02
Guten Morgen,
danke für Eure Antworten.
@ SirRufo: Genau das wollte ich mit meinem Post sagen, tut mir leid, wenn ich mich so missverständlich ausgedrückt habe

Das Problem ist, dass ich es selbst nicht so genau weiß. Ich arbeite seit einiger Zeit an einem Infoprogramm, das vom Ergebnis her inzwischen garnicht so schlecht ist (find ich als völliger Anfänger zumindest). Bei dem Spiel möchte ich nun die handgezeichneten Kreise durch wesentlich hübschere Bilder ersetzen, die sich dann über den Bildschirm bewegen. Das DC-Handle, das ich suche muss also die bereits gezeichneten Dinge in meinem Programm übermalen, insonfern sie nicht schon gelöscht sind und sich auch übermalen lassen. Ich bin allerdings noch nicht dahinter gekommen, wie ich rausfinde, welche Ebene ich dazu bearbeiten muss - wie gesagt bin ich im moment aber auch erstmal mehr nach einem grundlegenderen Tutorial auf der Suche, damit sich das
Zitat:
[...]Ja, du hast eben nicht das Beispiel genommen, sondern Auszüge daraus ohne zu verstehen, was da eigentlich passiert und warum[...]
ändert.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Canvas: "erlaubt kein Zeichen"

  Alt 9. Feb 2012, 10:21
@Perlsau: TPaintbox nicht! Die reicht nur an das Canvas des Parents durch.

@VkPenguin: Du muss doch irgendwie wissen, wo du hin zeichnest, was du bisher malst Zeig doch mal das Zeichnen deiner alten Kreise auszugsweise als Code. Nicht exemplarisch - echtes Copy&Paste aus deinen Quellen bitte
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  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 22:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz