AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Programm zeichnen

Ein Thema von Larsi · begonnen am 6. Apr 2008 · letzter Beitrag vom 8. Apr 2008
Antwort Antwort
Seite 2 von 3     12 3      
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Delphi Programm zeichnen

  Alt 6. Apr 2008, 20:12
Warum denn perfekt? Also ich finde wenn man was skizziert ist es praktisch wenn man es schnell einscannt und zu ner GUI macht als wenn man dann nochmal alles nochmal übertragen muss!
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#12

Re: Delphi Programm zeichnen

  Alt 6. Apr 2008, 20:13
So schwer ist das auch nicht umzusetzen,da man ja das eingescannte Bild als Bitmap(Jpg/Png).canvas abscannen/verarbeiten könnte.
I love DiscCat
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Delphi Programm zeichnen

  Alt 6. Apr 2008, 20:16
Meine Rede
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#14

Re: Delphi Programm zeichnen

  Alt 6. Apr 2008, 20:17
Ansatz:
Delphi-Quellcode:
**********************************************
* grüße and ahmet von smallsmoker *
* differenzbild prozedur von alleinherrscher *
**********************************************}
unit uDifferenzbild;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, math;

type
  TForm1 = class(TForm)
    imDiff: TImage;
    imScr1: TImage;
    imScr2: TImage;
    btnScr1: TButton;
    btnDiff: TButton;
    btnScr2: TButton;
    imNew: TImage;
    btnNew: TButton;
    procedure btnScr1Click(Sender: TObject);
    procedure btnScr2Click(Sender: TObject);
    procedure btnDiffClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnNewClick(Sender: TObject);
  private
    { Private-Deklarationen }
    scr1,scr2,diff:tbitmap;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
// Die Screenshot prozedur
procedure ScreenShot(DestBitmap:TBitmap; bmpxfr:integer);
var dc : HDC;
begin
  try
  dc := getdc(getdesktopwindow);
  destbitmap.width := getdevicecaps (dc, horzres);
  destbitmap.height := getdevicecaps (dc, vertres);
  if bmpxfr= 4 then destbitmap.pixelformat:=pf4bit
  else if bmpxfr=8 then destbitmap.pixelformat:=pf8bit
  else if bmpxfr=16 then destbitmap.pixelformat:=pf16bit
  else if bmpxfr=24 then destbitmap.pixelformat:=pf24bit
  else if bmpxfr=32 then destbitmap.pixelformat:=pf32bit;
  bitblt(destbitmap.canvas.handle,
         0,
         0,
         destbitmap.width,
         destbitmap.height,
         dc,
         0,
         0,
         srccopy);
  except
    exit;
  end;
end;

// Die prozedur die das differenzbild erzeugt
procedure GetDifference(ZielDC,DC1,DC2:HDC;DCwidth:integer;DCheight:integer);
begin
BitBlt(ZielDC,0,0,DCwidth,DCheight,DC2,0,0,SRCCOPY);
BitBlt(ZielDC,0,0,DCwidth,DCheight,DC1,0,0,SRCINVERT);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
scr1 := tbitmap.create;
scr2 := tbitmap.create;
diff := tbitmap.create;
end;

// Der erste Screenshot wird gemacht und in scr1 gespeichert, das wiederum wird in imscr1 angezeigt
procedure TForm1.btnScr1Click(Sender: TObject);
begin
screenshot(scr1,32);
imscr1.picture.bitmap := scr1;
imscr1.Repaint;
btnscr2.Enabled := true;
end;

// Der zweite Screenshot wird gemacht und in scr2 gespeichert, das wiederum wird in imscr2 angezeigt
procedure TForm1.btnScr2Click(Sender: TObject);
begin
screenshot(scr2,32);
imscr2.picture.bitmap := scr2;
imscr2.Repaint;
btndiff.Enabled := true;
end;

// Der Differenzbild von scr1 und scr2 wird erstellt
procedure TForm1.btnDiffClick(Sender: TObject);
begin
diff := tbitmap.Create;
  try
  diff.Width := min(scr1.Width, scr2.Width);
  diff.Height := min(scr1.height, scr2.height);
  GetDifference(diff.Canvas.Handle,
                Scr1.Canvas.handle,
                scr2.Canvas.handle,
                diff.Width,
                diff.Height);
  imDiff.Picture.bitmap := diff;
  imDiff.Repaint;
  btnnew.Enabled := true;
  finally
    scr2.Free;
  end;
end;

