crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

11 страниц V  « < 6 7 8 9 10 > »   
Ответить в данную темуНачать новую тему
> Обновления в форуме
Litkevich Yuriy
  опции профиля:
сообщение 31.7.2008, 15:54
Сообщение #71


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ща заценим:
---
кнопка не нажимается, т.е. ничего не происходит, опять кэш чистить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Багира
  опции профиля:
сообщение 31.7.2008, 15:55
Сообщение #72


Злоба_дня
***

Группа: Администратор
Сообщений: 314
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 2

Спасибо сказали: 16 раз(а)




Репутация:   4  


Litkevich Yuriy, угу
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.7.2008, 15:56
Сообщение #73


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Ага, после прочистки Кэша:
Раскрывающийся текст

/*!
* \file mainwindow.cpp
* \brief Реализация класса "Главное окно программы".
*/

#include <QtGui>

#include "mainwindow.h"
#include "mdichild.h"
#include "appearancedialog.h"
#include "syssettings.h"



MainWindow::MainWindow()
{
mdiArea = new QMdiArea;
setCentralWidget(mdiArea);
connect(mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow *)), this, SLOT(updateMenus()));

windowMapper = new QSignalMapper(this);
connect(windowMapper, SIGNAL(mapped(QWidget *)), this, SLOT(setActiveSubWindow(QWidget *)));

createActions(); // Создаем действия
createMenus(); // Создаем меню
createToolBars(); // Создаем панель инструментов
createStatusBar(); // Создаем панель статуса
readWindowSettings();// Читаем настройки окна
// Создаем экземпляр класса сесии
auth = Session::InitInstance();


connect(this, SIGNAL(SigShow()), SLOT(SlotOnShow()));


}

MainWindow::~MainWindow()
{
auth->FreeInstance();
}

bool MainWindow::event(QEvent *p_event)
{
if( p_event->type() == QEvent::ShowToParent)
emit SigShow();

return QWidget::event(p_event);
}

/*=====================================================================
Постинициализация
===================================================================*/
void MainWindow::SlotOnShow()
{
QString errmsg;
QString title = tr("Ошибка программы");

qDebug() << "SlotOnShow: " << QDateTime::currentDateTime() << "\n\r";

// Вход от имени анонимного пользователя
auth->LoginAnonymous();

// Обновляем меню
updateMenus();

// Проверяем все ли хорошо с настройками
if (!auth->isGood(errmsg))
{
QMessageBox::critical(this, title, tr("Ошибка настроек, обратитесь к специалисту. Сообщение: \n\r") + errmsg);
return;
}

// Здесь проверяется и устанавливается соединение с БД.
bool ok;
QSqlDatabase app_db = QSqlDatabase::database("appdb");
QSqlQuery query(app_db);
QString querystr;
QString qerr;

QString db_driver;
QString db_name;
QString db_user_name;
QString db_user_paswd;


querystr="SELECT F_VALUE FROM APPSETTINGS \
WHERE ((F_TYPE='db_driver') OR (F_TYPE='db_name') OR \
(F_TYPE='db_user_name') OR (F_TYPE='db_user_paswd')) \
ORDER BY F_TYPE ASC";
ok = query.exec(querystr);
qDebug() << "select DB settings - " << ok << "\n\r";

if (!ok)
{
qerr = query.lastError().text();
QMessageBox::critical(0, title,
tr("Невозможно прочитать настройки БД.\n\r Причина: ")+qerr,
QMessageBox::ok);
}

query.first();
if (!query.isValid())
{
qerr = query.lastError().text();
QMessageBox::critical(0, title,
tr("Невозможно прочитать настройки БД.\n\r Причина: ")+qerr,
QMessageBox::ok);
}

db_driver = query.value(0).toString();
query.next();
db_name = query.value(0).toString();
query.next();
db_user_name = query.value(0).toString();
query.next();
db_user_paswd = query.value(0).toString();

db_main = QSqlDatabase::addDatabase(db_driver,"maindb");
db_main.setDatabaseName(db_name);
db_main.setUserName(db_user_name);
db_main.setPassword(db_user_paswd);
qDebug() << "db_main.open: " << QDateTime::currentDateTime() << "\n\r";
ok = db_main.open();

if (!ok)
{
qerr = db_main.lastError().text();
QMessageBox::critical(0, title,
QObject::tr("Невозможно установить соединение c БД.\n\r")+qerr,
QMessageBox::ok);
}
qDebug() << "db_main.open: " << QDateTime::currentDateTime() << "\n\r";
qDebug() << db_main << "\n\r";
}


