Italia
Foro

Controls selbst skalieren

 
- Page 1 -



ByteAttack
Hallo!

Ich möchte gerne ein Datenbank-Frontend erstellen.
Dazu möchte ich meine Controls in dem Programm selbst ändern und skalieren können. Ähnlich wie in Access.
(siehe Bild: Nur als Beispiel)

Danke im Voraus.

1 kB
Hochgeladen:12.09.2011
Downloadcounter210
Download
 
12.09.2011  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »

Ungefähr sowas?  [...] 



Ist aber schon sehr alt (2005).

16 kB
Hochgeladen:17.09.2011
Downloadcounter126
Download
 
17.09.2011  
 




Nico
Madysa
Ich erinnere mich dunkel, da bereits Lösungen gesehen zu haben. Frank Abbing potuto eine DLL dazu anbieten, und ich meine, iF hätte da auch schon was hingelegt.

Für mich persönlich sieht's stark nach einem fortgeschritteneren Subclassing-Problem aus.
 
12.09.2011  
 




ByteAttack
Habe das Foro schon durchsucht. Vielbin ich auch einfach nur zu blöde
 
12.09.2011  
 




Dietmar
Horn
Hallo Marc,

in meinem inzwischen etwas angestaubten XProfan-Manager habe ich etwas dazu gefunden. Es ist zwar nicht genau das, was Du meinst, aber vielleicht kannst Du Dir das ja per Deine Zwecke anpassen:
'Größenänderung von Steuerelementen in Echtzeit
 $I PROFALT.INC'Include-File per Quellcodes früher Profan-Versionen (vor XProfan 11.0), die noch keine Operatoren nutzen.
'Bei Verwendung von  XProfan < 11.0 kann die obige Include-Zeile "$I PROFALT.INC" bedenkenlos gelöscht werden.
'Im folgenden Beispiel wird die Größenänderung eines Steuerelementes,
' in diesem Fall ein Button, in Echtzeit demonstriert. Mit Veränderung der Dimensione des Fensters
' verändert sich auch die Dimensione des Buttons.
'-Begin-----------------------------------------------------------------
'-HeaderFiles---------------------------------------------------------
 $H Windows.ph
 $H Messages.ph
'-Variables Declaration-----------------------------------------------
Declare Ende%, OldWndProc&, hButton%
'-CallBack Routine----------------------------------------------------

Proc ChangeControl

    Parameters hWnd&, Message&, wParam&, lParam&
    Declare btnHeight&

    If Message& = ~WM_SIZE

        '-Abfrage, damit Button nicht kleiner 16 Pixel Hoehe------------

        If @Height(%hWnd) / 5 < 16

            btnHeight& = 16

        Else

            btnHeight& = @Height(%hWnd) / 5

        EndIf

        '-Groesse des Buttons aendern-----------------------------------
        SetWindowPos hButton%, 10, 34 - @Width(%hWnd) - 20, btnHeight&

    EndIf

    Return ~CallWindowProc(OldWndProc&, hWnd&, Message&, \
    wParam&, lParam&)

EndProc

'-Main----------------------------------------------------------------
'-Erweitertes MessageHandling abschalten----------------------------
Set("FastMode", 1)
'-Fenster oeffnen und GUI aufbauen----------------------------------
Window 0, 0 - 640, 480
WindowTitle "Größenänderung von Steuerelementen in Echtzeit"
'-Hintergrundfarbe des Fensters setzten---------------------------
Declare Color&, Red%, Green%, Blue%
Color& = ~GetSysColor(~COLOR_3DFACE)
Red% = @GetRValue(Color&)
Green% = @GetGValue(Color&)
Blue% = @GetBValue(Color&)
Cls @RGB(Red%, Green%, Blue%)
'-----------------------------------------------------------------
@Create("Text", %hWnd, "Ändere die Dimensione dieses Fensters", 10, \
10, 250, 20)
hButton% = @Create("Button", %hWnd, "Ende", 10, 34, \
@Width(%hWnd) - 20, @Height(%hWnd) / 5)
'-ProgramMainRoutine mit CallBack umleiten auf eigene---------------
OldWndProc& = ~GetWindowLong(%hWnd, ~GWL_WNDPROC)
~SetWindowLong(%hWnd, ~GWL_WNDPROC, @ProcAddr("ChangeControl", 4))
'-Dialog-Schleife---------------------------------------------------
Clear Ende%

WhileNot Ende%

    WaitInput

    If %Key = 2

        Ende% = 1

    ElseIf @Clicked(hButton%)

        Ende% = 1

    EndIf

EndWhile

'-Urspruengliche ProgramMainRoutine wieder herstellen---------------
~SetWindowLong(%hWnd, ~GWL_WNDPROC, OldWndProc&)
'-End-------------------------------------------------------------------
End

Saluto
Dietmar
 
XProfan X2
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
12.09.2011  
 




Thomas
Freier
Ich verwende ~ws_thickFrame   beim RTFEdit
 $H Windows.ph
