Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++Builder] Создание бегущей строки 
V
    Опции темы
Kay
Дата 22.1.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Нужно взять из файла, лежащего в каталоге с программой все нечётные строки, склеить их и пустить бегущей строкой по экрану. Бегущая строка должна быть сама по себе, без окошек. В упор не знаю как сделать последнее. Помогите что ли ))
PM MAIL   Вверх
mr.Anderson
Дата 22.1.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



Что значит "без окошек"? Как вариант (если я все правильно понял), можно поместить на форму метку TLabel, а в нее уже и пихать полученную из файлов строку, обрабатывать через циклы и т.д.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Kay
Дата 23.1.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Ну да, я не очень понятно выразился. Формы как таковой, не должно быть видно - просто бегущая строка, как в телевизоре в новостях, например. Она должна идти поверх того, что в данный момент на экране.
PM MAIL   Вверх
mr.Anderson
Дата 23.1.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



Могу предложить сделать программу все же с формой, только без рамки (BorderStyle = bsNone). На ней разместить бегущую строку. Сделать размер по ширине пользовательского экрана и сделать возможным ее передвигать, держась прямо за форму. Получится то же самое. Только плюс у формы врубить свойство StayOnTop, и получится как раз то, что вам нужно.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Kay
Дата 28.1.2007, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Не, боюсь что это не то. Я вот думаю, может можно сделать форму прозрачной, как в ХР
PM MAIL   Вверх
Oleg_Ci
Дата 28.1.2007, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 25
Всего: 30



Может на рабочий стол тогда рисовать?
PM MAIL   Вверх
Kay
Дата 28.1.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Это бы подошло, а как это сделать?

Я вот так могу, но экран сильно мерцает

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

AnsiString mpath, output;

TPoint pos;

HDC DC;
//TCanvas *dCanvas = new TCanvas();

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    this->Visible = false;

    mpath = ExtractFilePath(ParamStr(0));

    output = "";

    if (FileExists(mpath + "file.txt"))
    {
        TStringList *data = new TStringList();
        data->LoadFromFile(mpath + "file.txt");
        for (int i = 0; i < data->Count; i++)
        {
            if (i % 2 == 1)
            {
                output += data->Strings[i];
                output += "   ";
            }
        }
        data->Free();
    }
    else
    {
        return;
    }

    DC = GetDC(0);
    //dCanvas->Handle = DC;

    try
    {
        SetBkMode(DC, TRANSPARENT);
        SetBkColor(DC, 0);

        Timer1->Enabled = true;
        Timer1->Interval = 400;
        pos.x = 0;
    }
    catch ( ... )
    {
        ReleaseDC(0, DC);

    }
}
//---------------------------------------------------------------------------
void makePos(TPoint &p)
{
    randomize();
    if (p.x >= Screen->Width)
    {
        p.x = 0;
    }
    if (p.x == 0)
    {
        p.y = random(Screen->Height - 40);
    }
    p.x += 10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    makePos(pos);

    InvalidateRect(0, 0, true);
    Sleep(10);
    TextOut(DC, pos.x, pos.y, output.c_str(), output.Length());
    
  
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    ReleaseDC(0, DC);
    //dCanvas->Handle = 0;
    //dCanvas->Free();
}
//---------------------------------------------------------------------------



Это сообщение отредактировал(а) Kay - 28.1.2007, 13:01
PM MAIL   Вверх
Oleg_Ci
Дата 28.1.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 25
Всего: 30



Эта программка пишет на рабочем столе строчку букв.
MVS2005(не bilder).
Код

#include <windows.h>
#include <wchar.h>
#define UNICODE


int APIENTRY WinMain(
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow)
{
    HWND hWnd = GetDesktopWindow();
    HDC hDC = GetWindowDC( hWnd );

    LOGFONT lf = {0};
    lf.lfHeight = 30;
    lf.lfWidth = 15;
    wcscpy( lf.lfFaceName, TEXT("Arial"));

    HFONT hFont = CreateFontIndirect( &lf );
    SelectObject( hDC, hFont );

    LPCWSTR str = TEXT("qpwoerkdxcоловыф");
    SetBkMode( hDC, TRANSPARENT );
    TextOut( hDC, 200, 200, str, wcslen(str));
    DeleteObject( hFont );

    Sleep(2000);
    return 0;
}

PM MAIL   Вверх
Kay
Дата 1.2.2007, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



угу, спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.