Autor |
Beitrag |
magic delphi programmer
Hält's aus hier
Beiträge: 4
Win XP, Win 7
Delphi 7
|
Verfasst: Mo 31.05.10 18:53
Hallo an alle Delphi Programmierer!
Wie und kann man überhaupt ein Timage so programmieren, dass man verschiedene Transparenzstufen hat die man mit einem Button aktivieren kann und dann z.B. 70% von Timage und 30% von der Form hat?
Und gibt es auch eine Möglichkeit die Transparenz von 0% bis 100% in einer Scroll Bar darzustellen?
Zur Zeit nutze ich folgenden Code, der aber eine Transparenz von 100% besitzt:
Delphi-Quelltext 1: 2:
| Fotofeld.Transparent:=true; Fotofeld.Picture.Bitmap.TransparentColor := clWhite; |
Mein Timage heißt Fotofeld und ich füge dort JPG Bilder ein und ich programmiere mit Delphi 7.
Ich wäre für eine schnelle Antwort der Möglichkeiten dankbar.
Moderiert von Narses: Delphi-Tags hinzugefügt
Zuletzt bearbeitet von magic delphi programmer am Mo 31.05.10 18:56, insgesamt 1-mal bearbeitet
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 31.05.10 18:56
Hallo und  im Delphi-Forum!
Du könntest den Bereich der hinter dem Image ist in ein Bitmap kopieren und dann mit diesem Algorithmus das einfach miteinander verblenden.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Di 01.06.10 02:29
Hey,
ich glaub das wäre zu Rechenaufwendig, denn wenn man die Form darunten noch benutzen will, dann wird das nix. Ich würd einfach ne 2. Form machen, die genau so groß ist wie die TImage. Da kommt dann auch die TImage rein und dann kann man die ganze Form mit AlphaBlend und AlphaBlendValue abblenden. Die Verschiebung kann man auch relativ einfach lösen, ruckelt zwar etwas, aber ich denk ma besser als jedesmal die Bilder zu verrechnen ist es allemal.
Im Anhang hab ich ma n kleines Testprogramm. Das einzige was nich geht is die Weiterleitung der Messages von Form2 auf Form1, das abfangen is schon drin. Aber ich hab sowas noch nich gemacht, vlt kann dir da jmd helfen, der etwas bewanderter is als ich^^
MfG Bergmann.
Einloggen, um Attachments anzusehen!
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 01.06.10 13:44
Hmm, ich will ja nix sagen, aber das AlphaBlending von Formularen muss ja auch berechnet werden, nur macht das in dem Fall das Betriebssystem. Ob das dann so viel schneller ist wage ich zu bezweifeln. Leichter mag es vielleicht sein, aber schöner und schneller ist fraglich.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Di 01.06.10 17:29
Hey,
ich glaub aber, dass das BS das mit Hardwarebeschleunigung macht, also die Graka zur unterstützung nimmt. Denn wenn jede Form erst mit der CPU umgerechnet werden müsste, würde das alles in die Kniehe gehen. Ich hab leider noch nix dazu gefunden, wie MS das gelöst hat. Ich lass mich auch gern eines besseren belehren.
€: was mir grad noch einfällt, man kann zwar von der Form ein Bild machen, aber wenn die Image schon drüber liegt wird die ja auch mit kopiert, da müsste man ja jedesmal die Image ausblenden. Das würde ein unschönes Flimmern erzeugen. Oder gibt es da eine andere Methode?
MfG Bergmann.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 01.06.10 17:34
Es kommt halt drauf an wie oft das Bild verschoben wird.  Und wenns was animiertes sein soll ist es sowieso der falsche ansatz ein Image zu verwenden.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Di 01.06.10 17:49
Hey,
wenn das Bild immer das selbe ist, und sich nur die Form darunter ändern soll, dann ist TImage doch eig richtig? Am bessten warten wir erstmal was bis magic delphi programmer uns sagt was er damit vor hat^^
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
magic delphi programmer 
Hält's aus hier
Beiträge: 4
Win XP, Win 7
Delphi 7
|
Verfasst: Do 03.06.10 19:39
Ich wollte eine Bilderdiashow machen und hatte aber nur einfache Übergänge.
Jetzt wollte ich erstmal ein Bild transparent machen. Die Diashow mache ich über eine Listbox und wenn ich die Diashow starte läuft ein Timer und die Procedure läuft die Listbox herunter bis zum letzten Bild. Jetzt wollte ich auch die Canvas Anweisungen wie Rechtecke und Elipsen erstellen mit dem Transparenten verbinden. Für die Rechtecke und Elipsen verwende ich:
Delphi-Quelltext 1: 2: 3: 4:
| Canvas.MoveTo(0, ClientHeight div 2); Canvas.LineTo(Clientwidth, ClientHeight div 2); Canvas.MoveTo(Clientwidth div 2, 0); Canvas.LineTo(Clientwidth div 2, ClientHeight); |
Es wäre nett wenn ihr mir noch Vorschläge, Verbesserungen und Tipps geben würdet.
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Fr 04.06.10 18:11
Hey,
wie hast du das mit der Transparenz denn jetzt gelöst. Wenn du's verrechnet hast, dann musst du erst die Canvas zeichnen und dann einfach das Bild nochma neu verrechnen. Wenn du's auf meine Art und Weiße gemacht hast, dann kannst du einfach auf die Canvas der Image zeichnen, der Rest sollte dann automatisch passieren...
€: aber die TImage is eig nich zum Zeichnen gedacht. Leg dir einfach noch ne TPaintBox über die Image un da kannst du dann rein malen...
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
magic delphi programmer 
Hält's aus hier
Beiträge: 4
Win XP, Win 7
Delphi 7
|
Verfasst: Sa 05.06.10 17:16
Danke Bergmann89,
die canvas Anweisungen habe ich in der Form gemacht und mit Button zum Aktivieren.
Wie kann man dein Programm mit meins Verschachteln bzw. genau die Objekte mit Eigenschaften verschieben, da man Delphi 7 nur 1mal öffnen kann?
Danke.
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Sa 05.06.10 17:34
Hey,
entweder du öffnest dir meine Unit1 und Unit2 und schaltest dann immer zwischen dem Code hin und her. Oder du öffnsest die Unit im Editor un legst sie dir neben dein Delphi. Oder du machst Delphi über die Desktop-Verknüüfung auf, dann hast du 2x Delphi
Ne Funktion gibt es da nicht, du muss alles abschreiben bzw. kopieren.
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
|