// scr1 wird in newpic kopiert, und das differenzbild wird auf newpic gelegt
procedure TForm1.btnNewClick(Sender: TObject);
var newpic:tbitmap;
begin
newpic := tbitmap.Create;
  try
  newpic := scr1;
  newpic.Width := diff.Width;
  newpic.Height := diff.height;
  bitblt(newpic.Canvas.handle,
          0,
          0,
          diff.Width,
          diff.Height,
          diff.Canvas.handle,
          0,
          0,
          SRCINVERT);
  imnew.Picture.bitmap := newpic;
  imnew.Repaint;
  finally
    scr1.free;
    diff.Free;
  end;
end;

end.
I love DiscCat
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Delphi Programm zeichnen

  Alt 6. Apr 2008, 21:45
also ich halte das auch mal für ne supert idee, und umsätzbar währe das ja auch!! naja wobei ich von mir selber auch behaupten kann das ich bei der guten alten methode bleib

naja wenn du willst ich hab mal was mit scannern gemacht, da kann ich dir in der richtung noch ein bisschen was übermitteln wenn du willst, musst mich dann nur anschreiben!!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#16

Re: Delphi Programm zeichnen

  Alt 7. Apr 2008, 00:12
Zitat von Larsi:
Warum denn perfekt? Also ich finde wenn man was skizziert ist es praktisch wenn man es schnell einscannt und zu ner GUI macht als wenn man dann nochmal alles nochmal übertragen muss!
Und dann? Meinst Du, die Anordnung der einzelnen Controls sieht dann schön aus? Du müsstest in jedem Fall nochmal manuell Hand anlegen, wenn Du nicht willst, dass der Anwender sich vorkommt wie in einem Rübenfeld.

Naja, es sei denn, Du schreibst noch als Anweisung 'Controls bitte sinnvoll ausrichten' drunter
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#17

Re: Delphi Programm zeichnen

  Alt 7. Apr 2008, 00:44
Ein anderes Problem wären Panels: woher soll das Programm wissen, ob ein Button darüber liegt, oder darn? Spätestens bei TabControls bekommst du sowieso Probleme.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: Delphi Programm zeichnen

  Alt 7. Apr 2008, 01:28
Hmm... interessanter fände ich, wenn ein Programm dazu in der Lage wäre, aus einem Pflichtenheft ein fertiges Programm zu basteln; der fertige Quelltext würde mir persönlich auch schon reichen.

Mal im Ernst: die Idee ist ganz OK. Nur ist die RAD-Umgebung von Delphi IMHO schon so komfortabel, dass man sie nicht mehr großartig verbessern kann. Und warum sollte ich analoge Hilfsmittel (Blatt Papier & zig Buntstifte) in die Hand nehmen, wenn die digitale Technik IMHO präziser und unkomplizierter zu handhaben ist?! Eine unterwegs gemachte Skizze der GUI in Delphi umzusetzen ist das kleinste Übel der Programmierung.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Delphi Programm zeichnen

  Alt 7. Apr 2008, 14:32
Hi,
es geht schnell voran in der Version die ich bald uppen werden kann man schon ein Blatt Papier mit nem roten Viereck in das Programm einfügen und dann wird dort ein edit erstellt!


Mir kommt grade ne Frage auf: Wie eschafee ich es zb ein Dunkelrot codetechnisch zu einem normalen rot gemacht wird von Delphi??
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#20

Re: Delphi Programm zeichnen

  Alt 7. Apr 2008, 15:00
Zitat von Dunkel:
Hmm... interessanter fände ich, wenn ein Programm dazu in der Lage wäre, aus einem Pflichtenheft ein fertiges Programm zu basteln; der fertige Quelltext würde mir persönlich auch schon reichen.
pflichtenheft wird überbewertet... usb verbindung zum hirn und dann über gedanken ein programm entwickeln!

Zitat von Dunkel:
Mal im Ernst: die Idee ist ganz OK. Nur ist die RAD-Umgebung von Delphi IMHO schon so komfortabel, dass man sie nicht mehr großartig verbessern kann. Und warum sollte ich analoge Hilfsmittel (Blatt Papier & zig Buntstifte) in die Hand nehmen, wenn die digitale Technik IMHO präziser und unkomplizierter zu handhaben ist?! Eine unterwegs gemachte Skizze der GUI in Delphi umzusetzen ist das kleinste Übel der Programmierung.
interessant wirds nur wenn man in richtung WPF (windows presentation foundation) geht.. da kann man ja buttons bauen die die beklopptesten formen, farben usw. haben. und das ganze auch noch als vektorgrafik. wenn man einen begabten zeichner hat könnte sich sowas sicherlich lohnen
  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 15:45 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