/*=====================================================================
Создание действий
===================================================================*/
void MainWindow::createActions()
{

// Меню "Файл"
menuFile = menuBar()->addMenu(tr("&Файл"));

newAct = new QAction(QIcon(":/images/new.png"), tr("&Новый"), this);
newAct->setShortcut(tr("Ctrl+N"));
newAct->setStatusTip(tr("Создать новый файл"));
connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
menuFile->addAction(newAct);

openAct = new QAction(QIcon(":/images/open.png"), tr("&Открыть..."), this);
openAct->setShortcut(tr("Ctrl+O"));
openAct->setStatusTip(tr("Открыть существующий файл"));
connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
menuFile->addAction(openAct);

saveAct = new QAction(QIcon(":/images/save.png"), tr("&Сохранить"), this);
saveAct->setShortcut(tr("Ctrl+S"));
saveAct->setStatusTip(tr("Сохранить документ на диск"));
connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));
menuFile->addAction(saveAct);

saveAsAct = new QAction(tr("Сохранить &как..."), this);
saveAsAct->setStatusTip(tr("Сохранить документ под другим именем"));
connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs()));
menuFile->addAction(saveAsAct);

menuFile->addSeparator();

exitAct = new QAction(tr("В&ыход"), this);
exitAct->setShortcut(tr("Ctrl+Q"));
exitAct->setStatusTip(tr("Выход из программы"));
connect(exitAct, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));
menuFile->addAction(exitAct);

// Меню "Правка"
menuEdit = menuBar()->addMenu(tr("&Правка"));

cutAct = new QAction(QIcon(":/images/cut.png"), tr("&Вырезать"), this);
cutAct->setShortcut(tr("Ctrl+X"));
cutAct->setStatusTip(tr("Cut the current selection's contents to the "
"clipboard"));
connect(cutAct, SIGNAL(triggered()), this, SLOT(cut()));
menuEdit->addAction(cutAct);

copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Копировать"), this);
copyAct->setShortcut(tr("Ctrl+C"));
copyAct->setStatusTip(tr("Copy the current selection's contents to the "
"clipboard"));
connect(copyAct, SIGNAL(triggered()), this, SLOT(copy()));
menuEdit->addAction(copyAct);

pasteAct = new QAction(QIcon(":/images/paste.png"), tr("Вст&авить"), this);
pasteAct->setShortcut(tr("Ctrl+V"));
pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current "
"selection"));
connect(pasteAct, SIGNAL(triggered()), this, SLOT(paste()));
menuEdit->addAction(pasteAct);

// Меню "Вид"
//menuView = menuBar()->addMenu(tr("&Вид"));

// Меню Отчеты
//actLogin = new QAction(tr("Войти..."), this);
//actLogin->setStatusTip(tr("Войти в систему с определенным именем"));
//connect(actLogin, SIGNAL(triggered()), this, SLOT(login()));

// Меню "Оператор"
menuOperator = menuBar()->addMenu(tr("Опе&ратор"));

actLogin = new QAction(tr("Войти..."), this);
actLogin->setStatusTip(tr("Войти в систему с определенным именем"));
connect(actLogin, SIGNAL(triggered()), this, SLOT(login()));
menuOperator->addAction(actLogin);

actLogout = new QAction(tr("Выйти"), this);
actLogout->setStatusTip(tr("Выйти из системы"));
connect(actLogout, SIGNAL(triggered()), this, SLOT(logout()));
menuOperator->addAction(actLogout);

// Меню "Настройка"
menuSetting = menuBar()->addMenu(tr("&Настройка"));

actSettings = new QAction(tr("Программа..."), this);
actSettings->setStatusTip(tr("Настройки ПО"));
connect(actSettings, SIGNAL(triggered()), this, SLOT(Settings()));
menuSetting->addAction(actSettings);

actAppear = new QAction(tr("Оформление..."), this);
actAppear->setStatusTip(tr("Настройки внешнего вида"));
connect(actAppear, SIGNAL(triggered()), this, SLOT(SlotAppearance()));
menuSetting->addAction(actAppear);

