Вход

Разработка программы анализа доходности от операций с ценными бумагами в среде Delphi 7.0

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 265568
Дата создания 29 мая 2015
Страниц 117
Мы сможем обработать ваш заказ (!) 1 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
7 290руб.
КУПИТЬ

Описание

Работа посвящена проектированию, разработке и внедрению программы анализа доходности от операций с ценными бумагами в среде Delphi 7.0. Она проста в использовании и не требует знания больших навыков работы на персональном компьютере. Достоинствами программы является то, что специалист сможет легко управлять данной программой.
Интерфейс программы легок и интуитивно понятен, она очень проста в обращении и с ней не доставит труда разобраться даже самым неопытным пользователям.

Оригинальность по Антиплагиат-70%.
Работа была защищена на оценку "отлично" в 2013 году в Краснодарском крае.
К работе прилагается презентация и выступление для защиты и работающая программа с исходным кодом. ...

Содержание

ВВЕДЕНИЕ 5
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ 8
1.1. Ценные бумаги - их суть, роль, основные характеристики 8
1.2. Виды ценных бумаг 11
1.3. Организационная структура банка. 16
ГЛАВА 2. ПРОЕКТИРОВАНИЕ ПРОГРАММЫ 21
2.1. Выбор языка программирования. 21
2.2. Выбор метода программирования 23
2.3. Алгоритм и структурная схема программы. 31
ГЛАВА 3. РАЗРАБОТКА ПРОГРАММНОГО ПРОЕКТА 33
3.1. Описание модулей программы 33
3.2. Технико-экономические расчеты работы программы. 50
ЗАКЛЮЧЕНИЕ 57
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 58
Приложение 1. Структурная схема программы 61
Приложение 2. Алгоритм работы программы 62
Приложение 3. Листинг программы 63

Введение

В проблеме выхода отечественной экономики из кризиса большая роль отводится банковской сфере и ее основе - системе государственных банков. Российские органы власти, ориентируясь на совершенствование национальной экономики в целом, через улучшение состояния финансовых рынков, предпринимают серьезные меры, направленные на поддержку банковской системы. Предпринятые меры государственной поддержки банковского сектора во многом продиктованы тем, что текущий размер пассивов отечественной банковской системы, определяемый уровнем организованных сбережений организаций и населения, находится на низком уровне, и не соответствует нынешним потребностям реального сектора отечественной экономики. Ресурсный потенциал российской банковской системы сейчас к тому же лимитирован ограниченным доступом к внешним ресурсам, обусловленный сравнительно высокими рисками банковского бизнеса в Российской Федерации, с одной стороны, и кризисной ситуацией в банковской сфере во всем мире, обусловленной комплексом проблем, учитывая проблему ликвидности значительной части активов, с другой стороны.
Проблемы функционирования и совершенствования российской банковской системы в последнее время привлекают к себе пристальное внимание не только правительства и парламента, отечественных и иностранных специалистов, но и широких слоев населения. Это обусловлено рядом объективных и субъективных причин, обеспечивших рост большинства показателей отечественной экономики, выходящей из глубокого кризиса. Именно банковская система играет ведущую роль в накоплении инвестиций и их перераспределении между отраслями хозяйства, в привлечении средств реальных и потенциальных инвесторов.
Рассматривая систему государственных банков как главный аккумулятор финансовых активов, призванных стимулировать процессы создания реальных активов, требуется отметить, что главной проблемой совершенствования отечественного банковского сектора является колоссальная диспропорция между количеством и качеством деятельности российских государственных банков. Существующая диспропорция представляет достаточно серьезную проблему, сдерживающую совершенствование отечественной экономики.
В свою очередь инвестиционная деятельность банков в значительной мере определяет экономическую и социальную стабильность в стране, возможность реализации интересов вовлеченных в нее социальных групп, уровень и качество жизни отдельного человека. Вот почему исследование вопросов социальной эффективности этой деятельности особо актуально в период мирового финансового кризиса.
Это обуславливает актуальность темы выпускной квалификационной работы, направленной на развитие инвестиционной деятельности Банка (на примере Юго-западного банка ОАО Сбербанка России).
Цель выпускной квалификационной работы состоит в совершенствовании теоретических и практических положений и, кроме того, разработке рекомендаций по развитию учета и анализа доходов по операциям с ценными бумагами государственных банков.
Достижение поставленной цели определяется решением следующих задач:
- исследование сущности, классификации и особенностей ведения бухгалтерского учета ценных бумаг в государственных банках;
- анализ эффективности финансово-экономической деятельности государственных банков;
- рассмотрение проблем учета и анализ эффективности деятельности коммерческого банка с ценными бумагами;
- разработка мероприятий по развитию операций с ценными бумагами в банке.
Объектом исследования в работе является Юго-западный банк ОАО Сбербанка России.
Предмет исследования - разработка программы анализа доходности от операций с ценными бумагами.
Теоретической базой исследования являются труды российских и иностранных ученых и специалистов в области организации и управления инвестициями, по проблемам их оценки и способам повышения эффективности вложений в экономику и, кроме того, по вопросам разработки перспективных инвестиционных стратегий.
Методы исследования. При решении поставленных задач использовались модульный метод программирования.
Квалификационная работа состоит из введения, трех глав, заключения, списка литературы и приложений.
Во введении определены актуальность данной темы, задачи, цель и основные характеристики.
В первой главе рассматриваются виды ценных бумаг - их суть, роль, основные характеристики, организационная структура банка.
Во второй главе мы описываем язык и метод программирования, алгоритм, структурную схему программы, проводим ее отладку и тестирование.
В третьей главе представлены модули программы и технико-экономические расчеты работы программы.
В заключении приведены основные выводы и результаты работы.

