Масштаб |
Здравствуйте, гость ( Вход | Регистрация )
Масштаб |
Гость_Alexey_* |
3.4.2008, 13:35
Сообщение
#1
|
Гости |
Для текствого редактора необходимо реализовать масштаб подскажите как это сделать.
Код программы CODE //MdiChild.h
#ifndef MDICHILD_H #define MDICHILD_H #include <QTextEdit> class MdiChild : public QTextEdit { Q_OBJECT public: MdiChild(); void newFile(); bool loadFile(const QString &fileName); bool save(); bool saveAs(); bool saveFile(const QString &fileName); void ALeft(); void ARight(); void ACenter(); void txtStyle(int styleIndex); void txtSize(const QString &p); void txtFamily(const QString &f); void txtColor(); QString userFriendlyCurrentFile(); QString currentFile() { return curFile; } protected: void closeEvent(QCloseEvent *event); private slots: void documentWasModified(); private: bool maybeSave(); void setCurrentFile(const QString &fileName); QString strippedName(const QString &fullFileName); QString curFile; bool isUntitled; }; #endif //MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QAction> #include <QApplication> #include <QClipboard> #include <QColorDialog> #include <QComboBox> #include <QFile> #include <QFileDialog> #include <QFileInfo> #include <QFontDatabase> #include <QMenu> #include <QMenuBar> #include <QPrintDialog> #include <QPrinter> #include <QTextCodec> #include <QTextEdit> #include <QToolBar> #include <QTextCursor> #include <QTextList> #include <QtDebug> #include <QCloseEvent> #include <QMessageBox> class QAction; class QMenu; class QWorkspace; class MdiChild; class QSignalMapper; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); protected: void closeEvent(QCloseEvent *event); private slots: void newFile(); void open(); void save(); void saveAs(); void cut(); void copy(); void paste(); void about(); void updateMenus(); void updateWindowMenu(); void AllignLeft(); void AllignRight(); void AllignCenter(); MdiChild *createMdiChild(); void textFamily(const QString &f); void textSize(const QString &p); void textStyle(int styleIndex); void textColor(); private: void createActions(); void createMenus(); void createToolBars(); void createStatusBar(); void readSettings(); void writeSettings(); MdiChild *activeMdiChild(); MdiChild *findMdiChild(const QString &fileName); QWorkspace *workspace; QSignalMapper *windowMapper; QMenu *fileMenu; QMenu *editMenu; QMenu *windowMenu; QMenu *textMenu; QMenu *helpMenu; QToolBar *fileToolBar; QToolBar *editToolBar; QToolBar *textToolBar; QAction *newAct; QAction *openAct; QAction *saveAct; QAction *saveAsAct; QAction *exitAct; QAction *cutAct; QAction *copyAct; QAction *pasteAct; QAction *closeAct; QAction *closeAllAct; QAction *tileAct; QAction *cascadeAct; QAction *arrangeAct; QAction *nextAct; QAction *previousAct; QAction *separatorAct; QAction *aboutAct; QAction *allignLeftAct; QAction *allignRightAct; QAction *allignCenterAct; QAction *textColorAct; QComboBox *comboStyle; QComboBox *comboFont; QComboBox *comboSize; }; #endif //MdiChild.cpp #include <QtGui> #include "mdichild.h" MdiChild::MdiChild() { setAttribute(Qt::WA_DeleteOnClose); isUntitled = true; connect(document(), SIGNAL(contentsChanged()), this, SLOT(documentWasModified())); } /************************************************/ void MdiChild::ALeft() { setAlignment(Qt::AlignLeft); } void MdiChild::ARight() { setAlignment(Qt::AlignRight); } void MdiChild::ACenter() { setAlignment(Qt::AlignCenter); } /****************************************************/ void MdiChild:: txtStyle(int styleIndex) { QTextCursor cursor = textCursor(); if (styleIndex != 0) { QTextListFormat::Style style = QTextListFormat::ListDisc; switch (styleIndex) { default: case 1: style = QTextListFormat::ListDisc; break; case 2: style = QTextListFormat::ListCircle; break; case 3: style = QTextListFormat::ListSquare; break; case 4: style = QTextListFormat::ListDecimal; break; case 5: style = QTextListFormat::ListLowerAlpha; break; case 6: style = QTextListFormat::ListUpperAlpha; break; } cursor.beginEditBlock(); QTextBlockFormat blockFmt = cursor.blockFormat(); QTextListFormat listFmt; if (cursor.currentList()) { listFmt = cursor.currentList()->format(); } else { listFmt.setIndent(blockFmt.indent() + 1); blockFmt.setIndent(0); cursor.setBlockFormat(blockFmt); } listFmt.setStyle(style); cursor.createList(listFmt); cursor.endEditBlock(); } else { // #### QTextBlockFormat bfmt; bfmt.setObjectIndex(-1); cursor.mergeBlockFormat(bfmt); } } void MdiChild:: txtSize(const QString &p) { setFontPointSize(p.toFloat()); } void MdiChild:: txtColor() { QColor col = QColorDialog::getColor(textColor(), this); if (!col.isValid()) return; setTextColor(col); //colorChanged(col); } void MdiChild::txtFamily(const QString &f) { setFontFamily(f); } /***************************************************/ void MdiChild::newFile() { static int sequenceNumber = 1; isUntitled = true; curFile = tr("document%1.txt").arg(sequenceNumber++); setWindowTitle(curFile + "[*]"); } bool MdiChild::loadFile(const QString &fileName) { QFile file(fileName); if (!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this, tr("MDI"), tr("Cannot read file %1:\n%2.") .arg(fileName) .arg(file.errorString())); return false; } QTextStream in(&file); QApplication::setOverrideCursor(Qt::WaitCursor); setPlainText(in.readAll()); QApplication::restoreOverrideCursor(); setCurrentFile(fileName); return true; } bool MdiChild::save() { if (isUntitled) { return saveAs(); } else { return saveFile(curFile); } } bool MdiChild::saveAs() { QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), curFile); if (fileName.isEmpty()) return false; return saveFile(fileName); } bool MdiChild::saveFile(const QString &fileName) { QFile file(fileName); if (!file.open(QFile::WriteOnly | QFile::Text)) { QMessageBox::warning(this, tr("MDI"), tr("Cannot write file %1:\n%2.") .arg(fileName) .arg(file.errorString())); return false; } QTextStream out(&file); QApplication::setOverrideCursor(Qt::WaitCursor); out << toPlainText(); QApplication::restoreOverrideCursor(); setCurrentFile(fileName); return true; } QString MdiChild::userFriendlyCurrentFile() { return strippedName(curFile); } void MdiChild::closeEvent(QCloseEvent *event) { if (maybeSave()) { event->accept(); } else { event->ignore(); } } void MdiChild::documentWasModified() { setWindowModified(document()->isModified()); } bool MdiChild::maybeSave() { if (document()->isModified()) { int ret = QMessageBox::warning(this, tr("MDI"), tr("'%1' has been modified.\n" "Do you want to save your changes?") .arg(userFriendlyCurrentFile()), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape); if (ret == QMessageBox::Yes) return save(); else if (ret == QMessageBox::Cancel) return false; } return true; } void MdiChild::setCurrentFile(const QString &fileName) { curFile = QFileInfo(fileName).canonicalFilePath(); isUntitled = false; document()->setModified(false); setWindowModified(false); setWindowTitle(userFriendlyCurrentFile() + "[*]"); } QString MdiChild::strippedName(const QString &fullFileName) { return QFileInfo(fullFileName).fileName(); } //MainWindow.cpp #include <QtGui> #include "mainwindow.h" #include "mdichild.h" MainWindow::MainWindow() { workspace = new QWorkspace; setCentralWidget(workspace); connect(workspace, SIGNAL(windowActivated(QWidget *)), this, SLOT(updateMenus())); windowMapper = new QSignalMapper(this); connect(windowMapper, SIGNAL(mapped(QWidget *)), workspace, SLOT(setActiveWindow(QWidget *))); createActions(); createMenus(); createToolBars(); createStatusBar(); updateMenus(); readSettings(); setWindowTitle(tr("Text redactor")); } void MainWindow::closeEvent(QCloseEvent *event) { workspace->closeAllWindows(); if (activeMdiChild()) { event->ignore(); } else { writeSettings(); event->accept(); } } void MainWindow::newFile() { MdiChild *child = createMdiChild(); child->newFile(); child->show(); } void MainWindow::open() { QString fileName = QFileDialog::getOpenFileName(this); if (!fileName.isEmpty()) { MdiChild *existing = findMdiChild(fileName); if (existing) { workspace->setActiveWindow(existing); return; } MdiChild *child = createMdiChild(); if (child->loadFile(fileName)) { statusBar()->showMessage(tr("File loaded"), 2000); child->show(); } else { child->close(); } } } /*********************************************/ void MainWindow::AllignLeft() { if(activeMdiChild())activeMdiChild()->ALeft(); } void MainWindow::AllignRight() { if(activeMdiChild())activeMdiChild()->ARight(); } void MainWindow::AllignCenter() { if(activeMdiChild())activeMdiChild()->ACenter(); } /*********************************************/ void MainWindow::textFamily(const QString &f) { if(activeMdiChild())activeMdiChild()->txtFamily(f); } void MainWindow::textSize(const QString &p) { if(activeMdiChild())activeMdiChild()->txtSize(p); } void MainWindow::textStyle(int styleIndex) { if(activeMdiChild())activeMdiChild()->txtStyle(styleIndex); } void MainWindow::textColor() { if(activeMdiChild())activeMdiChild()->txtColor(); } /*********************************************/ void MainWindow::save() { if (activeMdiChild()->save()) statusBar()->showMessage(tr("File saved"), 2000); } void MainWindow::saveAs() { if (activeMdiChild()->saveAs()) statusBar()->showMessage(tr("File saved"), 2000); } void MainWindow::cut() { activeMdiChild()->cut(); } void MainWindow::copy() { activeMdiChild()->copy(); } void MainWindow::paste() { activeMdiChild()->paste(); } void MainWindow::about() { QMessageBox::about(this, tr("About MDI"), tr(" Tsimbal Alexey \n gr 450502 \n 2008")); } void MainWindow::updateMenus() { bool hasMdiChild = (activeMdiChild() != 0); saveAct->setEnabled(hasMdiChild); saveAsAct->setEnabled(hasMdiChild); pasteAct->setEnabled(hasMdiChild); closeAct->setEnabled(hasMdiChild); closeAllAct->setEnabled(hasMdiChild); tileAct->setEnabled(hasMdiChild); cascadeAct->setEnabled(hasMdiChild); arrangeAct->setEnabled(hasMdiChild); nextAct->setEnabled(hasMdiChild); previousAct->setEnabled(hasMdiChild); separatorAct->setVisible(hasMdiChild); bool hasSelection = (activeMdiChild() && activeMdiChild()->textCursor().hasSelection()); cutAct->setEnabled(hasSelection); copyAct->setEnabled(hasSelection); } void MainWindow::updateWindowMenu() { windowMenu->clear(); windowMenu->addAction(closeAct); windowMenu->addAction(closeAllAct); windowMenu->addSeparator(); windowMenu->addAction(tileAct); windowMenu->addAction(cascadeAct); windowMenu->addAction(arrangeAct); windowMenu->addSeparator(); windowMenu->addAction(nextAct); windowMenu->addAction(previousAct); windowMenu->addAction(separatorAct); QList<QWidget *> windows = workspace->windowList(); separatorAct->setVisible(!windows.isEmpty()); for (int i = 0; i < windows.size(); ++i) { MdiChild *child = qobject_cast<MdiChild *>(windows.at(i)); 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 = windowMenu->addAction(text); action->setCheckable(true); action ->setChecked(child == activeMdiChild()); connect(action, SIGNAL(triggered()), windowMapper, SLOT(map())); windowMapper->setMapping(action, child); } } MdiChild *MainWindow::createMdiChild() { MdiChild *child = new MdiChild; workspace->addWindow(child); connect(child, SIGNAL(copyAvailable(bool)), cutAct, SLOT(setEnabled(bool))); connect(child, SIGNAL(copyAvailable(bool)), copyAct, SLOT(setEnabled(bool))); return child; } void MainWindow::createActions() { newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this); newAct->setShortcut(tr("Ctrl+N")); newAct->setStatusTip(tr("Create a new file")); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this); openAct->setShortcut(tr("Ctrl+O")); openAct->setStatusTip(tr("Open an existing file")); connect(openAct, SIGNAL(triggered()), this, SLOT(open())); saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this); saveAct->setShortcut(tr("Ctrl+S")); saveAct->setStatusTip(tr("Save the document to disk")); connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); saveAsAct = new QAction(tr("Save &As..."), this); saveAsAct->setStatusTip(tr("Save the document under a new name")); connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs())); exitAct = new QAction(tr("E&xit"), this); exitAct->setShortcut(tr("Ctrl+Q")); exitAct->setStatusTip(tr("Exit the application")); connect(exitAct, SIGNAL(triggered()), qApp, SLOT(closeAllWindows())); cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), 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())); copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), 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())); pasteAct = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), 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())); closeAct = new QAction(tr("Cl&ose"), this); closeAct->setShortcut(tr("Ctrl+F4")); closeAct->setStatusTip(tr("Close the active window")); connect(closeAct, SIGNAL(triggered()), workspace, SLOT(closeActiveWindow())); closeAllAct = new QAction(tr("Close &All"), this); closeAllAct->setStatusTip(tr("Close all the windows")); connect(closeAllAct, SIGNAL(triggered()), workspace, SLOT(closeAllWindows())); tileAct = new QAction(tr("&Tile"), this); tileAct->setStatusTip(tr("Tile the windows")); connect(tileAct, SIGNAL(triggered()), workspace, SLOT(tile())); cascadeAct = new QAction(tr("&Cascade"), this); cascadeAct->setStatusTip(tr("Cascade the windows")); connect(cascadeAct, SIGNAL(triggered()), workspace, SLOT(cascade())); arrangeAct = new QAction(tr("Arrange &icons"), this); arrangeAct->setStatusTip(tr("Arrange the icons")); connect(arrangeAct, SIGNAL(triggered()), workspace, SLOT(arrangeIcons())); nextAct = new QAction(tr("Ne&xt"), this); nextAct->setShortcut(tr("Ctrl+F6")); nextAct->setStatusTip(tr("Move the focus to the next window")); connect(nextAct, SIGNAL(triggered()), workspace, SLOT(activateNextWindow())); previousAct = new QAction(tr("Pre&vious"), this); previousAct->setShortcut(tr("Ctrl+Shift+F6")); previousAct->setStatusTip(tr("Move the focus to the previous " "window")); connect(previousAct, SIGNAL(triggered()), workspace, SLOT(activatePreviousWindow())); //*******************************************// allignLeftAct = new QAction(QIcon(":/images/textleft.png"), tr("All&ign Left"), this); allignLeftAct->setShortcut(tr("Ctrl+i")); allignLeftAct->setStatusTip(tr("Allign text left")); connect(allignLeftAct, SIGNAL(triggered()), this, SLOT(AllignLeft())); allignRightAct = new QAction(QIcon(":/images/textright.png"), tr("Allign Ri&ght"), this); allignRightAct->setShortcut(tr("Ctrl+g")); allignRightAct->setStatusTip(tr("Allign text right")); connect(allignRightAct, SIGNAL(triggered()), this, SLOT(AllignRight())); allignCenterAct = new QAction(QIcon(":/images/textcenter.png"), tr("Allign cente&r"), this); allignCenterAct->setShortcut(tr("Ctrl+r")); allignCenterAct->setStatusTip(tr("Allign text center")); connect(allignCenterAct, SIGNAL(triggered()), this, SLOT(AllignCenter())); //*******************************************// QPixmap pix(16, 16); pix.fill(Qt::black); textColorAct = new QAction(pix, tr("&Color..."), this); textColorAct->setShortcut(tr("Ctrl+l")); textColorAct->setStatusTip(tr("Text color")); connect(textColorAct, SIGNAL(triggered()), this, SLOT(textColor())); //********************************************// separatorAct = new QAction(this); separatorAct->setSeparator(true); aboutAct = new QAction(tr("&About"), this); aboutAct->setStatusTip(tr("Show the application's About box")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); } void MainWindow::createMenus() { fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newAct); fileMenu->addAction(openAct); fileMenu->addAction(saveAct); fileMenu->addAction(saveAsAct); fileMenu->addSeparator(); fileMenu->addAction(exitAct); editMenu = menuBar()->addMenu(tr("&Edit")); editMenu->addAction(cutAct); editMenu->addAction(copyAct); editMenu->addAction(pasteAct); textMenu = menuBar()->addMenu(tr("&Text")); textMenu->addAction(allignLeftAct); textMenu->addAction(allignRightAct); textMenu->addAction(allignCenterAct); textMenu->addSeparator(); textMenu->addAction(textColorAct); windowMenu = menuBar()->addMenu(tr("&Window")); connect(windowMenu, SIGNAL(aboutToShow()), this, SLOT(updateWindowMenu())); menuBar()->addSeparator(); helpMenu = menuBar()->addMenu(tr("&About")); helpMenu->addAction(aboutAct); } void MainWindow::createToolBars() { fileToolBar = addToolBar(tr("File")); fileToolBar->addAction(newAct); fileToolBar->addAction(openAct); fileToolBar->addAction(saveAct); editToolBar = addToolBar(tr("Edit")); editToolBar->addAction(cutAct); editToolBar->addAction(copyAct); editToolBar->addAction(pasteAct); textToolBar = addToolBar(tr("Text")); textToolBar->addAction(allignLeftAct); textToolBar->addAction(allignCenterAct); textToolBar->addAction(allignRightAct); textToolBar->addAction(textColorAct); textToolBar = new QToolBar(this); textToolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea); textToolBar->setWindowTitle(tr("Format Actions")); addToolBarBreak(Qt::TopToolBarArea); addToolBar(textToolBar); comboStyle = new QComboBox(textToolBar); textToolBar->addWidget(comboStyle); comboStyle->addItem("Standard"); comboStyle->addItem("Bullet List (Disc)"); comboStyle->addItem("Bullet List (Circle)"); comboStyle->addItem("Bullet List (Square)"); comboStyle->addItem("Ordered List (Decimal)"); comboStyle->addItem("Ordered List (Alpha lower)"); comboStyle->addItem("Ordered List (Alpha upper)"); connect(comboStyle, SIGNAL(activated(int)), this, SLOT(textStyle(int))); comboFont = new QComboBox(textToolBar); textToolBar->addWidget(comboFont); comboFont->setEditable(true); QFontDatabase db; comboFont->addItems(db.families()); connect(comboFont, SIGNAL(activated(const QString &)), this, SLOT(textFamily(const QString &))); comboFont->setCurrentIndex(comboFont->findText(QApplication::font().family())); comboSize = new QComboBox(textToolBar); comboSize->setObjectName("comboSize"); textToolBar->addWidget(comboSize); comboSize->setEditable(true); foreach(int size, db.standardSizes()) comboSize->addItem(QString::number(size)); connect(comboSize, SIGNAL(activated(const QString &)), this, SLOT(textSize(const QString &))); comboSize->setCurrentIndex(comboSize->findText(QString::number(QApplication::font() .pointSize()))); } void MainWindow::createStatusBar() { statusBar()->showMessage(tr("Ready")); } void MainWindow::readSettings() { QSettings settings("Trolltech", "MDI Example"); 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("Trolltech", "MDI Example"); settings.setValue("pos", pos()); settings.setValue("size", size()); } MdiChild *MainWindow::activeMdiChild() { return qobject_cast<MdiChild *>(workspace->activeWindow()); } MdiChild *MainWindow::findMdiChild(const QString &fileName) { QString canonicalFilePath = QFileInfo(fileName).canonicalFilePath(); foreach (QWidget *window, workspace->windowList()) { MdiChild *mdiChild = qobject_cast<MdiChild *>(window); if (mdiChild->currentFile() == canonicalFilePath) return mdiChild; } return 0; } //main.cpp #include <QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { Q_INIT_RESOURCE(mdi); QApplication app(argc, argv); MainWindow mainWin; mainWin.show(); return app.exec(); } |
|
|
Гость_ALexey_* |
3.4.2008, 14:13
Сообщение
#2
|
Гости |
Я наследую классом MdiChild класс QTextEdit , а в нем нет метода устанавливающего масштаб , только размер шрифта, как мне реализовать масштаб?
|
|
|
Mixolap |
3.4.2008, 14:58
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 13.12.2007 Пользователь №: 46 Спасибо сказали: 0 раз(а) Репутация: 0 |
void QTextEdit::zoomIn ( int range = 1 )
void QTextEdit::zoomOut ( int range = 1 ) Помогут? |
|
|
Гость_Alexey_* |
3.4.2008, 19:03
Сообщение
#4
|
Гости |
Не помогут.
Я решил сделать так: сделать второй QCOmboBox , в нем задать масштаб ( 100% ,150% ,50% итд) ,при выборе масштаба вызывается setFontPointSize(sze*scle/100). float sze хранит размер шрифта. float scle хранит масштаб. Но при объявлении в классе MainWindow этих переменных прога не запускается. Подскажите из-за чего это может быть. |
|
|
Гость_Alexey_* |
3.4.2008, 19:06
Сообщение
#5
|
Гости |
Точнее прога не запускается когда в конструкторе я присваиваю sze=8; scle=100;
|
|
|
ViGOur |
3.4.2008, 20:52
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Пишет чего?
|
|
|
Гость_Alexey_* |
3.4.2008, 22:00
Сообщение
#7
|
Гости |
Unhandled exception at 0x670f03c1 (QtCored4.dll) in mdi.exe: 0xC0000005: Access violation reading location 0x42c80030.
|
|
|
ViGOur |
4.4.2008, 7:40
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Значит ты где-то обращаешься к нулевому указателю.
В дебагере посмотри на каком участке кода вылетает, если сам не сможешь понять вставь его сюда мы подскажем. |
|
|
Гость_Alexey_* |
4.4.2008, 11:12
Сообщение
#9
|
Гости |
Сообщение отредактировал Admin - 4.4.2008, 11:25
Причина редактирования: не забываем про тэг коде... ;)
|
|
|
ViGOur |
4.4.2008, 11:31
Сообщение
#10
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Посмотри message или result, имеют какие адреса?
А лучше выложи проект в архиве... |
|
|
Текстовая версия | Сейчас: 15.1.2025, 0:55 |