BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Visual Basic Tips & Tricks
hWnd
Публикувано на: 01-05-2004, 05:42
Quote Post


Group Icon
Име: Г.
Група: VIP
Ранг: Почетен член

Мнения: 1310
Регистриран на: 10.04.04



Тук може да публикувате интересен код, който не се среща често, но може много да улесни работата ви! :-))


--------------------
"Programs must be written for people to read, and only incidentally for machines to execute."

-- Abelson & Sussman, SICP
PMEmail Poster
Top
hWnd
Публикувано на: 01-05-2004, 05:52
Quote Post


Group Icon
Име: Г.
Група: VIP
Ранг: Почетен член

Мнения: 1310
Регистриран на: 10.04.04



Достъп до регистратурата посредством WSH (Windows Scripting Host)

Запис:
CODE
Dim x as Object
Set x = CreateObject("Wscript.Shell")
x.RegWrite Key, Value, Reg_Type

Четене:
CODE
Dim x as Object
Set x = CreateObject("Wscript.Shell")
x.regread Key
Value = x.regread(Key)

Триене:
CODE
Dim x as Object
Set x = CreateObject("Wscript.Shell")
x.regdelete Key


--------------------
"Programs must be written for people to read, and only incidentally for machines to execute."

-- Abelson & Sussman, SICP
PMEmail Poster
Top
hWnd
Публикувано на: 31-07-2004, 13:22
Quote Post


Group Icon
Име: Г.
Група: VIP
Ранг: Почетен член

Мнения: 1310
Регистриран на: 10.04.04



Правене на прозрачна форма (за Windows 2K/XP)

CODE
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Const GWL_EXSTYLE = -20
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2

Private Sub Form_Load()
   SetWindowLong Me.hWnd, GWL_EXSTYLE, WS_EX_LAYERED
   SetLayeredWindowAttributes Me.hWnd, 0, 100, LWA_ALPHA
End Sub


--------------------
"Programs must be written for people to read, and only incidentally for machines to execute."

-- Abelson & Sussman, SICP
PMEmail Poster
Top
hWnd
Публикувано на: 31-07-2004, 13:49
Quote Post


Group Icon
Име: Г.
Група: VIP
Ранг: Почетен член

Мнения: 1310
Регистриран на: 10.04.04



Една процедурка за set-ване на шрифт на всички контроли

CODE
Public Sub SetFont(TargetForm As Object, FontName As String, Optional FontSize As Integer, Optional FontCharset As Integer)
   On Error Resume Next
   Dim objControl As Object
   For Each objControl In TargetForm.Controls
       If objControl.Tag <> "FontLocked" Then
           objControl.Font.Charset = FontCharset
           objControl.Font.Name = FontName
           objControl.Font.Size = FontSize
       End If
   Next
End Sub


Пример:
CODE
Private Sub Command1_Click()
   SetFont Me, "Тahoma", 6, "204"
End Sub


Последните два аргумента не са задължителни:
"6" - големина на шрифта
"204" - coding на charset-а: за кирилица да се използва "204"


--------------------
"Programs must be written for people to read, and only incidentally for machines to execute."

-- Abelson & Sussman, SICP
PMEmail Poster
Top
hWnd
Публикувано на: 31-07-2004, 14:28
Quote Post


Group Icon
Име: Г.
Група: VIP
Ранг: Почетен член

Мнения: 1310
Регистриран на: 10.04.04



Използвайте XP стил! :-))

1) Дръпнете "XP Theme Support for Built-in VB Controls"

2) Add-вате го в проекта и при "Form_Load":
CODE
Private Sub Form_Load()
   PrepareThemeSupport
   FixThemeSupport Controls
End Sub


3) Слагате в папката на програмата или в ресурсен файл manifest файл:
CODE
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
 xmlns="urn:schemas-microsoft-com:asm.v1"
 manifestVersion="1.0">
<assemblyIdentity
   name="tfx"
   processorArchitecture="x86"
   version="5.1.0.0"
   type="win32"/>
