Deutsch
Forum

Sourcecode PictureBox ähnlich Delphi Paintbox

 
 
11.08.2006  
 




Michael
Wodrich
Da können sich aber nur Delphi-kundige was drunter vorstellen.
Hast Du mal einen Screenshot davon?

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
11.08.2006  
 




rainerhoefs
Hallo Michael,

ja, ich habe genaue Vorstellungen davon. Hatte alles gestern schon gepostet ist aber irgendwo im Nirwana verloren gegangen. Heute Abend schreibe ich noch mal alles detailliert was und wie ich es mir vorstelle. Meine Versuche es selber zu machen sind leider gescheitert.
Bitte noch etwas Geduld.

Rainer
 
11.08.2006  
 



Oft ist ein Bild aussagekräftiger als Worte...
 
11.08.2006  
 




rainerhoefs
Also liebe Profaner,

hier die Beschreibung des Objektes welches ich gerne hätte.

Man nehme ein Static-Control und gebe ihm den Stil $54301B1E mit dem ExWinStyle = 66128. Diese Werte kommen aus dem WinFellow, ich arbeite immer noch damit. 

Damit erhält man eine Box, in die man mittels SendMessage eine Bitmap senden kann. Die wird entweder zentriert oder links oben plaziert. Das hängt wieder von dem Stil ab, den man dem Static-Control zugewiesen hat. Die Stile gibts in der API. Soweit geht es bei mir schon. Was nun nicht funktoniert ist das Scrollen.

Hier die Beschreibung was alles gehen sollte und die Parameter die ich mir vorstelle.

PictureBox& = CreatePictureBox( X&, Y&, Width&, Height&, PictureHandle&, PictureType&, DisplayStyle&, ZoomFactor!, FrameType&) Rückgabe = Handle der PictureBox
X& + Y& = Startposition links oben
Width& + Height& = Breite und Höhe
PictureHandle& = Handle& zu einem geladenen Bild
PictureType$ = Typ des Bildes 1 = Bitmap, 2 = EnhMetaFile, 3 = Icon
DisplayStyle$ = 1 = CenterImage, 2 = RealSizeImage, 3 = Left
ZoomFactor! = Hier wäre es ganz SUPER wenn man auch negativ zoomen könnte, also nicht nur 1, 2, 3 usw sondern auch 0.25, 0.5, 0.3 usw.
FrameType& = Die Art wie das Object aussehen soll. Hier gibt es laut API viele Möglichkeiten, hier nur die wichtigsten Beispiele : SS_Sunken  oder im erweiterten Stil WS_EX_ClientEdge  oder WS_EX_DlgModalFrame 
Ok Soweit die Beschreibung der PictureBox.

Jetzt stelle ich mir vor das man zwei Prozeduren hat. Zuerst einmal die, mit der man die PictureBox erstellt. Siehe oben.

Dann braucht man noch eine mit der man die PictureBox modifizieren kann.

ModifyPictureBox (PictureHandle&, ZoomFactor!)
Mit dieser Procedur wird nur der Inhalt der PictureBox geändert. Also ein anderes Bild eingefügt und der ZoomFaktor verändert.
Das könnte z.B. geschehen in dem man mit RechtsKlick ein PopUp-Menü zeigt mit den entsprechenden Menüpunkten.

Wird nun der PictureBox ein Bild zugeordnet, so werden z.B. Die Scrollbars automatisch enabled wenn das Bild zu groß ist um ganz abgebildet zu werden. Dann kann man das Bild natürlich auch mit den Scrollbars schieben.

Eine andere Möglichkeit wäre alle Parameter in einem Bereich zu übergeben.
Also
Declare PictureBoxParams#
Dim PictureBoxParams#, ???
PictureHandle&, X, Y, Width& usw.


Dann wäre es so:
PictureBox& = CreatePictureBox(PictureBoxParams# )
ModifyPictureBox(PictureBoxParams# )

Ich hoffe ich habe mich verständlich ausgedrückt.

Rainer
 
11.08.2006  
 



Fastmode oder nicht-fastmode?
 
11.08.2006  
 




rainerhoefs
Sorry, ich bin noch immer bei Profan 7.0f und will da auch erst noch mal bleiben.
Was ist Fastmode?

Rainer
 
11.08.2006  
 



fastmode 

Ich empfehle XProfan10.
 
11.08.2006  
 




Jörg
Sellmeyer
Hallo Rainer,
Der Empfehlung von iF kann ich mich nur anschließen!
Ein Teil Deiner Vorstellungen ist da schon implementiert. Sieh Dir das mal an:
[...] 
[...] 
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.08.2006  
 




rainerhoefs
Hallo,

es geht nicht um das Skalieren der Bilder, das mache ich mit den GDIPlus Entwicklungen von Andreas Miethe.

Mir geht es in erster Linie um solch ein Scrollbox, die einfach und schnell funktioniert.

Hier ein Source wegen der Optik:
KompilierenMarkierenSeparieren
Declare dateiname#
Declare FileName$
Declare Picturehandle&
Declare PictureBox1&
Declare PictureBox2&
Declare Ende%
Def Loadimage(6) !"USER32","LoadImageA"
Window 1,1-440,290
Cls @RGB(123,23,0)
-----------------------------------------------------------------------------------------
PictureBox1& = Control("STATIC","",$54301B0E,10,10,200,200,%Hwnd,2000,%Hinstance,$0200)
-----------------------------------------------------------------------------------------
PictureBox2& = Control("STATIC","",$50700A0E,220,10,200,200,%Hwnd,2000,%Hinstance,$0200)
Allgemeine Stile:
WS_CHILD, WS_CHILDWINDOW, WS_DLGFRAME, WS_HSCROLL, WS_VSCROLL, WS_VISIBLE
Controlspezifische Stile:
SS_BITMAP, SS_CENTERIMAGE, SS_REALSIZE
Extended Stile:
WS_EX_CLIENTEDGE
-----------------------------------------------------------------------------------------
Dim dateiname#,256
FileName$ = LoadFile$ ("Bild laden!","*.bmp")
String dateiname#,0 = FileName$
PictureHandle& = Loadimage(%Hinstance,dateiname#,0,0,0,$00050)
Sendmessage(PictureBox1&,$172,0,PictureHandle&)
Sendmessage(PictureBox2&,$172,0,PictureHandle&)
Dispose dateiname#

WhileNot Ende%

Wend

 
11.08.2006  
 



Schau mal hier: [...] 
 
11.08.2006  
 




rainerhoefs
Hallo if,

habe ich schon, funktioniert auch im Prinzip, hat blos das Problem, das jede Bitmap beim Scrollen zerissen wird. Beim horizontalen und beim vertikalen Scrollen springt ein Teil des Bildes nach links oder nach unten. Ist also so nicht richtig baruchbar. Hatte versucht den Fehler irgendwo zu finden, gelang mir aber nicht. Sonst wäre es schon das was ich suche.

Rainer
 
11.08.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.433 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller27.10.2017
Andre Rohland06.10.2015
Michael Borowiak30.11.2014
Manfred Barei08.06.2014

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie