Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

ЧаВО от клуба программистов Весельчак У


Информационный Канал Subscribe.Ru


Выпуск от 5.02.2004
" ЧАВО от клуба программистов ВесельчакУ "

Доброго времени суток уважаемые подписчики!
Сегодня я снова рад возможности представить Вам очередную порцию ЧАВОшек вместе с новым дизайном странички. Разумеется, то что Вы видите - это не окончательный вариант! Если у Вас есть предложения по поводу контента и/или внешнего вида страницы рассылки - пишите мне на andrey@kuban.info, а лучше приходите на форум - обсудим все вместе! Заканчивается рабочая неделя и мне остаётся только пожелать вам удачных выходных!

Ведущий рассылки Release.

ВесельчакУ (С) Громозека
 
Официальная страница ЧАВО
Форум клуба ВесельчакУ
Обновления из раздела Новичкам

Чем лучше всего делать Setup для моей программы?

Можно сделать SFX WinRar'ом. Быстро, удобно, и размер готового архива очень маленький.
Wise Installer, CreateInstall (http://www.createinstall.com/)
Последние обновление: 2004-01-31 13:44
Опубликовал: из архива

Обновления из раздела NET
Как использовать API-функции в C#?

Для использования в программе API-функций надо, во-первых, добавить постранство имен System.Runtime.InteropServices, во-вторых, добавить заголовок нужной API-функции и в-третьих,
вызвать ее в нужном месте.

using System;
...
//Добавление пространства имен
using System.Runtime.InteropServices;
...
//Добавление заголовка
[DllImport("user32.dll", EntryPoint="MessageBox")]
public static extern int MessageBox(int hWnd,
String strMessage, String strCaption, uint uiType);
...
private void button1_Click(object sender, System.EventArgs e)
{
//Вызов API-функции
MessageBox(0, "Hello!", "Caption", 0);
}
...

В указанном примере при нажатии на кнопку выскочит MessageBox (путем вызова соответствующей API-функции).

Последние обновление: 2004-01-24 20:52
Опубликовал: Громозека

В ToolBar'e есть несколько кнопок, как определить на какой кнопке кликнули?

У класса ToolBar есть событие ButtonClick, аргументом этого события является класс ToolBarButtonClickEventArgs, содержащий в том числе и свойство Button, идентифицирующее кнопку, по которой щелкнули. Чтобы узнать индекс этой кнопки в коллекции ToolBar.Buttons нужно вызвать метод IndexOf этой коллекции (ToolBarButtonCollection):


void OnToolBarButtonClick(object sender, ToolBarButtonClickEventArgs e)
{
switch(((ToolBar)sender).Buttons.IndexOf(e.Button))
{
case 0:
// ...
break;

case 1:
// ...
break;
}
}


Конечно же, при необходимости, в обработчике клика можно идентифицировать кнопку и по каким-то ее свойствам, например Text или Tag.

Последние обновление: 2004-01-24 20:54
Опубликовал: Громозека

Обновления из раздела С/С++
Как сделать, чтобы пpогpамма на C++ Builder 6 не требовала .bpl, .dll?

Помести их в системные файлы. Есть, конечно еще один вариант, там в настройках где-то есть чекбокс. Так вот, галочку надо или снять или поставить, это уж я не знаю, и не знаю, какой чекбокс. Ну ты поищи, может найдешь. Размер программ соответственно увеличится
Как сделать, чтобы пpогpамма на C++ Builder 6 не требовала .bpl, .dll?

В свойствах проекта в закладке Packages убери птицу на Build with runtime packages. Размер экзешника сразу возрастет, но за то не нужно будет всякие bpl вместе с программой распространять. По итогу общий объем инсталляции для среднего проекта будет существенно меньше.

Последние обновление: 2004-01-29 10:55
Опубликовал: David Heil

Можно заставить Visual Studio 6.0 работать с компилятором Intel C++ Compiler 5.0? Если можно то как?

Можно, и даже с любым.
Однако не в том виде в котором работает оригинальный компилятор.

Интересным представляется возможность настроить .bat файл на работу с неродным компилятором, после чего включить работу с ним в меню Tools в VC6.

Там при настройках можно указать вывод результатов компиляции в консоль окна самой студии.
Таким образом если не дебагирование, то по крайней мере быстрое нахождение мест ошибок в коде привычным двойным кликом мышкой гарантируется.

Более подробно - спрашивайте на форуме http://shelek.com/forum/

Последние обновление: 2004-01-30 00:23
Опубликовал: Громозека

Обновления из раздела Delphi
Хотелось бы иметь возможность отмены вставки нового узла в TreeView
по нажатию кнопки Esc. Как сделать?


unit BetterTreeView;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, CommCtrl;

type
TTVNewEditCancelEvent = procedure( Sender: TObject;
Node: TTreeNode; var Delete: Boolean) of object;
TBetterTreeView = class(TTreeView)
protected
FIsEditingNew: Boolean;
FOnEditCancel: TTVChangedEvent;
FOnNewEditCancel: TTVNewEditCancelEvent;
procedure Edit(const Item: TTVItem); override;
public
function NewChildAndEdit(Node: TTreeNode; const S: String)
: TTreeNode;
published
property IsEditingNew: Boolean read FIsEditingNew;
property OnEditCancel: TTVChangedEvent
read FOnEditCancel write FOnEditCancel;
property OnNewEditCancel: TTVNewEditCancelEvent
read FOnNewEditCancel write FOnNewEditCancel;
end;

implementation

procedure TBetterTreeView.Edit(const Item: TTVItem);
var
Node: TTreeNode;
Action: Boolean;
begin
with Item do begin
{ Get the node }
if (state and TVIF_PARAM) 0 then
Node := Pointer(lParam)
else
Node := Items.GetNode(hItem);

if pszText = nil then begin
if FIsEditingNew then begin
Action := True;
if Assigned(FOnNewEditCancel) then
FOnNewEditCancel(Self, Node, Action);
if Action then
Node.Destroy
end
else
if Assigned(FOnEditCancel) then
FOnEditCancel(Self, Node);
end
else
fFinherited;
end;
FIsEditingNew := False;
end;

function TBetterTreeView.NewChildAndEdit
(Node: TTreeNode; const S: String): TTreeNode;
begin
SetFocus;
Result := Items.AddChild(Node, S);
FIsEditingNew := True;
Node.Expand(False);
Result.EditText;
SetFocus;
end;

end.

Последние обновление: 2004-01-25 19:58
Опубликовал: Александр

Как вывести на Canvas надпись под углом?

Вот, взгляни.

...

function CreateRotatedFont(F : TFont; Angle : Integer) : hFont;
{-create a rotated font based on the font object F}
var
LF : TLogFont;
begin
FillChar(LF, SizeOf(LF), #0);
with LF do begin
lfHeight := F.Height;
lfWidth := 0;
lfEscapement := Angle*10;
lfOrientation := 0;
if fsBold in F.Style then
lfWeight := FW_BOLD
else
lfWeight := FW_NORMAL;
lfItalic := Byte(fsItalic in F.Style);
lfUnderline := Byte(fsUnderline in F.Style);
lfStrikeOut := Byte(fsStrikeOut in F.Style);
lfCharSet := DEFAULT_CHARSET;
StrPCopy(lfFaceName, F.Name);
lfQuality := DEFAULT_QUALITY;
{everything else as default}
lfOutPrecision := OUT_DEFAULT_PRECIS;
lfClipPrecision := CLIP_DEFAULT_PRECIS;
case F.Pitch of
fpVariable : lfPitchAndFamily := VARIABLE_PITCH;
fpFixed : lfPitchAndFamily := FIXED_PITCH;
else
lfPitchAndFamily := DEFAULT_PITCH;
end;
end;
Result := CreateFontIndirect(LF);
end;

...

{create the rotated font}
if FontAngle 0 then
Canvas.Font.Handle := CreateRotatedFont(Font, FontAngle);
...

Последние обновление: 2004-01-25 19:58
Опубликовал: Александр

Как из программы переключать языки?

Здесь переключатели на русский и на английский.

procedure SetRU;
var
Layout: array[0.. KL_NAMELENGTH] of char;
begin
LoadKeyboardLayout( StrCopy(Layout,00000419),KLF_ACTIVATE);
end;

procedure SetEN;
var
Layout: array[0.. KL_NAMELENGTH] of char;
begin
LoadKeyboardLayout(StrCopy(Layout,00000409),KLF_ACTIVATE);
end;

Anton Geleznyak
(2:5000/106)

Можно и так:

var rus, lat: HKL;

rus:=LoadKeyboardLayout(00000419, 0);
lat:=LoadKeyboardLayout(00000409, 0);

SetActiveKeyboardLayout(rus);

Последние обновление: 2004-01-25 19:58
Опубликовал: Александр

Обновления из раздела Visual Basic

Как на VB создать большое количество папок?
Например при нажатии на кнопку создаётся 15000 папок
в директории C:\


Да очень просто. В цикле. Например так:
Dim i As Integer
For i=1 to 1500
MkDir "C:\MoyaPapka" & Cstr(i)
Next

Этот незамысловатый код создаёт в корне диска C 1500 папок:
MoyaPapka1
MoyaPapka2
MoyaPapka3
...
MoyaPapka1500

Последние обновление: 2004-01-31 12:02
Опубликовал: из архива

Как средствами VB6 можно организовать импорт данных из Excel97?
В частности интересует, как организовать доступ к книге Excel и обращаться
к определенным ячейкам?


Открываем книгу:

Set xE = New Excel.Application
xE.WindowState = xlMinimized
xE.Workbooks.Open sFileName
xE.Visible = True

Открываем страничку:

with xE.Workbooks(1).Worksheets(lNumber)

Ну, а теперь уже бери из ячеек, что тебе нужно. Для текста:

.Range("A1:A1").Text

Для формулы:

.Range("A1:A1").Formula

После этого надо закрыть Excel. Два способа:

obExcel.Quit 'Корректно
Set obExcel = Nothing 'А это "ломом"

Excel надо подключить в References.

Последние обновление: 2004-01-31 12:19
Опубликовал: из архива

Обноновление из раздела ОС - Windows
Как скрыть программу из [Ctrl] + [Alt] + [Del]?

Попробуй app.taskvisible=false.

Если не прокатит, то:

Const RSP_SIMPLE_SERVICE = 1
Const RSP_UNREGISTER_SERVICE = 0
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As
Long, ByVal dwType As Long) As Long
Public Sub MakeMeService()
Dim pid As Long, reserv As Long
'Get the current process ID
pid = GetCurrentProcessId()
'Register as service
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub
Public Sub UnMakeMeService()
Dim pid As Long, reserv As Long
'Get the current process ID
pid = GetCurrentProcessId()
'Unregister as service
regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
End Sub
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
MakeMeService
'Right now, you're program is hidden from the CTRL-ALT-DEL-list
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnMakeMeService
End Sub

Хвастунов Михаил

Последние обновление: 2004-01-31 12:26
Опубликовал: из архива

Обновление из раздела WEB
Нужно несколько ссылок оформить цветом, отличным
от прописанного в файле .CSS или за тегом STYLE type=text/css
заголовка страницы.
Сохранять нужный вид ссылки в виде графического файла, а затем вставлять в веб-документ картинку, меня не устраивает.

Если через CSS, то можно сделать так: в файле описания стилей (или в документе в разделе описания CSS) описываешь свой класс для ссылок. Например:
A.myclass {COLOR:red}.
Можно добавить также и
A.myclass:hover {COLOR:yellow}.
А особенные ссылки оформлять так:
&ltA href="link" CLASS="myclass">Текст ссылки</A>
Если через HTML — тогда вообще просто:
&lta …>&ltfont color=green>text</font></a>


Последние обновление: 2004-01-31 23:16
Опубликовал: из архива

Могу ли я разместить свою програмку на каком нибудь сайте, если она
имеется только на жестком диске, а на большинстве сайтов просят указать
на каком серваке она лежит? Обьясните как разместить.

Сейчас софтовые сайты не кладут программы на своём сервере, а просто при закачке перенаправляют пользователя на файл, лежащий где-нить в другом месте.
Вам необходимо зарегестрировать сайт хотя бы на Народ.Ру или http://www.nm.ru, by.ru и т.д. По FTP загрузить на свой сайт вашу программу, а софтовым серверам давать ссылку с вашего сайта. При этом вам совершенно не обязательно создавать страницу в интернете - вам просто нужно положить программу в инет.


Последние обновление: 2004-01-31 23:17
Опубликовал: из архива

Есть ли бесплатные службы в интернете, с помощью которых можно
проверить доступность моего сайта в течении суток? Т.е. скармливаешь
им адрес, а они тестируют его доступность в течении некоторого срока,
а потом выдают статистику "в 17-40, 19-26 сайт был не доступен", по которой
можно "требовать" объяснения у провайдера.

В Рунете есть служба http://uptime.ru.
Зарегистрировавшись там, вам будут приходить сообщения, когда ваш сервер недоступен.
А в своем профайле вы можете посмотреть общую статистику по всем дням.
Или: http://www.internetseer.com
Или: http://www.easymonitor.com
http://www.netmon.com
Последняя служба наиболее навороченная, платная, трил 7 дней, но можно и бесплатно, если разместить на сайте их кнопку (жуткую на вид и портящую весь дизайн).


Последние обновление: 2004-01-31 11:10
Опубликовал: из архива

Обноновление из раздела Базы данных
Как провести правильную нормализацию БД до третьей нормальной формы,
примеры что есть в статьях на эту тему довольно пространственны, а хотелось
бы более подробно... Заранее благодарен, Lionzi


Загляни сюда http://wall.tms.ru/database/dbguide/4-5.shtml
Если что не ясно спрашивай.
Дополнительная информация: http://wall.tms.ru/database/dbguide/4-5.shtml

Последние обновление: 2004-01-29 00:06
Опубликовал: Александр

Обновления из раздела Разное
При разрыве связи аська схлопывается, и всё что я набирал и не успел отправить,
исчезает. Можно ли как то запретить аське так себя вести?

Попробуйте в Preferences>Connections, на закладке General убрать галочку напротив "Automatically activate "Standby" upon disconnection from the Internet"

Последние обновление: 2004-01-31 23:12
Опубликовал: из архива

 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное