vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Optische Verbesserung im eigenen Programm! 
Autor: Paradoxon101
Datum: 05.01.07 12:49

Hallo,
wollte euch mal fragen, was ihr so für Bildmaterial verwendet und wo ihr das herbekommt um eure Programme Optisch aufzuwerten. Hab mich mal im Netz so umgeschaut aber nichts brauchbares gefunden, vorallem sollte man auch auf das copyright achten.

z.B. ein passendes Hintergrundbild für die mainForm und eventuell ein paar nette Bilder für die Buttons...

wenn ihr ein paar gute Sites wisst lasst mich es bitte wissen ;)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Optische Verbesserung im eigenen Programm! 
Autor: AndyOG
Datum: 05.01.07 13:33

Hi,
meine Meinung ist ganz klar "weniger ist mehr".

Bis jetzt hat mich noch kein Tool mit Hintergrundbild oder Hintergrundfarben überzeugt und ein professionelles Tool mit Hintergrundbild gibt es glaub ich gar nicht.
Meist bekomme ich bei dem Anblick eher Augenkrebs

Ein Bild als Splashscreen reicht doch vollkommen. (Dafür benutzte ich meist Google , oder frage nen kollegen)

Mit schönen Icons dagegen kann man richtig was aus dem Programm rausholen. Dafür habe ich mir erst vor kurzem ein Tool geschrieben das mir die Icons aus Dll's extrahiert. (Es gibt aber unzählige tools dafür im internet. Ich wollte nur mal wissen wie das funktioniert und ein paar special Funktionen einbauen die ich bisher in keinem anderen Tool gefunden habe.

Mit freundlichen Gr??en,
Andy G.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Optische Verbesserung im eigenen Programm! 
Autor: Karl Klammer
Datum: 07.01.07 13:09

Hallo!

das mag sich nach Werbung anhören, aber ich nutze zur "optischen Verbesserung" vor allem die sev-Komponenten. Die haben meist XP-Stil o.ä., beim sevCmd3 sind bspw. jede Menge wirklich brauchbare und moderne Icons bereits integriert.

Um wiederum allen Form und Controls eine Anwendung - und letztlich allen meinen Anwendungen - ein einheitliches Look&Feel zu verleihen, verwende ich eine eigene ActiveX-Dll sozusagen als "stylesheet", welche die "Design"-Eigenschaften (Farben, Schriften, etc.) aller Controls eines Forms behandelt. Änderungen nehme ich bequem in der dll vor.
Ach ja: das gleiche gilt für die MsgBoxes. Auch hier habe ich eine eigene Dll, welche natürlich auch die Design-Vorlage nutzt.
Das war mal eine Menge Arbeit, aber dafür brauche ich jetzt nur noch eine Zeile code im Form_Load-Event eines Forms, um alle Controls entsprechend einzustellen.

Gruß



Das hat schon vielen geholfen!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Optische Verbesserung im eigenen Programm! 
Autor: Gateway
Datum: 07.01.07 20:06

Kannst du mal sagen wie du deinen "stylesheet", deine dll aufgebaut hast und was du damit so veränderst. Vll auch auch mal nen bsp hochladen. würd ma gern sehen wie das dann aussieht.

Wer Rechtschreibfehler findet kann sie behalten oder meinen Deutschlehrer verklagen.

In der Mitte von Schwierigkeiten liegen die M?glichkeiten. [Alber Einstein]

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Optische Verbesserung im eigenen Programm! 
Autor: Karl Klammer
Datum: 07.01.07 20:35

Gerne! Beispiel-Formcode:
Public myStyle As MUNStyle2.clsStyle
 
Private Sub Form_Load()
   Set myStyle = New myClsStyle.clsStyle
     myStyle.PrepareControls Me
end sub
Und hier mal die code für die Klasse, gekürzt, aber sinngemäß:

Public Sub PrepareControls(Form)
 
Dim ctrl As Control
 
On Error GoTo ErrorHandler
 
Form.BackColor = &HF5BE9E
 
For Each ctrl In Form
    Select Case True
 