actCalibrate = new QAction(tr("Коррекция Т.У. ..."), this);
actCalibrate->setStatusTip(tr("Коррекция показаний эл. счетчиков Т.У."));
connect(actCalibrate, SIGNAL(triggered()), this, SLOT(SlotCalibrate()));
menuSetting->addAction(actCalibrate);

actPoint = new QAction(tr("Настройка Т.У. ..."), this);
actPoint->setStatusTip(tr("Настройка точек учета"));
connect(actPoint, SIGNAL(triggered()), this, SLOT(SlotPoint()));
menuSetting->addAction(actPoint);

// Меню "Окно"
menuWindow = menuBar()->addMenu(tr("&Окно"));

closeAct = new QAction(tr("&Закрыть"), this);
closeAct->setShortcut(tr("Ctrl+F4"));
closeAct->setStatusTip(tr("Закрыть активное окно"));
connect(closeAct, SIGNAL(triggered()),
mdiArea, SLOT(closeActiveSubWindow()));

closeAllAct = new QAction(tr("Закрыть все"), this);
closeAllAct->setStatusTip(tr("Закрыть все окна"));
connect(closeAllAct, SIGNAL(triggered()),
mdiArea, SLOT(closeAllSubWindows()));

tileAct = new QAction(tr("&Мозаика"), this);
tileAct->setStatusTip(tr("Tile the windows"));
connect(tileAct, SIGNAL(triggered()), mdiArea, SLOT(tileSubWindows()));

cascadeAct = new QAction(tr("&Каскад"), this);
cascadeAct->setStatusTip(tr("Cascade the windows"));
connect(cascadeAct, SIGNAL(triggered()), mdiArea, SLOT(cascadeSubWindows()));

nextAct = new QAction(tr("Сл&едующее"), this);
nextAct->setStatusTip(tr("Move the focus to the next window"));
connect(nextAct, SIGNAL(triggered()),
mdiArea, SLOT(activateNextSubWindow()));

previousAct = new QAction(tr("П&редыдущее"), this);
previousAct->setStatusTip(tr("Move the focus to the previous "
"window"));
connect(previousAct, SIGNAL(triggered()),
mdiArea, SLOT(activatePreviousSubWindow()));

separatorAct = new QAction(this);
separatorAct->setSeparator(true);

updateWindowMenu();
connect(menuWindow, SIGNAL(aboutToShow()), this, SLOT(updateWindowMenu()));

menuBar()->addSeparator();

// Меню "Справка"
menuHelp = menuBar()->addMenu(tr("&Справка"));

aboutAct = new QAction(tr("&О программе"), this);
aboutAct->setStatusTip(tr("Show the application's About box"));
connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
menuHelp->addAction(aboutAct);

aboutQtAct = new QAction(tr("О библиотеке &Qt"), this);
aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
menuHelp->addAction(aboutQtAct);


}

/*=====================================================================
Создание Меню
===================================================================*/
void MainWindow::createMenus()
{

}

/*=====================================================================
Создание панели инструментов
===================================================================*/
void MainWindow::createToolBars()
{
// Панель инструментов "Файл"
ToolBarFile = addToolBar(tr("Файл"));
ToolBarFile->addAction(newAct);
ToolBarFile->addAction(openAct);
ToolBarFile->addAction(saveAct);

// Панель инструментов "Правка"
ToolBarEdit = addToolBar(tr("Правка"));
ToolBarEdit->addAction(cutAct);
ToolBarEdit->addAction(copyAct);
ToolBarEdit->addAction(pasteAct);
}

/*=====================================================================
Создание строки статуса
===================================================================*/
void MainWindow::createStatusBar()
{
statusBar()->showMessage(tr("Готов"));
}

/*=====================================================================
Обновление заголовка
===================================================================*/
void MainWindow::updateTitle()
{
setWindowTitle(tr("ЭСТОП АСУ @ %1").arg(auth->GetUserString()));
}


