| |
|
|
- Seite 1 - |
|
Manfred Barei | Hallo,
ich weiss nicht ob das ein Fehler ist und nur bei mir auftritt. Wenn ich auf dem Hauptfenster ein Bild als Hintergrund lege werden TabControlls nicht mehr angezeigt, alle anderen Controlls jedoch werden angezeigt, siehe Code.
Bitte einmal Testen. KompilierenMarkierenSeparieren $P+
SET("ERRORLEVEL",0)
DECLARE RICHEDIT1&,RICHEDIT2&
DECLARE STATICBITMAP1&,hbild&
DECLARE GRIDBOX1&
'----------Declarationen für Tabcontroll
DECLARE TabControl&,TabPage1&,TabPage2&,LastTab&
'-----------------------------------------------------------------
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
WINDOWSTYLE 538
WINDOWTITLE "Test"
WINDOW (%maxx/2 - 736/2),(%maxy/2 - 525/2) - 736,525
SET("TRUECOLOR",1)
DECLARE ENDE&
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",14,0,0,0,0
SETDIALOGFONT 1
'--hier ein eigenes Bild wählen---------------------------
STATICBITMAP1& = CREATE("HPIC",-1,"D:PROGRAMMEXPROFAN11EIGENE_PROGRAMMEKARTEIKARTENBMPKARTEN_TEXTUR.PNG")
'--so funktioniert es nicht mit dem TabControll
'hbild& = Create("BITMAP",%HWND,STATICBITMAP1&,0000,0000)
'--so funktioniert es mit dem TabControll--------------
DrawPic STATICBITMAP1&,0 ,0 ;0
'-----------TabControl--------------------------------------------
TabControl& = @CREATE("TABCTRL",%HWND,"Vorderseite",260,150,425,265)
TabPage1& = CONTROL("DIALOG","", $40081003,2,25,WIDTH(TabControl&)-10, HEIGHT(TabControl&)-30,TabControl&,0,%HINSTANCE)
SHOWWINDOW(TabPage1&,0)
@INSERTTAB(TabControl&,2,"Rückseite")
TabPage2& = CONTROL("DIALOG","", $40081003,2,25,WIDTH(TabControl&)-10, HEIGHT(TabControl&)-30,TabControl&,0,%HINSTANCE)
SHOWWINDOW(TabPage2&,0)
LastTab& = TabPage1&
RICHEDIT1& = CREATE("RICHEDIT",TabPage1&,"",2,0,425,-235)
RICHEDIT2& = CREATE("RICHEDIT",TabPage2&,"",2,0,425,-235)
SHOWWINDOW(LastTab&,1)
'-------------------------------------------
GRIDBOX1& = create("GridBox",%HWND,"lfd. Nr.;0;50;von;2;65;bis;2;65",3,032,145,175,280)
SETFOCUS(%HWND)
REPAINT 0
ENDE& = 0
WHILENOT ENDE&
WAITINPUT
If %KEY=2
ENDE&= 1
ElseIf @TABCHANGED(TabControl&)
SHOWWINDOW(LastTab&,0)
If GETACTIVETAB(TabControl&) = 0
LastTab& = TabPage1&
ElseIf GETACTIVETAB(TabControl&) = 1
LastTab& = TabPage2&
EndIf
SHOWWINDOW(LastTab&,1)
SETFOCUS(TabControl&)
EndIf
EndWhile
DeleteObject STATICBITMAP1&
end
Gruß aus der Heide Manfred |
|
|
| Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 05.10.2010 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
| Bei stürzt das Programm gleich ab weil im Code steht: KompilierenMarkierenSeparierenSTATICBITMAP1& = CREATE("HPIC",-1,"D:PROGRAMMEXPROFAN11EIGENE_PROGRAMMEKARTEIKARTENBMPKARTEN_TEXTUR.PNG")
aber die Datei nicht vorhanden ist (geschweige vom Laufwerk ^^) -
wenn ich aber: KompilierenMarkierenSeparieren schreibe funktionierts wunderbar und unter Win7 habe ich hier auch keine Anzeigeprobleme bzw. es wird alles korrekt gezeichnet.
(jetzt wiederum kein XP zur Hand...) |
|
|
| |
|
|
|
Thomas Freier | Du versteht es nicht. Er möchte gerne - warum auch immer- nicht : DrawPic STATICBITMAP1&,0 ,0 ;0 sondern : hbild& = Create("BITMAP",%HWND,STATICBITMAP1&,0000,0000)
Da ist das Tab-Control nicht mehr im Vordergrund im Gegensatz zur Gridbox und nun möchte Manfred wissen, warum das so ist. Muß er wohl mit DrawPic hinnehmen oder das Tab-Control auf hbild& legen. |
|
|
| |
|
|
|
E.T. | Da reagieren einige Elemente recht unterschiedlich: ein @CONTROL("DIALOG",... liegt auch im Hintergrund, ein @Create("Button,%HWnd,... liegt im Vordergrund
Zitat: ...oder das Tab-Control auf hbild& legen.
In der Hilfe steht dazu: "Hinweis; Wenn Dialogelemente auf dieser Bitmap liegen sollen, so ist bei ihnen trotzdem das Handle des übergeordneten Dialoges/Fensers anzugeben und nicht das des Bitmap-Controls. Damit wird gewährleistet, daß die Buttons, etc. wie gewohnt reagieren."
Also soll es ja so gemacht werden, wie es Manfred im Bsp. aufzeigt !
Eine Vereinheitlichung der Elemente in XProfan, so das dann auch alle Elemente im Vordergrund liegen, würde ich da für angebracht halten... |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 06.10.2010 ▲ |
|
|
|
|
| Mal mit einem Canvas [...] probiert? |
|
|
| |
|
|
|
Manfred Barei | Hallo iF,
wenn Du dir den Code genauer durchgelesen hättest dann hättest Du gesehen das ich über der Zeile mit dem STATICBITMAP1& einen Kommentar eingefügt habe in dem steht das mann ein eigenes Bild auswählen soll.
Wie Thomas richtig erkannt hat brauche ich es mit Create("BITMAP" und nicht mit DrawPic weil das nicht so Funktioniert wie ich es brauche
iF, ich habe das mit dem Canvas noch nicht so ganz verstanden aber ich werde es damit einmal probieren.
Fals noch jemand eine andere möglichkeit hatt, ich bin mit fast allem einverstanden, ich muß es nur verstehen.
Gruß Manfred |
|
|
| Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 06.10.2010 ▲ |
|
|
|
|
|
wenn Du dir den Code genauer durchgelesen hättest dann hättest Du gesehen das ich über der Zeile mit dem STATICBITMAP1& einen Kommentar eingefügt habe in dem steht das mann ein eigenes Bild auswählen soll.
Jetzt biste ungerecht. Ich habe den Code durchaus genau angesehen und _deshalb auch erkannt das im Gegensatz zum Code im Phorum hPic statt Bitmap angewandt wird - also ein "Bild" statt ein Control und Du schreibst oben ja auch "ein Bild als Hintergrund" und nicht ein Bitmap-Static. Mein hNewPic-Hinweis war doch ein Tip wie das Beispiel hätte einfacher aussehen können.
"Wenn ich auf dem Hauptfenster ein Bild als Hintergrund lege" - steht im Eingangsposting und dies war für mich auch "schlüssig" weil Bitmaps ja scheinbar dem TabControl kein Neuzeichnen senden (was ich aber höchstens vermute).
Drum hatte ich Thomas auch nicht verstanden mit "Du versteht es nicht. Er möchte gerne - warum auch immer- nicht : DrawPic", denn das Eingangsposting weicht in Code und Text von dem Bitmap-Posting hin zum hPic-Posting ab.
Ist aber "wurscht" - wir finden schon einen Code der passt.
Was genau willst Du letztendlich erreichen? Das das Hintergrundbild auch einfach _nachträglich geändert werden kann? Wenn nicht dann wäre doch das hPic-Zeichnen auf hWnd optimal und man könnte auch mal Canvas auf DLG probieren.
Solch ein Canvas wie von der canvas.inc hergebildet kennt 2 "Modi". Der erste Modi bedeutet soviel wie "Subclasse mir Control/ Dialog XYZ und zeichne mir darauf ein hPic welches man ständig auch ändern kann wie man will einfach per auf-hPic-Zeichnen".
Der zweite Modi ((wenn mehr als 1 Param angegeben bei create) erzeugt ein Static in angegebener Größe und legt darauf ein hPic welches man ständig auch ändern kann wie man will einfach per auf-hPic-Zeichnen.
So könnte man sagen Modi2 ist wie ein Bitmap-Static mit dem Unterschied auch nachträglich einfach darauf zeichnen zu können ohne Flimmern etc., Modi1 zeichnet halt auf einem beliebigen Control solch hPic.
Könnte man sagen canvas um "hPic an Control kleben ohne selbst um Neuzeichnen kümmern zu müssen". |
|
|
| |
|
|
|
E.T. | Zitat: "..."hPic an Control kleben ohne selbst um Neuzeichnen kümmern zu müssen"
Das muss ich wohl doch auch gleich (also wenn Zeit ist...) mal ausprobieren....
Aber das irgendwelche Elemente in Xprofan "vorn" oder "hinten" liegen (vom Bild aus gesehen), sollte doch vereinheitlicht werden (Ah, Wunsch eingeben...). Ich hatte kürzlich auch erstaunt geschaut, als mein "änderbares Hintergrundbild" beim erzeugen und sichtbar machen eines (@Control(...)-Statics einfach nicht in den Hintergrund wollte... |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 07.10.2010 ▲ |
|
|
|
|
| Man darf halt nicht annehmen dass die Z-Achse sich auch in jedem Fall optisch auswirkt - wenn ein hintenliegendes Control zeichnet und nicht an vordere Controls das Neuzeichnen anweist oder Sektionen als "beschädigt" markiert dann ist natürlich das hintenliegende Control optisch vorn. ^^ |
|
|
| |
|
|
|
E.T. | Also XProfan mit 3D-Brille (zumindest beim testen - Intepreter), damit man sieht, wenn oben vorn und hinten links ist ... Hihi |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 07.10.2010 ▲ |
|
|
|
|
| Man kann ja auch einen Button auf ne Listbox legen und diese ListBox auf ne ChoiceBox und diese ChoiceBox auf ein Static - Anzegefehler produzieren kann ja nicht das Thema sein. ^^ |
|
|
| |
|
|
|
Manfred Barei | Hallo iF,
Entschuldige bitte, ich habe mich wohl falsch ausgedrückt. Ich brauche das Bild als statisches (nicht veränderliches) Control, damit ich mich nicht um das neu Zeichnen kümmern muß.
Gruß |
|
|
| Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 07.10.2010 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
| Kein Problem und verstehe ich richtig, dass Du dies eben für Dialoge möchtest weils auf dem hWnd ja eh kein Problem ist/ wäre einfach ein hPic zu zeichnen? |
|
|
| |
|
|