Фрагмент работы для ознакомления

FIndexs[I] := -1;
end;
GlyphCache.ReturnList(TGlyphList(FGlyphList));
FGlyphList := nil;
end;
procedure TSVP_ButtonGlyph.GlyphChanged(Sender: TObject);
var
Glyphs: Integer;
begin
if Sender = FOriginal then begin
Invalidate;
if (FOriginal <> nil) and (FOriginal.Height > 0) then begin
FTransparentColor := FOriginal.TransparentColor and not PaletteMask;
if FOriginal.Width mod FOriginal.Height = 0 then begin
Glyphs := FOriginal.Width div FOriginal.Height;
if Glyphs > (Ord(High(TSVP_ButtonState)) + 1) then Glyphs := 1;
SetNumGlyphs(Glyphs);
end;
end;
if Assigned(FOnChange) then FOnChange(Self);
end;
end;
procedure TSVP_ButtonGlyph.SetGlyph(Value: TBitmap);
begin
Invalidate;
FOriginal.Assign(Value);
end;
procedure TSVP_ButtonGlyph.SetNumGlyphs(Value: TSVP_NumGlyphs);
begin
if (Value <> FNumGlyphs) and (Value > 0) then begin
Invalidate;
FNumGlyphs := Value;
end;
end;
function TSVP_ButtonGlyph.MapColor(Color: TColor): TColor;
var
Index: Byte;
begin
if (Color = FTransparentColor) or (ColorToRGB(Color) =
ColorToRGB(clBtnFace)) then Result := Color
else begin
Color := ColorToRGB(Color);
Index := Byte(Longint(Word(GetRValue(Color)) * 77 +
Word(GetGValue(Color)) * 150 + Word(GetBValue(Color)) * 29) shr 8);
Result := RGB(Index, Index, Index);
end;
end;
{$IFDEF WIN32}
function TSVP_ButtonGlyph.CreateImageGlyph(State: TSVP_ButtonState;
Images: TImageList; Index: Integer): Integer;
var
TmpImage, Mask: TBitmap;
IWidth, IHeight, X, Y: Integer;
begin
if (State = rbsDown) then State := rbsUp;
Result := FIndexs[State];
if (Result <> -1) or (Images.Width = 0) or (Images.Height = 0) or
(Images.Count = 0) then Exit;
IWidth := Images.Width;
IHeight := Images.Height;
if FGlyphList = nil then begin
if GlyphCache = nil then GlyphCache := TGlyphCache.Create;
FGlyphList := GlyphCache.GetList(IWidth, IHeight);
end;
TmpImage := TBitmap.Create;
try
TmpImage.Width := IWidth;
TmpImage.Height := IHeight;
case State of
rbsUp, rbsDown, rbsExclusive:
begin
with TmpImage.Canvas do begin
FillRect(Rect(0, 0, IWidth, IHeight));
ImageList_Draw(Images.Handle, Index, Handle, 0, 0, ILD_NORMAL);
end;
Mask := TBitmap.Create;
try
with Mask do begin
Monochrome := True;
Height := IHeight;
Width := IWidth;
end;
with Mask.Canvas do begin
FillRect(Rect(0, 0, IWidth, IHeight));
ImageList_Draw(Images.Handle, Index, Handle, 0, 0, ILD_MASK);
end;
FIndexs[State] := Add(TmpImage, Mask);
finally
Mask.Free;
end;
end;
rbsDisabled:
begin
TmpImage.Canvas.Brush.Color := clBtnFace;
TmpImage.Canvas.FillRect(Rect(0, 0, IWidth, IHeight));
ImageListDrawDisabled(Images, TmpImage.Canvas, 0, 0, Index,
clBtnHighlight, clBtnShadow, True);
FIndexs[State] := AddMasked(TmpImage,
ColorToRGB(clBtnFace));
end;
rbsInactive:
begin
TmpImage.Canvas.Brush.Color := clBtnFace;
TmpImage.Canvas.FillRect(Rect(0, 0, IWidth, IHeight));
ImageList_Draw(Images.Handle, Index, TmpImage.Canvas.Handle, 0, 0,
ILD_NORMAL);
with TmpImage do begin
for X := 0 to Width - 1 do
for Y := 0 to Height - 1 do
Canvas.Pixels[X, Y] := MapColor(Canvas.Pixels[X, Y]);
end;
FIndexs[State] := AddMasked(TmpImage,
ColorToRGB(clBtnFace));
end;
end;
finally
TmpImage.Free;
end;
Result := FIndexs[State];
end;
{$ENDIF}
function TSVP_ButtonGlyph.CreateButtonGlyph(State: TSVP_ButtonState): Integer;
var
TmpImage, MonoBmp: TBitmap;
IWidth, IHeight, X, Y: Integer;
IRect, ORect: TRect;
I: TSVP_ButtonState;
begin
if (State = rbsDown) and (NumGlyphs < 3) then State := rbsUp;
Result := FIndexs[State];
if (Result <> -1) or (FOriginal.Width = 0) or (FOriginal.Height = 0) or
FOriginal.Empty then Exit;
IWidth := FOriginal.Width div FNumGlyphs;
IHeight := FOriginal.Height;
if FGlyphList = nil then begin
if GlyphCache = nil then GlyphCache := TGlyphCache.Create;
FGlyphList := GlyphCache.GetList(IWidth, IHeight);
end;
TmpImage := TBitmap.Create;
try
TmpImage.Width := IWidth;
TmpImage.Height := IHeight;
IRect := Rect(0, 0, IWidth, IHeight);
TmpImage.Canvas.Brush.Color := clBtnFace;
I := State;
if Ord(I) >= NumGlyphs then I := rbsUp;
ORect := Rect(Ord(I) * IWidth, 0, (Ord(I) + 1) * IWidth, IHeight);
case State of
rbsUp, rbsDown, rbsExclusive:
begin
TmpImage.Canvas.CopyRect(IRect, FOriginal.Canvas, ORect);
FIndexs[State] := AddMasked(TmpImage, FTransparentColor);
end;
rbsDisabled:
if NumGlyphs > 1 then begin
TmpImage.Canvas.CopyRect(IRect, FOriginal.Canvas, ORect);
FIndexs[State] := AddMasked(TmpImage, FTransparentColor);
end
else begin
MonoBmp := CreateDisabledBitmap(FOriginal, clBlack);
try
FIndexs[State] := AddMasked(MonoBmp,
ColorToRGB(clBtnFace));
finally
MonoBmp.Free;
end;
end;
rbsInactive:
if NumGlyphs > 4 then begin
TmpImage.Canvas.CopyRect(IRect, FOriginal.Canvas, ORect);
FIndexs[State] := AddMasked(TmpImage, FTransparentColor);
end
else begin
with TmpImage do begin
for X := 0 to Width - 1 do
for Y := 0 to Height - 1 do
Canvas.Pixels[X, Y] := MapColor(Canvas.Pixels[X, Y]);
end;
FIndexs[State] := AddMasked(TmpImage, FTransparentColor);
end;
end;
finally
TmpImage.Free;
end;
Result := FIndexs[State];
FOriginal.Dormant;
end;
procedure TSVP_ButtonGlyph.DrawPopupMark(Canvas: TCanvas; X, Y: Integer;
State: TSVP_ButtonState);
var
AColor: TColor;
procedure DrawMark;
var
I: Integer;
begin
with Canvas do begin
for I := 0 to 6 do begin
Pixels[X + I, Y - 1] := AColor;
if (I > 0) and (I < 6) then begin
Pixels[X + I, Y] := AColor;
if (I > 1) and (I < 5) then Pixels[X + I, Y + 1] := AColor;
end;
end;
Pixels[X + 3, Y + 2] := AColor;
end;
end;
begin
if State = rbsDisabled then begin
AColor := clBtnHighlight;
Inc(X, 1); Inc(Y, 1);
DrawMark;
Dec(X, 1); Dec(Y, 1);
AColor := clBtnShadow;
end
else AColor := clBtnText;
DrawMark;
end;
function TSVP_ButtonGlyph.DrawButtonGlyph(Canvas: TCanvas; X, Y: Integer;
State: TSVP_ButtonState): TPoint;
var
Index: Integer;
begin
Result := Point(0, 0);
if (FOriginal = nil) or (FOriginal.Width = 0) or (FOriginal.Height = 0) or
FOriginal.Empty then Exit;
Index := CreateButtonGlyph(State);
if Index >= 0 then begin
{$IFDEF WIN32}
ImageList_Draw(FGlyphList.Handle, Index, Canvas.Handle, X, Y, ILD_NORMAL);
{$ELSE}
FGlyphList.Draw(Canvas, X, Y, Index);
{$ENDIF}
Result := Point(FGlyphList.Width, FGlyphList.Height);
end;
end;
{$IFDEF WIN32}
function TSVP_ButtonGlyph.DrawButtonImage(Canvas: TCanvas; X, Y: Integer;
Images: TImageList; ImageIndex: Integer; State: TSVP_ButtonState): TPoint;
var
Index: Integer;
begin
Result := Point(0, 0);
if (Images = nil) or (ImageIndex < 0) or (ImageIndex >= Images.Count) then
Exit;
if State = rbsDisabled then begin
ImageListDrawDisabled(Images, Canvas, X, Y, ImageIndex, clBtnHighlight,
clBtnShadow, True);
end
else if State = rbsInactive then begin
Index := CreateImageGlyph(State, Images, ImageIndex);
if Index >= 0 then
ImageList_Draw(FGlyphList.Handle, Index, Canvas.Handle, X, Y, ILD_NORMAL);
end;
Result := Point(Images.Width, Images.Height);
end;
{$ENDIF}
procedure TSVP_ButtonGlyph.MinimizeCaption(Canvas: TCanvas; const Caption: string;
Buffer: PChar; MaxLen, Width: Integer);
var
I: Integer;
Lines: TStrings;
begin
StrPLCopy(Buffer, Caption, MaxLen);
if FWordWrap then Exit;
Lines := TStringList.Create;
try
{$IFDEF WIN32}
Lines.Text := Caption;
for I := 0 to Lines.Count - 1 do
Lines[I] := MinimizeText(Lines[I], Canvas, Width);
StrPLCopy(Buffer, TrimRight(Lines.Text), MaxLen);
{$ELSE}
Lines.SetText(Buffer);
for I := 0 to Lines.Count - 1 do
Lines[I] := MinimizeText(Lines[I], Canvas, Width);
P := Lines.GetText;
try
StrPLCopy(Buffer, TrimRight(StrPas(P)), MaxLen);
finally
StrDispose(P);
end;
{$ENDIF}
finally
Lines.Free;
end;
end;
procedure WMSize(var Message: TMessage);
begin
inherited;
if Active then begin
UpdateMemoryImage;
Invalidate;
end;
end;
{$IFDEF SVP__D3}
procedure SetAsyncDrawing(Value: Boolean);
begin
if FAsyncDrawing <> Value then begin
FTimer.SyncEvent := not Value;
FAsyncDrawing := Value;
end;
end;
{$ENDIF SVP__D3}
procedure AlignControls(AControl: TControl; var Rect: TRect);
begin
inherited AlignControls(AControl, Rect);
if (AControl = nil) and Active then UpdateMemoryImage;
end;
function GetInflateWidth: Integer;
begin
Result := BorderWidth;
if BevelOuter <> bvNone then Inc(Result, BevelWidth);
if BevelInner <> bvNone then Inc(Result, BevelWidth);
end;
procedure RecalcDrawRect;
const
MinOffset = 3;
var
InflateWidth: Integer;
LastLine: Integer;
begin
FTxtRect := GetClientRect;
FPaintRect := FTxtRect;
InflateWidth := GetInflateWidth;
InflateRect(FPaintRect, -InflateWidth, -InflateWidth);
Inc(InflateWidth, MinOffset);
InflateRect(FTxtRect, -InflateWidth, -InflateWidth);
with FGlyphOrigin do begin
case FGlyphLayout of
glGlyphLeft:
begin
X := FTxtRect.Left;
Y := (FTxtRect.Bottom + FTxtRect.Top - Glyph.Height) div 2;
if Y < FTxtRect.Top then Y := FTxtRect.Top;
if Glyph.Width > 0 then begin
Inc(X, MinOffset);
FTxtRect.Left := X + Glyph.Width + InflateWidth;
end;
end;
glGlyphRight:
begin
Y := (FTxtRect.Bottom + FTxtRect.Top - Glyph.Height) div 2;
if Y < FTxtRect.Top then Y := FTxtRect.Top;
X := FTxtRect.Right - Glyph.Width;
if Glyph.Width > 0 then begin
Dec(X, MinOffset);
if X < FTxtRect.Left then X := FTxtRect.Left;
FTxtRect.Right := X - InflateWidth;
end;
end;
glGlyphTop:
begin
Y := FTxtRect.Top;
X := (FTxtRect.Right + FTxtRect.Left - Glyph.Width) div 2;
if X < FTxtRect.Left then X := FTxtRect.Left;
if Glyph.Height > 0 then begin
Inc(Y, MinOffset);
FTxtRect.Top := Y + Glyph.Height + (InflateWidth + MinOffset);
end;
end;
glGlyphBottom:
begin
X := (FTxtRect.Right + FTxtRect.Left - Glyph.Width) div 2;
if X < FTxtRect.Left then X := FTxtRect.Left;
Y := FTxtRect.Bottom - Glyph.Height;
if Glyph.Height > 0 then begin
Dec(Y, MinOffset);
if Y < FTxtRect.Top then Y := FTxtRect.Top;
FTxtRect.Bottom := Y - (InflateWidth + MinOffset);
end;
end;
end;
end;
if FDirection = sdHorizontal then begin
LastLine := FLines.Count - 1;
while (LastLine >= 0) and (Trim(FLines[LastLine]) = '') do
Dec(LastLine);
InflateWidth := HeightOf(FTxtRect) -
(LastLine + 1 - FFirstLine) * FTxtDivider;
if InflateWidth > 0 then
InflateRect(FTxtRect, 0, - InflateWidth div 2);
end;
with FTxtRect do
if (Left >= Right) or (Top >= Bottom) then FTxtRect := Rect(0, 0, 0, 0);
end;
procedure PaintGlyph;
begin
if not FGlyph.Empty then begin
RecalcDrawRect;
DrawBitmapTransparent(Canvas, FGlyphOrigin.X, FGlyphOrigin.Y,
FGlyph, FGlyph.TransparentColor and not PaletteMask);
end;
end;
procedure PaintText;
var
STmp: array[0..255] of Char;
R: TRect;
I: Integer;
Flags: Longint;
begin
if (FLines.Count = 0) or IsRectEmpty(FTxtRect) or not HandleAllocated then
Exit;
{$IFDEF SVP__D3}
FMemoryImage.Canvas.Lock;
try
{$ENDIF}
with FMemoryImage.Canvas do begin
I := SaveDC(Handle);
try
with FTxtRect do
MoveWindowOrg(Handle, -Left, -Top);
Brush.Color := Self.Color;
PaintClient(FMemoryImage.Canvas, FPaintRect);
finally
RestoreDC(Handle, I);
SetBkMode(Handle, Transparent);
end;
end;
R := Bounds(0, 0, WidthOf(FTxtRect), HeightOf(FTxtRect));
if FDirection = sdHorizontal then begin
{$IFDEF SVP__D4}
if IsRightToLeft then begin
R.Right := R.Left + FScrollCnt;
R.Left := R.Right - (FMaxScroll - WidthOf(FTxtRect));
end
else begin
R.Left := R.Right - FScrollCnt;
R.Right := R.Left + (FMaxScroll - WidthOf(FTxtRect));
end;
{$ELSE}
R.Left := R.Right - FScrollCnt;
R.Right := R.Left + (FMaxScroll - WidthOf(FTxtRect));
{$ENDIF}
end
else begin
R.Top := R.Bottom - FScrollCnt;
end;
R.Bottom := R.Top + FTxtDivider;
Flags := DT_EXPANDTABS or Alignments[FAlignment] or DT_SINGLELINE or
DT_NOCLIP or DT_NOPREFIX;
{$IFDEF SVP__D4}
Flags := DrawTextBiDiModeFlags(Flags);
{$ENDIF}
for I := FFirstLine to FLines.Count do begin
if I = FLines.Count then StrCopy(STmp, ' ')
else StrPLCopy(STmp, FLines[I], SizeOf(STmp) - 1);
if R.Top >= HeightOf(FTxtRect) then Break
else if R.Bottom > 0 then begin
if FTextStyle <> bvNone then begin
FMemoryImage.Canvas.Font.Color := clBtnHighlight;
case FTextStyle of
bvLowered:
begin
OffsetRect(R, 1, 1);
DrawText(FMemoryImage.Canvas.Handle, STmp, -1, R, Flags);
OffsetRect(R, -1, -1);
end;
bvRaised:
begin
OffsetRect(R, -1, -1);
DrawText(FMemoryImage.Canvas.Handle, STmp, -1, R, Flags);
OffsetRect(R, 1, 1);
end;
end;
FMemoryImage.Canvas.Font.Color := Self.Font.Color;
SetBkMode(FMemoryImage.Canvas.Handle, Transparent);
end;
DrawText(FMemoryImage.Canvas.Handle, STmp, -1, R, Flags);
end;
OffsetRect(R, 0, FTxtDivider);
end;
{$IFDEF SVP__D3}
Canvas.Lock;
try
{$ENDIF}
BitBlt(Canvas.Handle, FTxtRect.Left, FTxtRect.Top, FMemoryImage.Width,
FMemoryImage.Height, FMemoryImage.Canvas.Handle, 0, 0, SRCCOPY);
ValidateRect(Handle, @FTxtRect);
{$IFDEF SVP__D3}
finally
Canvas.Unlock;
end;
{$ENDIF}
{$IFDEF SVP__D3}
finally
FMemoryImage.Canvas.Unlock;
end;
{$ENDIF}
end;
procedure PaintClient(Canvas: TCanvas; Rect: TRect);
begin
if Assigned(FOnPaintClient) then FOnPaintClient(Self, Canvas, Rect)
else Canvas.FillRect(Rect);
end;
procedure Paint;
var
Rect: TRect;
TopColor, BottomColor: TColor;
SaveIndex: Integer;
procedure AdjustColors(Bevel: TPanelBevel);
begin
TopColor := clBtnHighlight;
if Bevel = bvLowered then TopColor := clBtnShadow;
BottomColor := clBtnShadow;
if Bevel = bvLowered then BottomColor := clBtnHighlight;
end;
begin
Rect := GetClientRect;
if BevelOuter <> bvNone then begin
AdjustColors(BevelOuter);
Frame3D(Canvas, Rect, TopColor, BottomColor, BevelWidth);
end;
Frame3D(Canvas, Rect, Color, Color, BorderWidth);
if BevelInner <> bvNone then begin
AdjustColors(BevelInner);
Frame3D(Canvas, Rect, TopColor, BottomColor, BevelWidth);
end;
SaveIndex := SaveDC(Canvas.Handle);
try
with Rect do
IntersectClipRect(Canvas.Handle, Left, Top, Right, Bottom);
Canvas.Brush.Color := Self.Color;
PaintClient(Canvas, Rect);
finally
RestoreDC(Canvas.Handle, SaveIndex);
end;
if Active then begin
PaintGlyph;
end;
end;
procedure StartPlay;
begin
if Assigned(FOnStartPlay) then FOnStartPlay(Self);
end;
procedure StopPlay;
begin
if Assigned(FOnStopPlay) then FOnStopPlay(Self);
end;
procedure TimerExpired(Sender: TObject);
begin
if (FScrollCnt < FMaxScroll) then begin
Inc(FScrollCnt);
if Assigned(FMemoryImage) then PaintText;
end
else if Cycled then begin
FScrollCnt := 0;
if Assigned(FMemoryImage) then PaintText;
end
else begin
{$IFDEF SVP__D3}
FTimer.Synchronize(Stop);
{$ELSE}
SetActive(False);
{$ENDIF}
end;
end;
procedure UpdateMemoryImage;
var
Metrics: TTextMetric;
I: Integer;
begin
if FMemoryImage = nil then FMemoryImage := TBitmap.Create;
{$IFDEF SVP__D3}
FMemoryImage.Canvas.Lock;
try
{$ENDIF}
FFirstLine := 0;
while (FFirstLine < FLines.Count) and (Trim(FLines[FFirstLine]) = '') do
Inc(FFirstLine);
Canvas.Font := Self.Font;
GetTextMetrics(Canvas.Handle, Metrics);
FTxtDivider := Metrics.tmHeight + Metrics.tmExternalLeading;
if FTextStyle <> bvNone then Inc(FTxtDivider);
RecalcDrawRect;
if FDirection = sdHorizontal then begin
FMaxScroll := 0;
for I := FFirstLine to FLines.Count - 1 do
FMaxScroll := Max(FMaxScroll, Canvas.TextWidth(FLines[I]));
Inc(FMaxScroll, WidthOf(FTxtRect));
end
else begin
FMaxScroll := ((FLines.Count - FFirstLine) * FTxtDivider) +
HeightOf(FTxtRect);
end;
FMemoryImage.Width := WidthOf(FTxtRect);
FMemoryImage.Height := HeightOf(FTxtRect);
with FMemoryImage.Canvas do begin
Font := Self.Font;
Brush.Color := Self.Color;
SetBkMode(Handle, Transparent);
end;
{$IFDEF SVP__D3}
finally
FMemoryImage.Canvas.UnLock;
end;
{$ENDIF}
end;
function GetInterval: Cardinal;
begin
Result := FTimer.Interval;
end;
procedure SetInterval(Value: Cardinal);
begin
FTimer.Interval := Value;
end;
procedure Play;
begin
SetActive(True);
end;
procedure Stop;
begin
SetActive(False);
end;
procedure SetActive(Value: Boolean);
var
I: Integer;
begin
if Value <> FActive then begin
FActive := Value;
if FActive then begin
FScrollCnt := 0;
UpdateMemoryImage;
try
FTimer.Enabled := True;
StartPlay;
except
FActive := False;
FTimer.Enabled := False;
raise;
end;
end
else begin
{$IFDEF SVP__D3}
FMemoryImage.Canvas.Lock;
{$ENDIF}
FTimer.Enabled := False;
FScrollCnt := 0;
FMemoryImage.Free;
FMemoryImage := nil;
StopPlay;
if (csDesigning in ComponentState) and
not (csDestroying in ComponentState) then
ValidParentForm(Self).Designer.Modified;
end;
if not (csDestroying in ComponentState) then
for I := 0 to Pred(ControlCount) do begin
if FActive then begin
if Controls[I].Visible then FHiddenList.Add(Controls[I]);
if not (csDesigning in ComponentState) then
Controls[I].Visible := False
end
else if FHiddenList.IndexOf(Controls[I]) >= 0 then begin
Controls[I].Visible := True;
Controls[I].Invalidate;
if (csDesigning in ComponentState) then Controls[I].Update;
end;
end;
if not FActive then FHiddenList.Clear;
Invalidate;
end;
end;
procedure SetAlignment(Value: TAlignment);
begin
if FAlignment <> Value then begin
FAlignment := Value;
if Active then Invalidate;
end;
end;
procedure SetGlyph(Value: TBitmap);
begin
FGlyph.Assign(Value);
end;
procedure SetDirection(Value: TScrollDirection);
begin
if FDirection <> Value then begin
FDirection := Value;
if FActive then begin
FScrollCnt := 0;
UpdateMemoryImage;
Invalidate;
end;
end;
end;
procedure SetTextStyle(Value: TPanelBevel);
begin
if FTextStyle <> Value then begin
FTextStyle := Value;
if FActive then begin
UpdateMemoryImage;
Invalidate;
end;
end;
end;
procedure SetGlyphLayout(Value: TGlyphLayout);
begin
if FGlyphLayout <> Value then begin
FGlyphLayout := Value;
if FActive then begin
UpdateMemoryImage;
Invalidate;
end;
end;
end;
procedure SetLines(Value: TStrings);
begin
FLines.Assign(Value);
end;
{ TGlyphList }
type
TGlyphList = class(TImageList)
private
FUsed: TBits;
FCount: Integer;
function AllocateIndex: Integer;
public
constructor CreateSize(AWidth, AHeight: Integer);
destructor Destroy; override;
function Add(Image, Mask: TBitmap): Integer;
function AddMasked(Image: TBitmap; MaskColor: TColor): Integer;
{$IFDEF WIN32}
{$IFNDEF SVP__D3}