Case TypeOf ctrl Is sevOutBar3.OutBar
    ctrl.ItemBackColorHover = &HC2EEFF
    ctrl.GroupHotTrackingColor = &HC2EEFF
    Case TypeOf ctrl Is sevMenuXP.MenuBar
        ctrl.Style = mnuOffice2003
    Case TypeOf ctrl Is sevDataGrid2.sevGrid
        If Not ctrl.Tag = "userdef" Then
          ctrl.CaptionBackColorFrom = RGB(89, 135, 214)
          ctrl.CaptionBackColorTo = RGB(0, 45, 150)
          ctrl.CaptionFont = "Arial"
          ctrl.CaptionFont.Bold = True
          ctrl.CaptionForeColor = vbWhite
          ctrl.ColumnHeaderBackColor = &H8000000F
          ctrl.BorderStyle = BORDER_NONE
          ctrl.BalloonTip = True
          ctrl.ToolTipIcon = ttInfoIcon
          ctrl.ToolTipTitle = ctrl.Caption
          ctrl.HighlightBackColor = RGB(49, 106, 197)
          ctrl.HighlightForeColor = vbWhite
          ctrl.CheckBoxStyle = CHECKBOX_XP
          ctrl.FilterAlign = FILTER_ALIGN_BOTTOM
          ctrl.FilterForeColor = &HC00000
          ctrl.FilterForeColorDisabled = &H404040
          ctrl.FilterBackColor = &HFFD6B5
          ctrl.FilterBackColorDisabled = &HD68759
          ctrl.BackColorOdd = &HFFFFFF
          ctrl.BackColorEven = &HFFFFFF
          ctrl.BackColor = &HFFFFFF
          ctrl.LinkColor = vbBlack
        End If
        ctrl.CaptionHeight = 24
        ctrl.ColumnHeaderHeight = 18
        ctrl.MaskColor = &HFF00&
        ctrl.UseMaskColor = True
 
    Case TypeOf ctrl Is sevTextBox.sevText
        ctrl.CaptionGradient = True
        ctrl.CaptionBackColorTo = &HFFD6B5
        ctrl.CaptionBackColor = &HFCF5F3
        ctrl.BackColorDisabled = &HE0E0E0
        ctrl.MaxLength = 255
        ctrl.ListWidth = 3000
 
    Case TypeOf ctrl Is sevCommand3.Command
        ctrl.BorderColorHover = &HB17F3C
        ctrl.BorderColorFocus = &HB17F3C
        ctrl.HoverColorTo = &HF5BE9E
        ctrl.BorderStyle = 2
    End Select
Next
 
  Exit Sub
ErrorHandler:
   MsgBox Err.Description
End Sub



Das hat schon vielen geholfen!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

mit XML absolute Anpassung Teil 1 
Autor: ScheibeNet
Datum: 08.01.07 11:03

Hallo Gateway,

ich benutze eine XML-Datei.

In dieser XML-Datei ist in einer hiera. Struktur Eigenschaften für Form und Form.Controls hinterlegt.

Per Funktion wird die XML eingelesen und die Form bzw. Controls in ihrem Layout angepasst. Somit ist eine absolute Anpassung an Corporate-Designs möglich. Firma x hat ein blaues Logo mit Rosa Schrift und Schriftart "Verdana". Durch die XML ist es somit möglich das Programm Layout-technisch auf das Corporate-Design zur "Laufzeit" zu generieren. Natürlich ist es so auch möglich, Corporate-Logos in Buttons, Toolbars, ... einzubinden.

Hier ein Beispiel

 
tion>
<Layout>
<properties>
<!-- ColorStyle 0=Blue, 1=Olive-Green, 2=Silver (default) -->
<property name="XPStyle" value="0" />
<!-- DefaultFont -->
<property name="FontName" value="Tahoma" />
<property name="FontSize" value="12" />
</properties>
</Layout>
<frmMain>
<controls>
<control name="ImLstSound" value="1">
<properties>
<!-- property name="maskcolor" value="8388863" -->
<!--property name="maskcolor" value="8651007" -->
<!--property name="usemaskcolor" value="true" -->
<!--property name="imageheight" value="32" -->
<!--property name="imagewidth" value="32" -->
</properties>
</control>
</controls>
</frmMain>
<frmHauptmenu>
<properties>
<!-- Startmenu Icons -->
<!-- Startmenu Systemsteuerung - Control Panel -->
<!-- property name="$SYSST$" file="AP_Window.icl" index="8" default="8" /-->
</properties>
</frmHauptmenu>
<frmBrowser>
<toolbar>
<properties>
<!-- Toolbar Style 0=normal3D (default) 1=Flat 2=XPStyle 3=OfficeStyle -->
<!-- property name="toolbarstyle" value="0" /-->
<!-- Toolbar ButtonLines 0=LineNone 1=LineTop 2=LineButtom (default) 3 = LineBoth -->
<!-- property name="barlines" value="3" /-->
<!-- Toolbar PreferedIconSize 0=16, 1=24 (default), 2=32, 3=48 /-->
<!--property name="size" size="1" /-->
<!-- Toolbar Button Icons -->
<!--property name="back" file="AP_Navigation.icl" index="23" /-->
<!--property name="forward" file="AP_Navigation.icl" index="17" /-->
<!--property name="stop" file="AP_Document.icl" index="8" /-->
<!--property name="refresh" file="AP_Document.icl" index="29" /-->
<!--property name="home" file="NS_Network.icl" index="43" /-->
<!--property name="print" file="OP_Devices.icl" index="74" /-->
<!--property name="mail" file="NS_Network.icl" index="71" /-->
</properties>
</toolbar>
</frmBrowser>
</PGMDefinition>