<description>Shell</description>
<dependency>
   <dependentAssembly>
       <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls"
           version="6.0.0.0"
           processorArchitecture="x86"
           publicKeyToken="6595b64144ccf1df"
           language="*"
       />
   </dependentAssembly>
</dependency>
</assembly>

Manifest файла трябва да бъде найменован така: EXEName.exe.manifest


--------------------
"Programs must be written for people to read, and only incidentally for machines to execute."

-- Abelson & Sussman, SICP
PMEmail Poster
Top
hWnd
Публикувано на: 31-07-2004, 22:01
Quote Post


Group Icon
Име: Г.
Група: VIP
Ранг: Почетен член

Мнения: 1310
Регистриран на: 10.04.04



Използвайте външни скриптове, за да разширите възможностите на приложението си!

С помощта на Microsoft ScriptControl, можете да добавите възможност за изпълнение на скриптове в приложенията си.
Поддържаните езици са Visual Basic Scripting Edition (VBScript) и JScript

Пример:

- Във Visual Basic, създайте нов проект (Form1 бива създадена по подразбиране).
- Добавете "Microsoft Script Control 1.0" от Components
- Добавете Script control (ScriptControl1), text box (Text1), и бутон (Command1) във формата. Сложете свойството "MultiLine" на text box-a на TRUE.
- Добавете нов class (clsShared)
- Добавете следния код във "Form1":
CODE
Option Explicit
Dim HostApp As New clsShared

Private Sub Command1_Click()
   With ScriptControl1
       .Reset
       .Language = "VBScript"
       .AllowUI = True
       .AddObject "HostApp", HostApp, True
       .AddCode Text1.Text
   End With
End Sub

-Това напишете в clsShared:
CODE
Option Explicit

Public Sub ShowMsg(Msg As String, Caption As String)
  MsgBox Msg, , Caption
End Sub

Property Get ActiveForm() As Object
On Error Resume Next
  Set ActiveForm = Form1
End Property


- Пуснете програмата и в Text1 напишете:
CODE
HostApp.ShowMsg "съобщение", "заглавие"
HostApp.ActiveForm.Caption= "Заглавие :-))"


--------------------
"Programs must be written for people to read, and only incidentally for machines to execute."

-- Abelson & Sussman, SICP
PMEmail Poster
Top
awdawd
Публикувано на: 24-10-2005, 10:05
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 60
Регистриран на: 23.08.05



А относно прозрачната форма...дали ще е възможно по някакъв начин...примерно в таймер някъв в определен интервал от време да става все по-плътна и по-плътна докато достигне нормалния си вид...само, че не изведнуж, а постепенно. Дай някъв help...
PMEmail Poster
Top
PxL
Публикувано на: 24-10-2005, 12:22
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 2334
Регистриран на: 26.04.05



QUOTE (awdawd @ 24-10-2005, 10:05)
А относно прозрачната форма...дали ще е възможно по някакъв начин...примерно в таймер някъв в определен интервал от време да става все по-плътна и по-плътна докато достигне нормалния си вид...само, че не изведнуж, а постепенно. Дай някъв help...

Може да се ползва Sleep функцията на Windows
за VBS:
CODE
WScript.Sleep милисекунди

и за VB
CODE

 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

CODE

 Sleep милисекунди


Това мнение е било редактирано от PxL на 24-10-2005, 12:25


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
hWnd
Публикувано на: 08-06-2006, 00:36
Quote Post


Group Icon
Име: Г.
Група: VIP
Ранг: Почетен член

Мнения: 1310
Регистриран на: 10.04.04





--------------------
"Programs must be written for people to read, and only incidentally for machines to execute."

-- Abelson & Sussman, SICP
PMEmail Poster
Top
nikoleto
Публикувано на: 18-12-2006, 20:11
Quote Post



Име: Никола Красимиров Цеков
Група: Потребител
Ранг: Посетител

Мнения: 91
Регистриран на: 06.12.06



Питам за въпроса за XP-стил, нразбрах къде трябва да напиша кода който е след 3)
съжалаявам че питам това можеби е проста работа а и като си сваля 'XP theme support..' нещо незацепвам как по-точно да го използвам мога ли да помоля автора на това да ми го разясни повече
Благодаря!!!
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0