Список литературы

1. Атре Ш., Структурный подход к организации баз данных, – М.: «Финансы и статистика», 2007. – 320с.
2. Адамова К.Р. Депозитарные операции банка. Экономические основы и зарубежный опыт. - М.: БДЦ-Пресс, 2008.
3. Банки и банковское дело: Учеб. пособие / Под ред. И.Т. Балабанова, М.,2006.
4. Банковское дело: Учебник / Под ред. В.И. Колесникова, Л.П.Кроливецкой - 4-е изд., перераб. и доп. - М., 2006.
5. Банковское дело: Учебник / Под ред. О.И.Лаврушина - 2-е изд., перераб. и доп. - М., 2007.
6. Барон Л.Ю., Белостоцкая С. Диспропорции в совершенствовании банковского и нефинансового секторов экономики / Вопросы экономики / 2008 - №3.
7. Бородин А.Ф. О роли банковского сектора в обеспечении устойчивого роста экономики // Деньги и кредит - 2008 - №9.
8. Безопасность технических процессов и производств, учебное пособие, М.: Высшая школа, 2006.– 319с.
9. Верников А.В. К вопросу о банковской системе в России // Деньги и кредит - 2008 - №3.
10. Вознесенская Н.Н. Иностранные инвестиции: Россия и мировой опыт (относительно-правовой комментарий) - М.: Юридическая фирма «Контракт», Инфра-М, 2006. С.3.
11. Гамза В. Банковская система России: основные проблемы совершенствования // Мировая экономика и международные отношения - 2008 - №10.
12. Голикова Ю.С. Денежно-кредитная политика Центрального банка: современный инструментарий и его активизация // Деньги и кредит - 2007 - №8.
13. Данилов Ю.А. Создание и совершенствование инвестиционного банка в России. М., 2008. С.19.
14. Деньги. Кредит. Банки: учебник / Под. ред. В.В.Иванова, Б.И. Соколова, 2006. С.523.
15. Доронина Н.Г., Семилютина Н.Г. Государство и регулирование инвестиций. - М.: ООО «Городец-издат», 2008. С. 51 - 52.
16. Жаботинская Е.И. Экономика и банковский сектор / Деньги и кредит - 2008 - №2.
17. Косов Н.С. Последствия банковского кризиса и перспективы участия банков в инвестировании производства // Вести Моск. ун-та, Сер. 6 Экономика - 2007 - №1.
18. Ларионова И.В. Реорганизация государственных банков - М., 2005.
19. Лунтовский Г.И. Банковский сектор России: развитие условий банковской деятельности // Деньги и кредит - 2008 - №5.
20. Максимов И.Б. Регулирование привлечения зарубежных инвестиций в условиях реформируемой экономики.: Дис... канд. юрид. наук. Иркутск, 2005. С. 148.
21. Мякенькая М.А. Осуществление инвестиционной деятельности банков в Российской Федерации: правовые вопросы // Предпринимательское право, 2006, №1.
22. Основы банковского дела в Российской Федерации: Учеб. пособие / Под ред. О.Г.Семенюты - Ростов-н/Д, 2006.
23. Редько Н. Коммерческие банки как элементы инфраструктуры инвестиций в экономику Российской Федерации // РЦБ, №24, 2009.
24. Саркисянц А. О роли банков в экономике // Вопр. экономики - 2008 - №3.
25. Световцева Т.А., Федорович Н.П. К вопросу о конкурентоспособности банковских продуктов как составляющей банковской конкуренции//«Современные аспекты экономики», Санкт-Петербург: 2005. - №1(68).
26. Сергеев И.В., Веретенников И.И. Организация и финансирование инвестиций. М., 2005. С. 44.
27. Солнцев О.Г. Российская банковская система: смена модели совершенствования // Пробл. прогнозирования - 2006 - №2.
28. Суханов Е.А. Вступительная статья к кн.: Белов В.В. Ценные бумаги в российском гражданском праве. М., 2006. С. 3 - 4.
29. Федеральный закон Российской Федерации от 02.12.1990 №395-1 «О банках и банковской деятельности» (в ред. Федерального закона от 04.12.2007 №325-ФЗ) // Собрание законодательства Pоссийской Федеpации, 05.02.1996, №6, ст. 492.
30. Федеральный закон Российской Федерации от 22.04.1996 №39-ФЗ «О рынке ценных бумаг» (в ред. Федерального закона от 06.12.2007 №336-ФЗ) // Собрание законодательства Pоссийской Федеpации, №17, 22.04.1996, ст. 1918.
31. Федеральный закон Российской Федерации от 05.03.1999 №46-ФЗ «О защите прав и законных интересов инвесторов на рынке ценных бумаг» (в ред. Федерального закона от 06.12.2007 №334-ФЗ) // Собрание законодательства Pоссийской Федеpации, 08.03.1999, №10, ст. 1163.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.0052
© Рефератбанк, 2002 - 2024