반응형

 

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, contnrs;  


  type
    PMyRec = ^TMyRec;
    TMyRec = record
      TTT: String;
    end;      

 

procedure TForm1.FormCreate(Sender: TObject);
var
    chemList : TList;
    MyRec: PMyRec;
    MyRec1: PMyRec;
begin

   chemList := TList.Create;
   New(MyRec);
   MyRec^.TTT := '';


chemList.Add(MyRec);

MyRec1 := chemList[0];

ShowMessage(MyRec1^.TTT);
ShowMessage(PMyRec(chemList[0])^.TTT);
                                            

반응형

'programming' 카테고리의 다른 글

소캣 함수  (0) 2014.12.23
TCP 소켓의 기초  (0) 2014.12.23
안드로이드 버튼 눌르고 있을때 처리 이벤트  (0) 2014.12.18
Socket accept()호출 Invalid 에러  (0) 2014.12.18
반응형

visual Studio 8.0  

Visual Basic에서 폴더 선택 다이얼로그 예제 입니다. 


        Dim folder As String = ""
        Dim filePath As New FolderBrowserDialog
        filePath.SelectedPath = Application.StartupPath
        If filePath.ShowDialog() = Windows.Forms.DialogResult.OK Then
            folder = filePath.SelectedPath
        End If

        Console.WriteLine(folder)










반응형
반응형

d- bus 통신 예제 입니다.

작은 창이 Send 이며


보낸 데이터는 큰창이 받아 출력하고 있습니다.






viewer

Profile 추가 내용

DBUS_ADAPTORS += org.test.xml
DBUS_INTERFACES += org.test.xml

viewer.h
#ifndef VIEWER_H
#define VIEWER_H

#include 

class Viewer : public QObject
{
    Q_OBJECT

    Q_PROPERTY(int number READ number NOTIFY numberChanged)

signals:
    void onchanged();
    void numberChanged(int n);

public:
    Viewer(QObject *parent = 0);
    int number();


public slots:

    void getNumber(int number);


private:
    int getnumber = 0;

};

#endif // VIEWER_H


viewer.cpp
#include "viewer.h"

#include 
#include 

#include "chat_adaptor.h"
#include "chat_interface.h"

Viewer::Viewer(QObject *parent)
{
    QDBusConnection::sessionBus().registerObject("/", parent);

    org::example::chat *iface;

    iface = new org::example::chat(QString(), QString(),  QDBusConnection::sessionBus(), parent);

    connect(iface, SIGNAL(message(int)), this, SLOT(getNumber(int)));
}

void Viewer::getNumber(int number)
{
    getnumber = number;

    qDebug() << "getnumber :" << getnumber;

    emit numberChanged(number);
}


int Viewer::number()
{
    return getnumber;
}


main.cpp
#include 
#include 

#include 
#include 

#include "viewer.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;

    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));


    Viewer viewer(app.focusObject());

    engine.rootContext()->setContextProperty("mw", &viewer);

    return app.exec();
}

main.qml
import QtQuick 2.3
import QtQuick.Controls 1.2





ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")


    Label {
        id: lablel
        text: mw.number;
        anchors.centerIn: parent


    }

}


Data send

send.h

#ifndef SEND_H
#define SEND_H

#include
#include 
#include 


class WorkerThread : public QThread
{

    Q_OBJECT

    void run();

};



class SEND :public QObject
{
    Q_OBJECT

    Q_PROPERTY(int number READ number NOTIFY numberChanged)


signals:
    void numberChanged();

public:
    explicit SEND(QObject *parent = 0);

    void careateRandomNumber();

    void send();
//    void dbusConnection();

    int number();

public slots:
    int randnumber();
    void update();

private:
    int rand;
    QDBusMessage msg;
};

#endif // SEND_H







send.cpp
#include 
#include 
#include 

#include "send.h"

