Deutsch
Forum

Sourcecode PictureBox ähnlich Delphi Paintbox

 
- Seite 1 -


 
11.08.2006  
 



 
- Seite 2 -



rainerhoefs
Hallo Michael,

was meinst Du mit einem Rahmen-Control?

Rainer
 
12.08.2006  
 




Michael
Wodrich
Stell es Dir wie einen Bilderrahmen vor. Das äußere Control versiehst Du mit den gewünschten Rahmen-Effekten (SS_Sunken z.B.). Darin platzierst Du das Inline-Control. Hierbei mußt Du dann darauf achten das dieses innere Control die Rahmenlinien nicht überschreibt (positionieren). Da das äußere Control nicht scrollt bleibt der Rahmen-Effekt also intakt.
Das innere Control sollte dann ganz rahmenlos sein, damit nicht auffällt das hier mehrere Controls geschachtelt sind.
Selbst Microsoft verwendet solche geschachtelten Controls...

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




rainerhoefs
Hallo Michael,

wenn ich den Source von iF richtig lese, wird zuerst eine Listbox gezeichnet, die einen Rahmen hat. Dann wird darin ein Static gezeichnet, das wahrscheinlich auch einen Rahmen hat, Und dann wird nochmal ein Stati cauf das Static gesetzt. Ich habe schon mit alle Stilen herumprobiert, der Sprung belibt. Auch wenn man die Positionierung der Statics innerhalb der Listbox ändert, springt das Bild. Es schein hier keine Lösung zu geben.

Rainer
 
12.08.2006  
 




Rolf
Koch
und wenn Du es mit einem Browser versuchst?
Hab grad mal schnell mit ROC ein Webbrowser erstellt und dort z.B. eine übergrosse BMP angezeigt. Butterweiches Scrollen halt wie hier im Forum
 
12.08.2006  
 




rainerhoefs
Hallo Rolf,

soll ich jetzt zugeben das ich zu blöd bin den Satz mit dem Browser sofort in Source umzusetzen.

Ja muß ich wohl.

Kannst du da bitte etwas konkreter werden?

Danke

Rainer
 
12.08.2006  
 




Jörg
Sellmeyer
Hier was aus meinem Archiv. Ich glaube von Uwe Pascal Niemeyer:
KompilierenMarkierenSeparieren
 $H Windows.ph
Window 0,0-930,900
Usermessages 16
Def Atlaxwininit(0) !atl.dll,AtlAxWinInit
Def Atlaxcreatecontrol(4) !atl.dll,AtlAxCreateControl
Declare Atl&,Web&,A$
Atl&=Usedll(atl.dll)
Atlaxwininit()
A$=File:///C:MeinBildmitPfad.jpg
Web&=Control(AtlAxWin,A$,$50300000,00,0,920,550,%Hwnd,0,0,$200)-HTML-Contol anlegen

While 1

    Waitinput
    Case %Umessage=16:Break

Endwhile

Destroywindow(Web&)
Freedll Atl&
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
12.08.2006  
 



 
- Seite 3 -



rainerhoefs
HalloJ. Sellmeyer

THATS IT!!

Vielen Dank liebe Profaner!

Das ist es.

Noch eine Frage: Sind die Beschreibungen in der API oder gibt es dazu eine gesonderte Doku? Ichmöchte natürlich geren dei Bilddatei zuordnen ohne jedesmal ein neues Fenster zu kreiren.

Danke nochmal
 
12.08.2006  
 




Jörg
Sellmeyer
Hallo Rainer,
Schau mal, ob Du hier durchsteigst:

[...] 

Außerdem noch eine Headerdatei (wohl auch von Uwe):
KompilierenMarkierenSeparieren
Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
12.08.2006  
 




Michael
Wodrich
Das nachfolgende Beispiel habe ich unter v7.0 getestet.
2 Bildboxen
KompilierenMarkierenSeparieren
-------------------- für das HTML-Control
 $H Windows.ph
