| |
|
|
- Page 1 - |
|
Roberto Neu | Ich möchte circa ein Trackmenu die Funktion "EINFÜGEN" machen das Trackmenu habe ich schon erstellt aber ich finde den Befehl per EINFÜGEN nicht |
|
|
| |
|
|
|
| |
|
- Page 1 - |
|
Nico Madysa | Das mit den Koordinaten ist doch ganz einfach. Bei allen BMP-Befehlen gibst du die Koordinaten an, die du haben willst. LoadSizedBMP "Test.bmp", X,Y - DX,DY ; 0
X und Y geben die Koordinaten der oberen linken Ecke des Bildes an. 0,0 wäre die obere linke Ecke deines Fensters. DX und DY stehen per die Breite des Bildes. Soll das Bild also das gesamte Fenster einnehmen, dann ist dies hier dein Freund: LoadSizedBMP "Test.bmp", 0,0 - width(%hWnd),height(%hWnd) ; 0 |
|
|
| |
|
|
|
Roberto Neu | Kopiere mal bitte mein Code und mache einen Screenshot. Dann geh in mein Programm mache einen Rechtsklick auf die Bildfläche und dann auf einfügen klicken. Des fügt den Screen immer komisch ein |
|
|
| |
|
|
|
Nico Madysa | Argh! Verzeih mir, doch jetzt haben wir beide das Prädikat "Flitzbiepe" verdient. Der Befehl è ClipLoadBMP -- nichtClipLoadSizedBMP, diesen gibt es nämlich nicht. Daher ist es auch nicht verwunderlich, dass er das Bild in Originalgröße ausgibt. ClipLoadBMP hat nur 3 Parameter, während du 5 angegeben hast. Willst du das Bild aus der Zwischenablage verzerren, dann musst du einen Umweg nehmen.
1. Weg: Über die Speicherbitmap KompilierenMarkierenSeparierenDu erzeugst die Speicherbitmap in der Größe des Bildschirmfotos
MCls %MaxX,%MaxY,RGB(255,255,255)
Du wechselst in die Speicherbitmap
StartPaint -1
Und zeichnest in diese das Bild aus der Zwischenablage
ClipLoadBMP 0,0 ; 0
Dann wechselst du wieder auf dein Hauptfenster
EndPaint
Dann holst du das Bild aus der Zwischenablage
%BMPX und %BMPY sind Breite und Höhe des letzten gezeichneten Bildes
Nach dem Pfeil kommen die Koordinaten, an die du das Bild setzen willst
MCopySizedBMP 0,0 - %BMPX,%BMPY > 201,92-160,120 ; span>
2. Weg: Über das Handle eines Bildes KompilierenMarkierenSeparierenEine Variable deklarieren
declare hPic&
Dann weist du dieser Variablen das Handle zu, das auf ein Bild verweist
Dieses Bild ist aus der Zwischenablage und hier 320x240 Pixel grande
hPic& = Create("hSizedPic",0,"&CLPBMP",320,240,0)
Dann wird das Bild dorthin gezeichnet, wohin du es haben willst
DrawPic hPic&,201,92 ; 0
Brauchst du das Handle eines Bildes nicht mehr, so vergiss nicht
den Speicher mit DeleteObject wieder freizugeben
DeleteObject hPic&
|
|
|
| |
|
|
|
Roberto Neu | Und wie soll ich das jetzt in den Code bekommen?? Bei mir steht immer Befehl Startpaint unbekannt |
|
|
| |
|
|
|
Nico Madysa | Jaa, ich hab mich verschrieben. Der Befehl è StartPaint, nicht StarPaint. Ich habe den Quelltext korrigiert, wenn du ihn an ClipLoadBMPs Stelle setzt, sollte es funktionieren.
Aber bitte nicht nur kopieren, sondern auch verstehen. |
|
|
| |
|
|
|
Roberto Neu | Guck dir das mal an da kommt was ganz komisches raus KompilierenMarkierenSeparierendeclare Name$, text$, titeltext$, text2$, titeltext2$, ende%
WindowTitle "BMPviewer 2 Chrome"
Window 50,20 - 800,600
CreateMenu 100,20
UsePen 0,2,RGB(192,192,192)
RecTangle 200,91 - 600,500
AppendMenu 100,"&Bild Laden"
AppendMenu 101,"&by Roberto Neu"
AppendMenu 102,"&Screenshot"
AppendMenu 103,"&Speichern unter"
AppendMenu 104,"&Beenden"
TrackMenu 672,92
if %MouseKey = 2
CreateMenu
AppendMenu 1,"Einfügen"
TrackMenu %MouseX,%MouseY
Case MenuItem(1) : ClipLoadBMP 201,92-397,400;1
Du erzeugst die Speicherbitmap in der Größe des Bildschirmfotos
MCls %MaxX,%MaxY,RGB(255,255,255)
Du wechselst in die Speicherbitmap
StartPaint -1
Und zeichnest in diese das Bild aus der Zwischenablage
ClipLoadBMP 0,0 ; 0
Dann wechselst du wieder auf dein Hauptfenster
EndPaint
Dann holst du das Bild aus der Zwischenablage
%BMPX und %BMPY sind Breite und Höhe des letzten gezeichneten Bildes
Nach dem Pfeil kommen die Koordinaten, an die du das Bild setzen willst
MCopySizedBMP 0,0 - %BMPX,%BMPY > 201,92-160,120 ; 0
endif
Case @MenuItem(100): Name$ = @LoadFile$("Bilddateien","*.BMP")
While Name$ <> ""
LoadSizedBMP Name$,201,92-397,400;0
WindowTitle "BMPviewer 2 Chrome - [" + Name$ + "]"
WaitMouse
Name$ = @LoadFile$("Bilddateien","*.BMP")
Wend
Case @MenuItem(101) :
Text$ = "BMPviewer 1.0 by Roberto Neu"
Titeltext$ = "Roberto Neu"
Messagebox(Text$,Titeltext$,0)
Case @Menuitem(102) :
Text2$ = "Wenn sie einen Screenshot machen möchten.
Klicken sie auf die Taste PrtSc/Druck.
Gehen sie dan wieder in dieses Programm
Machen sie einen rechtsklick/Einfügen"
Titeltext2$ = "Screenshot"
Messagebox(Text2$,Titeltext2$,0)
Case @MenuItem(103) : SaveBmp "Bild1.BMP",10,10 - 200,140
waitkey
end
ef='./../../references-fonction/xprofan/end/'>End
|
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
Nico Madysa | Nochmals: Diese Zeile KompilierenMarkierenSeparieren Ist purer Blödsinn. Erstens hat ClipLoadBMP nur drei Parameter (also è es im besten Falle ClipLoadBMP 201,92;1), zweitens gibst du das Bild in deinem Code zweimal aus. Einmal in deinem ClipLoadBMP und einmal auf meine Art und Weise. Deswegen der Rat, auch zu verstehen, was du da hineinkopiert hast. |
|
|
| |
|
|
|
Roberto Neu | Aber wenn man das so schreibt
ClipLoadBMP 201,92;1)
Kann man nur angeben wo das Bild sein soll und nicht wie grande es sein soll |
|
|
| |
|
|
|
Jörg Sellmeyer | Welche Profanversion nutzt Du denn? Wenn Du XProfanFree benutzt, sieh Dir mal @Create("hPic",N,S)
"&CLPBMP" - Es wird eine Bitmapkopie der aktuellen Zwischenablage erstellt, wenn diese eine Bitmap enthält. an. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 07.07.2009 ▲ |
|
|
|
|
Thomas Freier | Jörg: [...]
Roberto Neu Guten Tag Ich habe mir letzte Woche XProfan 10 free runtergeladen und dann ein bisschen herumexperimentiert.
Und iF hatte so gut mit ihm angefangen. Naja.... |
|
|
| |
|
|
|
| Ich zumindest verliere Interesse gerne dann, wenn ich glaube, dass irgendwas faul ist.
Hierbei ist einzig mein Gefühl ausschlaggebend - bitte nicht überbewerten. |
|
|
| |
|
|
|
Nico Madysa | Roberto Neu, Beitrag=53115, Zeitpunkt=06.07.2009
Aber wenn man das so schreibt
ClipLoadBMP 201,92;1)
Kann man nur angeben wo das Bild sein soll und nicht wie grande es sein soll
Das versuche ich dir zu sagen.
Deswegen habe ich dir den Umweg circa die Speicherbitmap vorgeschlagen. Da du den Inhalt der Zwischenablage nur in Originalgröße zeichnen kannst, musst du ihn in Originalgröße in die Speicherbitmap zeichnen. Von dort aus kannst du dann das Bild kopieren und währenddessen verzerren, wie du willst. |
|
|
| |
|
|