/*===================================================================
Обновление меню
=====================================================================*/
void MainWindow::updateMenus()
{
bool hasMdiChild;
bool hasSelection;

hasMdiChild = (activeMdiChild() != 0);
hasSelection = (activeMdiChild() && activeMdiChild()->textCursor().hasSelection());

// Запрещаем ответственные пункты
actSettings->setEnabled(false);
actPoint->setEnabled(false);
actCalibrate->setEnabled(false);

qDebug() << "MainWindow::updateMenus GetGroupID()= " << auth->GetGroupID() << "\n\r";

switch(auth->GetGroupID())
{
case Session::GID_ROOT:
{

}
case Session::GID_ADMIN:
{
// Делаем доступным для админа пункты в меню "Настройка"
actSettings->setEnabled(true);
actPoint->setEnabled(true);
}
case Session::GID_USER:
{
// Делаем доступным для пользователя пункты в меню "Настройка"
actCalibrate->setEnabled(true);
}
default:
{
// Меню "Файл"
saveAct->setEnabled(hasMdiChild);
saveAsAct->setEnabled(hasMdiChild);
// Меню "Правка"
pasteAct->setEnabled(hasMdiChild);
cutAct->setEnabled(hasSelection);
copyAct->setEnabled(hasSelection);
// Меню "Окно"
closeAct->setEnabled(hasMdiChild);
closeAllAct->setEnabled(hasMdiChild);
tileAct->setEnabled(hasMdiChild);
cascadeAct->setEnabled(hasMdiChild);
nextAct->setEnabled(hasMdiChild);
previousAct->setEnabled(hasMdiChild);
separatorAct->setVisible(hasMdiChild);
}
}

updateTitle(); // Обновляем заголовок главного окна
}


/*===================================================================
Обработка события closeEvent
=====================================================================*/
void MainWindow::closeEvent(QCloseEvent *p_event)
{
mdiArea->closeAllSubWindows();
if (activeMdiChild())
{
p_event->ignore();
//QMessageBox::about(this, tr("MainWindow::closeEvent"), tr("Закройте все окна"));
}
else
{
//QMessageBox::about(this, tr("MainWindow::closeEvent"), tr("activeMdiChild()==false"));
writeWindowSettings();
p_event->accept();
}
}




/*===================================================================
Обновление меню "Окно"
=====================================================================*/
void MainWindow::updateWindowMenu()
{
menuWindow->clear();
menuWindow->addAction(closeAct);
menuWindow->addAction(closeAllAct);
menuWindow->addSeparator();
menuWindow->addAction(tileAct);
menuWindow->addAction(cascadeAct);
menuWindow->addSeparator();
menuWindow->addAction(nextAct);
menuWindow->addAction(previousAct);
menuWindow->addAction(separatorAct);

QList<QMdiSubWindow *> windows = mdiArea->subWindowList();
separatorAct->setVisible(!windows.isEmpty());

for (int i = 0; i < windows.size(); ++i) {
MdiChild *child = qobject_cast<MdiChild *>(windows.at(i)->widget());

QString text;
if (i < 9)
{
text = tr("&%1 %2").arg(i + 1)
.arg(child->userFriendlyCurrentFile());
}
else
{
text = tr("%1 %2").arg(i + 1)
.arg(child->userFriendlyCurrentFile());
}
QAction *action = menuWindow->addAction(text);
action->setCheckable(true);
action->setChecked(child == activeMdiChild());
connect(action, SIGNAL(triggered()), windowMapper, SLOT(map()));
windowMapper->setMapping(action, windows.at(i));
}
}


/*=====================================================================
Создание дочернего окна
===================================================================*/
MdiChild *MainWindow::createMdiChild()
{
MdiChild *child = new MdiChild;
mdiArea->addSubWindow(child);

connect(child, SIGNAL(copyAvailable(bool)), cutAct, SLOT(setEnabled(bool)));
connect(child, SIGNAL(copyAvailable(bool)), copyAct, SLOT(setEnabled(bool)));

return child;
}




/*=====================================================================
Обработка действий
===================================================================*/

/* Файл->Новый */
void MainWindow::newFile()
{
MdiChild *child = createMdiChild();
child->newFile();
child->show();
}
/* Файл->Открыть */
void MainWindow::open()
{
QString fileName = QFileDialog::getOpenFileName(this);
if (!fileName.isEmpty()) {
QMdiSubWindow *existing = findMdiChild(fileName);
if (existing) {
mdiArea->setActiveSubWindow(existing);
return;
}

MdiChild *child = createMdiChild();
if (child->loadFile(fileName)) {
statusBar()->showMessage(tr("Файл загружен"), 2000);
child->show();
} else {
child->close();
}
}
}
/* Файл->Сохранить */
void MainWindow::save()
{
if (activeMdiChild() && activeMdiChild()->save())
statusBar()->showMessage(tr("Файл сохранен"), 2000);
}
/* Файл->Сохранить как */
void MainWindow::saveAs()
{
if (activeMdiChild() && activeMdiChild()->saveAs())
statusBar()->showMessage(tr("Файл сохранен"), 2000);
}