cls
var RtfDll&=usedll("riched32.dll")
var Edit&=control("RichEdit20A","",$500050c4,50,50,100,28,%hwnd,5000,0)
~SetWindowLong(Edit&,~GWL_EXSTYLE,0)
settext Edit&,"Text eingeben"
SetStyle Edit&,GetStyle(Edit&) | ~ws_thickFrame

while 0=0

    waitinput

EndWhile

destroywindow(Edit&)
freedll rtfDll&

und bei den ListViews mit Franks dll
 $H Windows.ph
Declare listview&,lvdll&,text$,bytes&,bereich#,x&,y&,z&
Def GetSysColor(1) !"USER32","GetSysColor"
 $I Listview_Funktionen.inc
lvdll&=usedll("Listview.dll")
SetTrueColor 1
Windowstyle 543
Windowtitle "Listview.dll Dimensione ändern..."
Window 0,0-800,600
Cls GetSysColor(15)
Usefont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
x&=MixRGBs(GetSysColor(15),$00ffffffff)
listview&=CreateListView(%hwnd,%hinstance,0,x&,-1,$11)
SetStyle listview&,GetStyle(listview&) | ~ws_thickFrame
EnableEdits(listview&,1)
InsertColumn listview&,"Name",80,0
InsertColumn listview&,"Index",80,1
InsertColumn listview&,"Bewertung",96,2
InsertColumn listview&,"Kommentar",308,0
SetItem listview&,"A",1,"befriedigend","Sieht ganz anständig aus"
SetItem listview&,"DOS",2,"gut","Klar verständlich"
SetItem listview&,"Eimer",3,"ungenügend","Nicht mal Mülltonnen-Oskar würde dort reinkriechen"
SetItem listview&,"Gesicht",4,"ungenügend","Komisches Gesicht"
SetItem listview&,"Müll",5,"mangelhaft","Nicht erkennbar"
AutoSortListview listview&,0,1,2,1,1
SortManual(listview&,2,0)
ShowListView(listview&,8,76,452,280)
InitMessages(%hwnd)

While 1

    waitinput
    Case %key=2:BREAK

Wend

DestroyWindow(listview&)
CloseMessages(%hwnd)
freedll lvdll&
 $I Listview_Dispose.inc
End

Auf ein einfaches EDIT angewendet ging es nicht. Aber vielleicht hilft es trotzdem weiter.
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.09.2011  
 




Thomas
Freier
Mit einem Edit gehts auch
 $H Windows.ph
Def GetSysColor(1) !"USER32","GetSysColor"
cls GetSysColor(15)
Usefont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
var Edit&= Control("EDIT","",$54010000,150,50,140,22,%hwnd,0,%hinstance, $00000001)
~SetWindowLong(Edit&,~GWL_EXSTYLE,0)
settext Edit&,"Text eingeben"
SetStyle Edit&,GetStyle(Edit&) | ~ws_thickFrame

while 0=0

    waitinput
    SetWindowPos edit&=150,50-Width(edit&),22;0

EndWhile

destroywindow(Edit&)
Auch, wenn ich mit dem Rand nicht gerade glücklich bin und ihn nicht ändern kann.
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.09.2011  
 



Tip: ControlSpy von Microsoft -

ich find den optimal.

Ob das da im Access ein einfaches Control ist weiß ich nicht aber es gibt so viele Wege sowas dazustellen und auch sowas zu skalieren.

Eine Variante hatte ich damals in der (mtlw. uralten) Lists-Pcu als Demo mitgeliefert:  [...] 

Vlt. als kl. Anregung.

Ansonsten einfach per wm_mouseMove sowie wm_lButtonDown subclassen und setCursor-API anwenden.
 
13.09.2011  
 




ByteAttack
Danke per die Antworten. Muss da jetzt erstmal überall durchsteigen. Danke!
 
13.09.2011  
 




ByteAttack
OK! Ist ja alles schön und gut, aber leider nicht das Richtige dabei. Mir war mal so, als hätte mal jemand schon was dazu gemacht, kann es aber nicht finden.
 
17.09.2011  
 



Wie genau soll es denn funktionieren bzw. was soll denn wann passieren?
 
17.09.2011  
 




ByteAttack
Na wie z.B. beim Object Creator oder Winfellow.
Will ein Programm machen, wo man sich seine Editfelder, Comboboxen und Multiedits selber erstellen und skalieren kann, per eine DB-App.

1 kB
Hochgeladen:17.09.2011
Downloadcounter112
Download
 
17.09.2011  
 



Ungefähr sowas?  [...] 



Ist aber schon sehr alt (2005).

16 kB
Hochgeladen:17.09.2011
Downloadcounter126
Download
 
17.09.2011  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

8.351 Views

Untitledvor 0 min.
Tommy08.08.2021
Jörg Sellmeyer23.06.2020
Peter Max Müller27.10.2017
Chregu Mueller23.01.2017
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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