| |
|
|
| |
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| Oft ist ein Bild aussagekräftiger als Worte... |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| Fastmode oder nicht-fastmode? |
|
|
| |
|
|
|
rainerhoefs | Sorry, ich bin noch immer bei Profan 7.0f und will da auch erst noch mal bleiben. Was ist Fastmode?
Rainer |
|
|
| |
|
|
|
| |
|
| |
|
|
|
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: KompilierenMarkierenSeparierenDeclare 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
|
|
|
| |
|
|
|
| |
|
| |
|
|
|
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 |
|
|
| |
|
|