/* Правка->Вырезать */
void MainWindow::cut()
{
if (activeMdiChild())
activeMdiChild()->cut();
}
/* Правка->Копировать */
void MainWindow::copy()
{
if (activeMdiChild())
activeMdiChild()->copy();
}
/* Правка->Вставить */
void MainWindow::paste()
{
if (activeMdiChild())
activeMdiChild()->paste();
}

/* Оператор->Вход */
void MainWindow::login()
{
bool tf=false;

qDebug() << "================ MAIN WINDOW LOGIN ================" << "\n\r";
if (auth->ShowLoginDialog())
{
if (auth->GetGroupID()!=auth->GID_ANONYMOUS)
tf=false;
else
tf=true;
actLogin->setEnabled(tf);
updateMenus();
}
}

/* Оператор->Выход */
void MainWindow::logout()
{
auth->LoginAnonymous(); // Вход от имени анонимного пользователя
actLogin->setEnabled(true);
updateMenus();

}

/* Настройка->Настройка */
void MainWindow::Settings()
{

auth->ShowSettingDialog();
}

/* Настройка->Оформление */
void MainWindow::SlotAppearance()
{
AppearanceDialog dlg;
QSqlDatabase app_db = QSqlDatabase::database("appdb");

bool ok=false;
QSqlQuery query(app_db);
QString querystr;
QString qerr;

if (dlg.exec() == QDialog::Accepted)
{
// Заполняем таблицу прочих настроек
querystr="UPDATE APPSETTINGS SET F_VALUE=:value WHERE (F_TYPE=:type)";
ok = query.prepare(querystr);
if (!ok)
{
QString qerr = query.lastError().text();
QMessageBox::critical(0, QObject::tr("Ошибка"),
QObject::tr("Невозможно сохранить настройки.\n\r")+qerr,
QMessageBox::ok);
return;
}
query.bindValue(":type", "style");
query.bindValue(":value", dlg.box_style->currentText());
ok = query.exec();
if (!ok)
{
QString qerr = query.lastError().text();
QMessageBox::critical(0, QObject::tr("Ошибка"),
QObject::tr("Невозможно сохранить настройки.\n\r")+qerr,
QMessageBox::ok);
}
}

}

/* Настройка->Корекция Т.У. */
void MainWindow::SlotCalibrate()
{

//auth->ShowSettingDialog();
}

/* Настройка->Настойка Т.У. */
void MainWindow::SlotPoint()
{
SysSettings dlg(db_main, this);

dlg.exec();
}


/* Справка->О программе */
void MainWindow::about()
{
QMessageBox::about(this, tr("О программе"),
tr("Программа для ЭСТОП"));
}

/*=====================================================================
Чтение настроек окна
===================================================================*/
void MainWindow::readWindowSettings()
{
QSettings settings;
bool wstate = settings.value("winmax", false).toBool();
QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
QSize size = settings.value("size", QSize(400, 400)).toSize();

move(pos);
resize(size);
if (wstate)
showMaximized();
}
/*=====================================================================
Сохранение настроек окна
===================================================================*/
void MainWindow::writeWindowSettings()
{
QSettings settings;
settings.setValue("winmax",isMaximized());
settings.setValue("pos", pos());
settings.setValue("size", size()); // здесь касяк, надо нетолько размер запоминать но и состояние развернуто или нет
}
/*=====================================================================
Чтение настроек
===================================================================*/
void MainWindow::readSettings()
{
QSettings settings;
QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
QSize size = settings.value("size", QSize(400, 400)).toSize();
move(pos);
resize(size);
}
/*=====================================================================
Сохранение настроек
===================================================================*/
void MainWindow::writeSettings()
{
QSettings settings;
settings.setValue("pos", pos());
settings.setValue("size", size()); // здесь касяк, надо нетолько размер запоминать но и состояние развернуто или нет
}

