AGB  ·  Datenschutz  ·  Impressum  







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

Neuer Blog über FireMonkey Entwicklung eröffnet

Ein Thema von Harry Stahl · begonnen am 6. Mär 2013 · letzter Beitrag vom 12. Mai 2023
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#1

AW: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 13. Feb 2014, 23:55
Vielen Dank für Deine Erläuterungen:

* Für Widestring müsste man wieder die ShareMem-Interface-Unit einbinden und zusätzlich die BORLNDMM.DLL weitergeben.
Warum sollte ich das machen, wenn ich bei der gezeigten Implementation gar keine Unicodenamen brauche? Wenn ich es doch brauchen sollte, verwende ich PChar, so kann ich Unicode verwenden, brauche aber die erwähnte Unit und DLL nicht.

* Ich hatte zuvor für mich schon einmal die Rückgabe mit dem TMemoryStream implementiert. Die Rückgabe funktionierte genau so, wie die hier von Dir vorgeschlagene Lösung mit dem IStream. Beides mal kommen für sich gesehen auch gültige Streams an. Das habe ich insofern getestet, als dass ich den Stream als Bitmap-Datei gespeichert habe und mit einer FireMonkey-Applikation konnte man diese Bitmap-Datei dann einlesen.

Aber auch bei Deiner Lösung wird das einlesen des Streams in die VCL-Bitmap mit der Fehlermeldung quitiert, dass die Bitmap ungültig sei.

Grund ist der, dass ja ein Stream für eine FireMonkey-Bitmap zurückgeliefert wird und den kann ich nun mal nicht in eine VCL-Bitmap einlesen, weil die eben nicht kompatibel sind.

Insofern funktioniert der von Dir vorgeschlagene Weg mit dem IStream als "schönere" Lösung hier leider auch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#2

AW: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 14. Feb 2014, 00:03
Oh, da hat sich Deine ergänzende Antwort mit meiner überschnitten.

In
Delphi-Quellcode:
procedure TBitmap.SaveToStream(Stream: TStream);
var
  Surf: TBitmapSurface;
begin
  Surf := TBitmapSurface.Create;
  try
    Surf.Assign(Self);
    TBitmapCodecManager.SaveToStream(Stream, Surf, '.png');
  finally
    Surf.Free;
  end;
end;
hatte ich natürlich auch schon reingesehen, aber jetzt durch Deinen Hinweis, dass man es "sofort sehen würde, was man abändern kann", habe ich nun auch gesehen, dass der Stream im PNG-Format gespeichert wird. OK. Das sollte man in der Tat ändern können, muss mal sehen, wie ich das am Besten mache. Dann sollte auch der Weg über einen Stream insgesamt gehen.

Aber heute nicht mehr, morgen mach ich weiter...

Jedenfalls Danke für Deine Hinweise, es freut mich immer wieder, wenn am Ende eine neue Erkenntnis steht.

Geändert von Harry Stahl (14. Feb 2014 um 00:07 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: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 14. Feb 2014, 00:05
Da ein Delphi-Referenz durchsuchenWideString von Windows verwaltet wird, benötigt man eben kein ShareMem.

Die Verwendung von IStream ermöglicht es zudem, diese DLL nicht nur von Delphi Anwendungen benutzen zu können.
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 Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#4

AW: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 14. Feb 2014, 00:35
Da ein Delphi-Referenz durchsuchenWideString von Windows verwaltet wird, benötigt man eben kein ShareMem.
Na schon wieder was dazu gerlernt.
Wir sollten uns vielleicht öfter mal unterhalten...

Die Verwendung von IStream ermöglicht es zudem, diese DLL nicht nur von Delphi Anwendungen benutzen zu können.
OK, das hatte ich schon vermutet. Hatte aber für mich in der gezeigten Umsetzung keine Relevanz, da die DLL ja nur von meinem Programm genutzt und das Beispiel einfach gehalten werden sollte. Im Wesentlichen ging es ja um die FMX-DLL zu VCL-Nutzung. Ist aber insgesamt ein berechtigter Hinweis von Dir. Ich werde meinen Blogeintrag noch mal überarbeiten und eine entsprechende Info aufnehmen. Aber wie gesagt, erst morgen (Abend) wieder...
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#5

AW: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 14. Feb 2014, 18:18
So, ich habe den Blogbeitrag nun aktualisiert, auch die Rückgabe des Bitmaps geht nun per Stream, eine temporäre Datei wird nicht mehr benötigt.

Ich habe am Ende des Blogbeitrags auch einen Download-Link des Demos hinzugefügt, so spart man sich das tippen (evt. mal F5 zur Browser-Aktualisierung drücken). Den Source-Code könnt Ihr natürlich frei verwenden.

Vielen Dank noch mal an Sir Rufo, durch seine Hinweise konnte die Sache deutlich verbessert werden.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#6

AW: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 18. Feb 2014, 20:31
Ich habe den letzten Blogbeitrag noch um einen Link auf ein Youtube-Video ergänzt. Dort zeige ich, wie man die FMX-Form für die DLL, welche in der VCL-Anwendung genutzt wird, so modifiziert, so dass man sie auch direkt (also ohne DLL) in einer Firemonkey-Anwendung einbinden und verwenden kann.

Hier ist der Link zu diesem Beitrag aus meinem neuen FireMonkey Videoblog (FMX = RAD ++).

Ich werde in den nächsten Tagen noch weitere Videos produzieren und hochladen, wer da Interesse hat, kann meinen Kanal ja abonnieren, dann erhält er eine automatische Benachrichtigung, wenn es was neues gibt.

Tipp zum Video: In voller Bildschirmauflösung und bei 720 DPI ansehen.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#7

AW: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 21. Feb 2014, 23:49
Heute mal kein schriftlicher Blogbeitrag, sondern ein kleines Video.

Video zeigt, wie man ganz schnell eine VCL-Form in eine FMX-Form umwandeln kann.

HINWEIS: Mir ist bei der Demonstration leider ein kleiner Fehler unterlaufen, ich hätte vor der Hinzufügung des konvertierten Formulars zum FMX-Projekt noch den Suchpfad zum MIDA-Pack angeben müssten, daher funktionierte die Image-Konvertierung nicht. Also, in Wirklichkeit funktioniert es also noch etwas besser, als hier gezeigt)

Hier der Link.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#8

AW: Neuer Blog über FireMonkey Entwicklung eröffnet

  Alt 23. Feb 2014, 21:04
Noch ein kleiner Nachtrag:

Ich habe noch 2 ergänzende Videos hochgeladen, Teil 2 zeigt den Stand nach 5-6 Stunden Arbeit an dem zu konvertierenden Programm und Teil 3 gibt noch ein paar Tipps zum MIDA-Converter.

Hier Teil 2: http://youtu.be/i0sJ5XhYQEA

Hier Teil 3: http://youtu.be/kg5GsF5j1W8

Auch hier am besten in Vollauflösung und 720 DPI ansehen.

Geändert von Harry Stahl (23. Feb 2014 um 21:13 Uhr)
  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 14:00 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