![]() |
Delphi Programm zeichnen
Hi,
mir ist grade die Frage gekommen, ob es schon Programe gibt, die ein Blatt Papier auf dehnen Formular Informationen draufstehen zu einer Delphi Anwendung machen kann? Also zb ich male auf ein Dina4 Blatt alle Forms mit Bleistift, alle Edits mit einem roten stift und so weiter und das Programm macht daraus wen man dass Bild einscannt eine Delphi Anwendung. Grenzt wahrscheinlich an Ocr oder? Wäre ganz lustig wenn es das gäbe aber irgendwie kann ich mir sowas nicht vorstellen obwohl ich das praktisch fände dass man dann zb wenn man keinen Computer hat dann schonmal alles zeichnet! MFG Lars Wiltfang |
Re: Delphi Programm zeichnen
Hallo,
denke nicht, dass es soetwas bereits gibt, obwohl es sich recht lustig anhört :-D Dennoch denke ich, dass es mit dem Formulardesigner sehr viel komfortabler wäre, die einzelnen Controls korrekt zu platzieren. Mal mal 20 Edits unterschiedlicher Breite rechtsbündig auf ein Blatt Papier ;) Und wie unterschiedest Du ListBox und Listview, Edit und MaskEdit, ControlX und ControlY...? |
Re: Delphi Programm zeichnen
ganz einfach: ich schreibs rein oder nehme mein 100 farben farb kasten :)
|
Re: Delphi Programm zeichnen
Zitat:
Was möchtest Du denn mit diesem Programm erreichen? Soll es dem Entwickler Arbeit abnehmen? Unter diesem Aspekt weise ich nochmal auf meinen Einwurf mit der Komfortabilität hin. |
Re: Delphi Programm zeichnen
Man könnte doch einfach Stempel nehmen, zb die wo man normalerweise seine Namen reinschreibt und dann da halt edit reinschreibt! :) [Ot] Meine nächsten zehn Beiträge in diesem Thema einfach nicht ernst nehmen :) [OT]
|
Re: Delphi Programm zeichnen
Im Prinzip eigentlich keine schlechte Idee, aber was ist, wenn du dich vermalst oder etwas ändern willst? :mrgreen:
|
Re: Delphi Programm zeichnen
Man streicht sie einfach durch! Kurze Frage: Gibt es hier in der Delphi-Praxis schon eine Ocr Software dessen Autor mir den Source geben könnte, ich würde das echt mal anfangen!
|
Re: Delphi Programm zeichnen
Ich frag mich, ob der Entwicklungsaufwand für das Programm die eventuelle Zeiteinsparung beim Formaulardesignen rechtfertigt :mrgreen:
|
Re: Delphi Programm zeichnen
Kann man den nicht direkt in Delphi ein rotes Rechteck auswerten sodass man halt weiß das es rot ist und wo es positioniert ist? Ist das so kompliziert?
|
Re: Delphi Programm zeichnen
Was bitte soll das bringen?
Wenn man unterwegs eine zündende Idee für ein GUI hat, hat man es viel schneller skizziert und nachher in Delphi nachgebaut, als wenn man das "perfekt" malen muss. |
Re: Delphi Programm zeichnen
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!
|
Re: Delphi Programm zeichnen
So schwer ist das auch nicht umzusetzen,da man ja das eingescannte Bild als Bitmap(Jpg/Png).canvas abscannen/verarbeiten könnte.
|
Re: Delphi Programm zeichnen
Meine Rede :)
|
Re: Delphi Programm zeichnen
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. |
Re: Delphi Programm zeichnen
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!! |
Re: Delphi Programm zeichnen
Zitat:
Naja, es sei denn, Du schreibst noch als Anweisung 'Controls bitte sinnvoll ausrichten' drunter :lol: |
Re: Delphi Programm zeichnen
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.
|
Re: Delphi Programm zeichnen
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. :wink:
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. |
Re: Delphi Programm zeichnen
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?? |
Re: Delphi Programm zeichnen
Zitat:
Zitat:
|
Re: Delphi Programm zeichnen
Hallo,
also die Idee ist zumindest einen Versuch wert *g* Ich würde allerdings über Schablonen versuchen zu erkennen welches Object erzeugt werden soll. Ein "Roter Kasten = Edit" und wie erkennt man ein Label oder ein Memo? oder beschränkst dich nur auf ein paar Komponenten? lg |
Re: Delphi Programm zeichnen
Zitat:
|
Re: Delphi Programm zeichnen
Zitat:
falls wirklich noch ein interessanter beitrag kommen sollte, kann ja der teilnehmer einen neuen thread eröffnen... aber das halt ich doch für sehr überflüssig da weiterzulesen. GG |
Re: Delphi Programm zeichnen
Ja an dem Zeitpunkt habe ich es noch nicht für möglich gehalten jetzt schon :) Das könntem man eher unter Projekte verschieben^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:06 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