/*=====================================================================
Чтение основных настроек и их проверка
===================================================================*/
void MainWindow::mainSettings()
{

}

/*=====================================================================

===================================================================*/
MdiChild *MainWindow::activeMdiChild()
{
if (QMdiSubWindow *activeSubWindow = mdiArea->activeSubWindow())
return qobject_cast<MdiChild *>(activeSubWindow->widget());
return 0;
}

QMdiSubWindow *MainWindow::findMdiChild(const QString &fileName)
{
QString canonicalFilePath = QFileInfo(fileName).canonicalFilePath();

foreach (QMdiSubWindow *window, mdiArea->subWindowList()) {
MdiChild *mdiChild = qobject_cast<MdiChild *>(window->widget());
if (mdiChild->currentFile() == canonicalFilePath)
return window;
}
return 0;
}

void MainWindow::setActiveSubWindow(QWidget *window)
{
if (!window)
return;
mdiArea->setActiveSubWindow(qobject_cast<QMdiSubWindow *>(window));
}



надо что-то делать со смйлами :( они там появились, в коде
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Багира
  опции профиля:
сообщение 31.7.2008, 16:03
Сообщение #74


Злоба_дня
***

Группа: Администратор
Сообщений: 314
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 2

Спасибо сказали: 16 раз(а)




Репутация:   4  


Litkevich Yuriy, что должно было быть вместо этих смайлов?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.7.2008, 16:11
Сообщение #75


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


QMessageBox::ok);
QMessageBox::Ok);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Багира
  опции профиля:
сообщение 31.7.2008, 16:11
Сообщение #76


Злоба_дня
***

Группа: Администратор
Сообщений: 314
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 2

Спасибо сказали: 16 раз(а)




Репутация:   4  


Все, нашла. Изменила вызов этому смайлу. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.7.2008, 16:12
Сообщение #77


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


надо смайловый движек доработать так, чтобы за смайл считалась запись отделенная с двух сторон пробелами от остального текста, иначе тебе возни сними будет много при всякой новой фиче добавленной в форум
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Багира
  опции профиля:
сообщение 31.7.2008, 16:12
Сообщение #78


Злоба_дня
***

Группа: Администратор
Сообщений: 314
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 2

Спасибо сказали: 16 раз(а)




Репутация:   4  


Litkevich Yuriy, все намного проще - меняю вызов смайла, и все дела. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 31.7.2008, 16:37
Сообщение #79


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