Def Atlaxwininit(0) !atl.dll,AtlAxWinInit
Def Atlaxcreatecontrol(4) !atl.dll,AtlAxCreateControl
Declare Atl&
Atl&=UseDLL(atl.dll)
Atlaxwininit()
--------------------
mehrere Parameter zurückgeben: geht über eine Struktur am Besten
die vorderen Felder sind die Parameter, die letzten beiden sind die Rückgabewerte
Struct PictBoxStru = hWnd&, X&,Y&,Width&,Height&, DlgID&, BildPfad$(260), Box&, Web&
hier die Prozedur

Proc CreatePictureBox

    Parameters PictBoxParms&
    Declare WebPfad$
    für v7.0 ist ein kleiner Trick erforderlich,
    da die Bereiche sonst nicht strukturiert ansprechbar sind
    Declare PictBoxParms#,Save&
    Dim PictBoxParms#, PictBoxStru   Bereich mit Struktur einrichten (Zeiger auf strukturierte Daten)
    Save& = PictBoxParms#            diesen Zeiger sichern
    PictBoxParms# = PictBoxParms&    den übergebenen Zeiger (auf Box1# und Box2#) mit der Struktur versehen
    hier kann ich jetzt auf die übergebenen Daten zugreifen

    With PictBoxParms#

        .Box& = Control(STATIC,,$50000000,.X&,.Y&,.Width&,.Height&,.hWnd&,.DlgID&,%hInstance,$200)
        WebPfad$ = file:/// + .BildPfad$
        .Web& = Control(AtlAxWin,WebPfad$,$50300000,0,0,Width(.Box&),Height(.Box&),.Box&,0,0)-HTML-Contol anlegen

    EndWith

    PictBoxParms# = Save&    Original-Bereich wiederherstellen
    Dispose PictBoxParms#    und aus dem Speicher entfernen

EndProc

-- Hauptprogramm --
Window 0,0-800,600 640,480
Usermessages 16
2 Bereiche für die Parameter und Rückgabewerte einrichten
Declare Box1#, Box2#
Dim Box1#, PictBoxStru
Dim Box2#, PictBoxStru
die Bereiche füllen

With Box1#

    .hWnd&     = %hWnd
    .X&        = 10
    .Y&        = 10
    .Width&    = 200
    .Height&   = 200
    .DlgID&    = 2000
    .BildPfad$ = LoadFile$ (Bild laden!,Bilddateien (JPG,JPEG,GIF)|*.JPG;*.JPEG;*.GIF)
    .Box&   - wird in der CreatePictureBox zugewiesen (der STATIC-Rahmen)
    .Web&   - wird in der CreatePictureBox zugewiesen (das HTML-Control)

EndWith

With Box2#

    .hWnd&     = %hWnd
    .X&        = 220
    .Y&        = 10
    .Width&    = 200
    .Height&   = 200
    .DlgID&    = 2001
    .BildPfad$ = LoadFile$ (Bild laden!,Bilddateien (JPG,JPEG,GIF)|*.JPG;*.JPEG;*.GIF)
    .Box&   - wird in der CreatePictureBox zugewiesen (der STATIC-Rahmen)
    .Web&   - wird in der CreatePictureBox zugewiesen (das HTML-Control)

EndWith

aufrufen der Prozedur
CreatePictureBox Box1#
CreatePictureBox Box2#
Hauptschleife

While 1

    Waitinput
    Case %Umessage=16:Break

Endwhile

Freigabe der beiden Controls je Aufruf
Destroywindow(Box1#.Web&)
Destroywindow(Box1#.Box&)
Destroywindow(Box2#.Web&)
Destroywindow(Box2#.Box&)
die Bereiche nicht vergessen
Dispose Box1#
Dispose Box2#
die DLL wieder entladen
FreeDLL Atl&
End

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




rainerhoefs
Hallo Michael,

habe Deine Source als Vorlage genommen und mir nur wenigen Zeilen in mein Programm eingebaut. Damit ist mein Problem gelöst.

Dir und allen anderen Profanern herzlichen Dank für die Hilfe.

Rainer
 
16.08.2006  
 




Jörg
Sellmeyer
Wie hast Du denn das Menü der rechten Maustaste ausgeschaltet?

Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
16.08.2006  
 




rainerhoefs
Hallo,

gar nicht, denn den Eintrag DRUCKEN möchte ich nutzen.

Rainer
 
17.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.403 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