'
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

mit XML absolute Anpassung Teil 2 
Autor: ScheibeNet
Datum: 08.01.07 11:06

Public Sub ProgrammeinstellungenLesen(cControls As Object)
      'Funktion: Einlesen der Programmeinstellungen
      '
      'Knotenpunkte in der XML Datei
      Dim ndForm As MSXML2.IXMLDOMNode
      Dim ndFormProperty As MSXML2.IXMLDOMNode
      Dim ndProperty As MSXML2.IXMLDOMNode
      Dim ndControl As MSXML2.IXMLDOMNode
      Dim ndProgrammEinstellungen As MSXML2.IXMLDOMNode
      Dim ndLayout As MSXML2.IXMLDOMNode
 
      Dim nCount As Long
 
 
      'Hilfscontrol
      Dim TempControl As Control
      Dim c As Control
      'Zähler für Anzahl der Controls einer Form
      Dim iControlsZähler As Integer
      'Eigenschaftsname eines Kontrolls
      Dim sPropertyName As String
      'Wertangabe der Eingenschaft
      Dim sPropertyValue As String
      'Default-Propertywert
      Dim sPropertyDefault As String
      'Enabled-PropertyWert
      Dim sPropertyEnabled As String
      'Index für Icons
      Dim vntPropertyIconIndex As Variant
      'Icon File
      Dim sPropertyIconFile As String
 
6100    For Each ndForm In DokumentConfigLayoutXML.selectNodes("PGMDefinition/" _
  & cControls.name)
        'Einstellungen der Form setzen
6110        For Each ndProperty In ndForm.selectNodes("properties/property")
 
6120            If CheckXMLItem(ndProperty, "name") And CheckXMLItem( _
  ndProperty, "value") Then
 
6130                sPropertyName = ndProperty.Attributes.getNamedItem( _
  "name").Text
6140                sPropertyValue = ndProperty.Attributes.getNamedItem( _
"value").Text
6150                Err.Clear
 
6160                If sPropertyName <> "" And sPropertyValue <> "" Then
6170                    On Error Resume Next
6180                    CallByName cControls, sPropertyName, VbLet, _
  sPropertyValue
 
6190                    If Err.Number <> 0 Then
 
6200                        If Not EigenschaftenZuweisen(cControls.name, _
  sPropertyName, sPropertyValue, vbNullString) Then
6210                            Debug.Print cControls.name; sPropertyName; _
sPropertyValue
6220                        End If
 
6230                    End If
6240                    On Error GoTo 0
6250                    On Error GoTo ErrHandler
 
6260                End If
 
6270            End If
 
6280        Next
'... usw....
Public Function EigenschaftenZuweisen(sForm As String, _
                                      sPropertyName As String, _
                                      sPropertyValue As Variant, _
                                      Optional sControl As String) As Boolean
 
      'Hilfsvariable für Boolenwerte
      Dim bBool As Boolean
      Dim sTempForm As String
 
10    On Error GoTo ErrHandler
 
      'Werte zum vergleichen konvertieren
20      sPropertyName = LCase(sPropertyName)
30      sPropertyValue = LCase(sPropertyValue)
40      sTempForm = LCase(sForm)
50      sControl = LCase(sControl)
 
60      If sPropertyValue = "false" Or sPropertyValue = "falsch" Then
 
70          bBool = False
 
80      ElseIf sPropertyValue = "true" Or sPropertyValue = "wahr" Then
 
90          bBool = True
100     End If
      'Auswahl nach form
110     If sControl = "" Then
 
120         Select Case sTempForm
 
                Case "frmmain"
 
130                 Select Case sPropertyName
 
                        Case "font.name"
140                         frmMain.Font.name = sPropertyValue
150                     Case "font.bold"
160                         frmMain.Font.Bold = sPropertyValue
250                 End Select
 
260         End Select
 
270     Else
 
280         Select Case sTempForm
            'formular
                Case "frmmain"