int hel = 1;
char c = 'k';
int hel = 1;
char c = 'k';
int hel = 1;
char c = 'k';
int hel = 1;
char c = 'k';
int hel = 1;
char c = 'k';
// Îáðàáîòêà îäíîé ñòðîêè ôàéëà (îäíîãî áëîêà)
void LogReader::ParseBlock()
{
    Event    event;
    GPOINT    gp(GEO_INVALID, GEO_INVALID);
    m_strDate = "00/00/00";
    m_strTime = "00:00:00";
    bool    bBadCoor = false, bBadWSpd = false, bBadHgps = false, bBreak = false;
    bool    bBadCoor_dop = false;

    GetPrivateProfileString("Settings", "Unit", "TTA12", unit, MAXPATH, gl_strIniFile.c_str());
    GPOINT gp1(GEO_INVALID, GEO_INVALID);
    int uti = 0;

    for (unsigned i = 0; i < m_vBlock.size(); i++)
    {
        DWord        var = m_vBlock[i];
        unsigned    adr = var % 256;
        switch (adr)
        {
            case 0002:
                event.i002 = GET_MS( var);
                event.board = temp_.Get( (var & 0x3F8000) << 7);    // ñ 16 ïî 22 áèòû (ñ 1)
                if (m_vTemperatureData.empty() || m_vTemperatureData.back() != var)    {
                    m_vTemperatureData.push_back( var);
                }
                break;
            case 0004:
                // ïðè÷èíà ïåðåçàãðóçêè - ñ÷èòàåì çà ñîáûòèå
                event.codes.push_back( "!_RESET_!");
                event.modes.push_back( "");
                event.actives.push_back( true);
                var = (var >> 10) & 0x1F;
                if (var == 0)
                    event.codes.back() += " PON";                    //_power_on
                else
                {
                    if (var &  1)    event.codes.back() += " R|PD";    //_ext_reset
                    if (var &  2)    event.codes.back() += " WS";    //_wdt_sh4_start
                    if (var &  4)    event.codes.back() += " WW";    //_wdt_sh4_work
                    if (var &  8)    event.codes.back() += " WE";    //_wdt_h8
                    if (var & 16)    event.codes.back() += " SR";    //_sh4_request
                }
                break;
            case 0011:
                // ñîñòîÿíèå àïïàðàòíîé ÷àñòè - ëþáîå èçìåíåíèå ñ÷èòàåì çà ñîáûòèå
                //SET_BIT( var, 29);    // óñòàíîâèòü ÌÑ â 1
                //SET_BIT( var, 30);
                event.i003 = GET_MS( var);
                if (event.i003 == 3 && (m_vHardwareData.empty() || m_vHardwareData.back() != var))
                {
                    if (!m_vHardwareData.empty())    {
                        event.codes.push_back( "!_HARDWARE_!");
                        event.modes.push_back( "");
                        event.actives.push_back( true);
                    }
                    m_vHardwareData.push_back( var);
                    event.denial = TEST_BIT( var, 11-1) == 0 ? 0 : m_dOnValue;
                }
                break;
            case 0037:
            {
                int    Code = (var >> 20) & 0x7F;
                int    Ind = GetIndByCode(Code);
                if (Ind >= 0)
                {
                    _String    str;
                    struct EventName eventName = EventNames[Ind];
                    event.codes.push_back(eventName.name);
                    event.modes.push_back(eventName.mode);
                    event.actives.push_back(TEST_BIT(var, 29-1) == 0);
                    str = event.actives.back() ? eventName.active : eventName.not_active;
                    if (!str.isEmpty())
                        event.codes.back() += ("_" + str);
                    if (strcmp(eventName.name, "PWR") == 0)
                        bBreak = true;                   // ðàçðûâàòü òðåê ïî ïèòàíèþ
                }
                else
                {
                    // íåèçâåñòíîå ñîáûòèå - çàïèñàòü åãî êîä
                    char    buff[16];
                    sprintf(buff, "event #%d", Code);
                    event.codes.push_back(buff);
                    event.modes.push_back("");
                    event.actives.push_back(TEST_BIT(var, 29-1) == 0);
                    m_vInvalidEvent.push_back(Code);
                }
                break;
            }
            case 0076:
                if(!strcmp(unit, "TTA12h"))
                {
                    if (GET_MS(var) != 3 && GET_SDI(var) == 1)
                        bBadHgps = true;
                    else if (GET_SDI(var) == 1)
                    {
                        event.Hgps = h.Get(var);
                        event.i076 = GET_MS(var);
                    }
                } else if(!strcmp(unit, "TTA12"))
                {
                    if (GET_MS(var) != 3)
                        bBadHgps = true;
                    else
                    {
                        event.Hgps = h.Get(var);
                        event.i076 = GET_MS(var);
                    }
                }
                break;
            case 0101:
                event.i101 = GET_MS(var);
                event.hdop = hvdop.Get(var);
                break;
            case 0102:
                event.i102 = GET_MS(var);
                event.vdop = hvdop.Get(var);
                break;
            case 0103:
                event.i103 = GET_MS(var);
                event.course = NormalizeBrg(ang.Get(var));
                break;
            case 0110:
                if (GET_MS(var) != 3)
                    bBadCoor = true;
                else
                    gp.lat = lat.Get(var) * GEO_1_DEG;
                break;
            case 0111:
                if (GET_MS(var) != 3)
                    bBadCoor = true;
                else
                    gp.lon = lon.Get(var) * GEO_1_DEG;
                break;
           case 0112:
                if(!strcmp(unit, "TTA12h"))

Объясните, пожалуйста, чайнику как скрывающимся кодом пользоваться ( [expand], который)?

[expand=TTTTT]
int k = 0;
char* h = "Hello, world!";

Написал руками! Тест....
Нифига у меня не получилось! :(

Сообщение отредактировал AD - 31.7.2008, 16:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.7.2008, 16:39
Сообщение #80


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


обнови кэшь браузера, рядом с кнопкой code есть кнопка "Ex" тэгом пользуешь как и [code]тра-ля-ля[/code]
[expand]тра-ля-ля[/expand]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

11 страниц V  « < 6 7 8 9 10 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


14 чел. читают эту тему (гостей: 14, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 10:32