SEND::SEND(QObject *parent)
{

    careateRandomNumber();

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    timer->start(1000);

//    WorkerThread t;
//    t.start();

}

void SEND::careateRandomNumber()
{

    QTime now = QTime::currentTime();
    qsrand(now.msec());

    rand = qrand();
}

void SEND::send()
{
    careateRandomNumber();

    if (QDBusConnection::sessionBus().isConnected()) {

        msg = QDBusMessage::createSignal("/", "org.example.chat", "message");
        qDebug() << "send message : " << rand;

        msg << rand;
        QDBusConnection::sessionBus().send(msg);
        emit numberChanged();
   
    }

}

void SEND::dbusConnection()
{


    QDBusConnection::sessionBus().registerObject("/", this);


    if (QDBusConnection::sessionBus().isConnected()) {
        msg = QDBusMessage::createSignal("/", "org.example.chat", "message");

    }
}

int SEND::number()
{
    return rand;
}

int SEND::randnumber()
{
    return rand;
}

void SEND::update()
{

    send();

}

void WorkerThread::run()
{
      qDebug()<<"From worker thread: ";
}



main.cpp
#include 
#include 
#include 

#include "send.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

//    qmlRegisterType ("Send", 1,0, "SendClass");


    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));


//    Viewer viewer(app.focusObject());

    SEND send(app.focusObject());

    engine.rootContext()->setContextProperty("send", &send);


    return app.exec();
}



main.qml
import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Controls 1.3

Window {
    id :root

    visible: true

    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }


    Text {
        id : sendnumber
        text: send.number
        anchors.centerIn: parent
    }


}




반응형

'programming > Qt' 카테고리의 다른 글

Virtualbox 에서 QtCreator 실행  (0) 2016.02.02
qml signal /slot  (0) 2015.09.25
qmlRegisterType  (0) 2015.09.14
여러개의 파일 확장자 변경 유틸리티  (0) 2012.07.03
Qt [UI] css를 이용한 버튼 효과주기  (0) 2012.06.07
반응형

우선 기존 Virtualbox에서 우분투를 실행시  0x00000000 관련 에러를 출력 하여 사용이 어려워

아래의 버전으로 사용중입니다.




문제는 Virtualbox 환경설정에서 3d 지원을 사용을 하면 VirtualBox가 빠르지만  Qtcreate가 바로 꺼지는 현상이 있습니다.



해결 방법은..

1. Qt Creator 설치된 폴더로 이동.

2..edit 편집기로 qtcreator.sh 파일을 엽니다.

3. export LIBGL_ALWAYS_SOFTWARE=1  <-- 추가

4. 저장합니다.

5. cd .local/share/applications/ 폴더로 이동.

6.  edit 편집기로 DigiaQtOpenSource-qtcreator.desktop 파일을 엽니다.

7. Exec=/home/dmchoi/Qt5.2.0/Tools/QtCreator/bin/qtcreator

  --> Exec=/home/dmchoi/Qt5.2.0/Tools/QtCreator/bin/qtcreator.sh
8. 저장합니다.

9. qtcreator 실행을 합니다.




실행시

./qtcreator.sh 로 실행하면

아래와 같이 잘 실행됩니다.


반응형

'programming > Qt' 카테고리의 다른 글

Qt d-bus 예제  (0) 2016.02.11
qml signal /slot  (0) 2015.09.25
qmlRegisterType  (0) 2015.09.14
여러개의 파일 확장자 변경 유틸리티  (0) 2012.07.03
Qt [UI] css를 이용한 버튼 효과주기  (0) 2012.06.07
반응형




서로 다른 qml 에서 signal /slot 연결하기 






시그널 생성 





위와 같이 받아서 사용하시면됩니다.


반응형

'programming > Qt' 카테고리의 다른 글

Qt d-bus 예제  (0) 2016.02.11
Virtualbox 에서 QtCreator 실행  (0) 2016.02.02
qmlRegisterType  (0) 2015.09.14
여러개의 파일 확장자 변경 유틸리티  (0) 2012.07.03
Qt [UI] css를 이용한 버튼 효과주기  (0) 2012.06.07
반응형


 

사용예

qmlRegisterType<Hello>("testhello",1,0,"HiClass");

qmlRegisterType<클래스명명> ("사용할접근주소", 큰버전, 작은버전, "QML에서 쓸 이름");

 

 

사용법


1. 클래스 생성

위와같이 qDebug() 을 사용할경우 #include <QDebug> 선언이 필요합니다.    


2.  main.cpp 작성


qmlRegisterType<Hello>("testhello",1,0,"HiClass");

 



4. QML 아래와깉이 선언


Import testhello 1.0

 아래와 같이  QML내에서 사용이 가능하다.

HiClass{

        id : test

        Component.onCompleted: {

            test.test();

        }

}

 

반응형

'programming > Qt' 카테고리의 다른 글

Qt d-bus 예제  (0) 2016.02.11
Virtualbox 에서 QtCreator 실행  (0) 2016.02.02
qml signal /slot  (0) 2015.09.25
여러개의 파일 확장자 변경 유틸리티  (0) 2012.07.03
Qt [UI] css를 이용한 버튼 효과주기  (0) 2012.06.07
반응형


int socket(int domain, int type, int protocol)

SOCKET 함수 호출시 입력한 소켓은 도메인과 소켓 타입의 속성만 가지고 있을뿐 아무것도 할수 없음.


domain

 unix

유닉스 도메인 소켓,ipc용으로 사용됨  AF_UNIX

 inet

 Tcp/IP프로토콜을 이용한 인터넷주소 주로 사용됨 AF_INET, AF_INET6

 ipx

 노벨 IPX 프로토콜 

 ax25

 아마추어 라디오 X.25 

 x25

 X.25 프로토콜 AF_X25

위의 표는 Address Family 이다.


소켓 도메인은 AF_* 의 방식으로 적혀 있다.





반응형

'programming' 카테고리의 다른 글

델파이 포인터 예제  (0) 2020.03.26
TCP 소켓의 기초  (0) 2014.12.23
안드로이드 버튼 눌르고 있을때 처리 이벤트  (0) 2014.12.18
Socket accept()호출 Invalid 에러  (0) 2014.12.18
반응형
TCP 소켓의 기초 (sock_stream 소캣)

TCP 소켓 및 연결
bind  함수는 소켓에 IP주소와 포트번호를 지정.  함수로 생성된 소켓에 포트번호를 연결
listen 클라이언트의 연결요구를 받도록 함  접속 연결 큐를 만들고 대기.
connect listen() 하고 있는 서버측 소켓에 연결. 
close 해당프로세스 내에서 소켓 ID를 닫는다.   
close를 하면 “끊겠다”는 패킷을 다른 쪽에 보냄
shutdown 소켓에 EOF를 보내어 연결된 소켓을 닫는다.


TCP 데이터 입출력( 송수신) 함수 

recv, read  소켓으로 부터 데이터를 수신.
write, send 소켓을 통해 데이터 송신. 

readv 소켓 이용 데이터를 수신하되 백터를 구성하여 수신.
writev 소켓 이용 데이터를 송신하되 백터를 구성하여 송신. 


 socket()

client side

bind()

 bind()

listen() 

 

 accept ()    <---------------------------------

connect() 

 recv(), send()     <------------------------->
                                  데이터 송수신

 recv(), send()    

<-------------- close() 연결해제

 close()

 









반응형

'programming' 카테고리의 다른 글

델파이 포인터 예제  (0) 2020.03.26
소캣 함수  (0) 2014.12.23
안드로이드 버튼 눌르고 있을때 처리 이벤트  (0) 2014.12.18
Socket accept()호출 Invalid 에러  (0) 2014.12.18

+ Recent posts