290                 Select Case sControl
                        'Control
                        Case "xptaskbar"
300                         Select Case sPropertyName
                            'property
                                Case "left"
                                    'frmMain.xpTaskBar.Left = sPropertyValue
                                'Startbutton
310                             Case "startbuttonfont.name"
                                    'frmMain.xpTaskBar.StartButtonFont.Name = 
                                    ' sPropertyValue
320                             Case "startbuttonfont.bold"
                                    'frmMain.xpTaskBar.StartButtonFont.Bold = 
                                    ' bBool
'.
'usw...
Gruss

Marco
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: mit XML absolute Anpassung Teil 2 
Autor: Gateway
Datum: 08.01.07 14:52

Das mit der xml-datei sieht gut aus.
Wo genau liegen die vorteile? den dafür müsste man ja erstma den aufbau einer solchen datei lernen(denk ich is nich so schwer,habs aber noch nicht probiert).

Wer Rechtschreibfehler findet kann sie behalten oder meinen Deutschlehrer verklagen.

In der Mitte von Schwierigkeiten liegen die M?glichkeiten. [Alber Einstein]

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: mit XML absolute Anpassung Teil 2 
Autor: ScheibeNet
Datum: 08.01.07 15:10

Hallo Gateway,

der Vorteil liegt daran, das eine xml wie eine / mehrere Tabelle(n) aufgebaut ist. Die Datei wird im Browser wie ein Treeview angezeigt. Dadurch behält man sehr leicht den Überblick. In einer Textdatei sich schnell zurechtzufinden ist nicht so einfach ...
Desweiteren kann man gezielt auf einen "Node" (siehe treeview) zugreifen.

Noch ein Tip bei grösseren Anwendungen:
Mein Produkt besteht aktuell aus 10 Programmen die Untereinander kommunizieren müssen.

Ein vorgeschaltetes Updateprogramm sorgt dafür, das die aktuellen Komponenten jeweils zur Verfügung stehen. Dieses Programm beinhaltet nur Microsoft-Controls, damit ich alle anderen Tools updaten kann. Dieses Updateprogramm startet ein Controllprogramm, das die weiteren Programme startet und auf unerwarte Probleme überwacht. Das Controllprogramm startet als ERSTES eine Activex.exe die eine Globale Instanz einer Klasse allen anderen Programmen dieselbe Klasseninstanz zur Verfügung stellt. Hierdurch ist es möglich, ein Layout-Wechsel per RaiseEvent den einzelnen Programme mitzuteilen. Auch Programmtexte stehen so zentral zur Verfügung und was sonst noch so benötigt wird

Bei Fragen einfach FRAGEN, helfe gerne weiter und keine Sorge: Blöde Fragen gibt es nicht...

Gruss

Marco
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: mit XML absolute Anpassung Teil 2 
Autor: Gateway
Datum: 08.01.07 18:17

Mich interresiert die methode mit dem kontrol programm und der activeX-exe.
Da das aber nix mehr mit dem thema zu tun hab, schlag ich vor das zu verlegen?
Wäre das recht und wenn ja wohin^^?

Wer Rechtschreibfehler findet kann sie behalten oder meinen Deutschlehrer verklagen.

In der Mitte von Schwierigkeiten liegen die M?glichkeiten. [Alber Einstein]

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: mit XML absolute Anpassung Teil 2 
Autor: ScheibeNet
Datum: 08.01.07 18:52

Hallo Gateway,

Das mit der ActiveX.exe gehört normalerweise ja zu ActiveX.
Hier ein Link für ein VB-Beispielprojekt / Erklärung

http://www.kunsmann.de/VBProgrammierung/MehrfacheVerwendungVonObjektInstanzen.htm

Es besteht aber auch die Möglichkeit nicht mit CreateObjetct eine neue Instanz zu erstellen, sondern mit GetObject eine bestehende Instanz zu nutzen

http://www.microsoft.com/germany/msdn/library/components/GetObjectUnterstuetzungFuerActiveXServer.mspx?mfr=true

Beim Kontrollprogramm kommt die BackClassColVB6.dll von www.Desaware.com zum Einsatz. Aus Lizenzgründen darf ich hier keinen Quellcode posten! Sorry

Hier aber der Link

http://www.desaware.com/support/documents/files/SpyWorks.pdf

Siehe Seite 84 ff

Diese Funktion wird benötigt um zu prüfen ob ein Task "hängt" um in gegebenenfalls neu zu starten:
http://support.microsoft.com/kb/231844/de

Gruss

Marco
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel