Q&A

  • [감사] 신인재님, 이정욱님 감사합니다...
이거. 뻔뻔스럽게 질문만 드리고 제가 드릴것은 없군요..

정말 감사합니다.

신인재님 그런데.. 데이타를 아주 작게 넣으셨더군요

제가 많이 넣어서 테스트를 해보니 역시 인재님이 보내수신것도 멈추더군요.

blob 필드에 데이타를 3만바이트정도 넣어보니까..

그것도 여러개를.. 그럼 역시 스크롤이 거의 정지되다 시피 합니다.

그런데 이유를 알아내었습니다.

메모컴포넌트의 WordWrap 속성이 true로 되어있을때는 PC가 맛이 가더군요..

그런데 그 속성을 없애고 나니까 빠른 스크롤이 됩니다.

아무래도 '0A'(enter 값)을 처리하느라 그런게 아닌가 사료됩니다.

며칠 끙끙대다 해결하고나니까 속이 다 후련하군요.

며칠 안내려가던 대변이 확 내려간 느낌입니다. ^^

친절한 답변과, 예제까지 보내주셔서 진심으로 고맙습니다.

정말 많은 도움이 되었습니다.

항상 행복하시구요. 더욱 훌륭한 프로그래머가 되시길 바라겠습니다.

그럼 20000 ^^

3  COMMENTS
  • Profile
    이현신 1999.05.31 19:20
    어떤 시스템의 고유의 시리얼이나 스트링을 구할수는 없나요?..

    하드의 시리얼넘버는 포멧하면 변하고..

    LAN 카트의 시리얼 번호는 꼭 렌카드가 있어야 구할수 있고..

    이 게시판 어디엔가 CPU ID 구하는것이 있던데..

    그것은 기종이 같으면 넘어오는 값도 똑같더군요...



    어떻게 하면 특정 PC의 고유 넘버를 구해낼수 있을까요??.

    하드디스크의 제품번호라든지 BIOS 의 고유 스트링을 구할수는 없는 것인지

    ...

    조언 부탁 드립니다..



  • Profile
    글쎄요. 1999.06.01 01:30
    이현신 께서 말씀하시기를...

    > 어떤 시스템의 고유의 시리얼이나 스트링을 구할수는 없나요?..

    > 하드의 시리얼넘버는 포멧하면 변하고..

    > LAN 카트의 시리얼 번호는 꼭 렌카드가 있어야 구할수 있고..

    > 이 게시판 어디엔가 CPU ID 구하는것이 있던데..

    > 그것은 기종이 같으면 넘어오는 값도 똑같더군요...

    >

    > 어떻게 하면 특정 PC의 고유 넘버를 구해낼수 있을까요??.

    > 하드디스크의 제품번호라든지 BIOS 의 고유 스트링을 구할수는 없는 것인지

    > ...

    > 조언 부탁 드립니다..

    >

    /////////

    하드디스크의 Factory Serial Number를 구하는 방법이 있습니다.

    이 홈페이지에 가면 HDInfo component가 있습니다. 소스까지 보시려면

    물론 공짜가 아니죠. 한 번 방문해 보십시요.(Trial에서 HDInfo의 소스만

    빼 놓아더라구요. 치사해라^^)

    다음은 유즈넷에서 검색한 Factory Serial Number를 구하는 방법이라고

    되 있는 데 글세 잘 모르겠군요. 참조하셔요.(두번째 것은 NT용 검포넌트

    소스라고 하네요.) 그럼 즐거운 하루되셔요.

    그리고 http://x24.deja.com/home_ps.shtml 여기에 가셔서

    Hard Factory Serial delphi 하시고 검색해 보셔요. 유즈넷

    자료를 보실 수 있을 겁니다.

    ///////////

    I have been working on this same problem, the code I have written with

    CreateFile has just lead me back to what GetVolumeInformation gives me which

    is not the physical harddrive serial number. I tested your earlier code and

    it does work with Windows NT and not on 95 or 98 as you indicated. If you

    come across any direction could you please post it here, I would greatly

    appreciate it.



    here is a sample of where I was going, then found the wrong answer.



    {***************************************************************************

    ***}

    const

    VWIN32_DIOC_DOS_IOCTL = 1; // DOS ioctl calls 4400h-4411h

    VWIN32_DIOC_DOS_INT25 = 2; // absolute disk read, DOS int 25h

    VWIN32_DIOC_DOS_INT26 = 3; // absolute disk Write, DOS int 26h

    VWIN32_DIOC_DOS_INT13 = 4; // Interrupt 13h commands

    VWIN32_DIOC_DOS_DRIVEINFO = 6; // OEM Service Release 2



    {***************************************************************************

    ***}

    type

    PDevIORegs = ^TDevIORegs;

    TDevIORegs = packed record

    reg_EBX,

    reg_EDX,

    reg_ECX,

    reg_EAX,

    reg_EDI,

    reg_ESI,

    reg_FLAGS : DWORD;

    end;



    PMediaID = ^TMediaID;

    TMediaID = packed record

    midInfoLevel : Word;

    midSerialNum : DWORD;

    midVolLabel : array[1..11] of Char;

    midFileSysType : array[1..8] of Char;

    end;



    {***************************************************************************

    ***}

    procedure GetSerialNumberB(var Info:TStringList);

    var

    reg : PDevIORegs;

    pmid : PMediaID;

    hDevice : THandle;

    cb : DWORD;

    begin

    Info.Clear;

    Info.Add('File System Type : ');

    Info.Add('Volumn Label : ');

    Info.Add('Serial Number : ');

    try

    reg := AllocMem(SizeOf(TDevIORegs));

    pmid := AllocMem(SizeOf(TMediaID));

    reg^.reg_EAX := $440D; // IOCTL for block devices

    reg^.reg_EBX := 3; // zero-based drive ID

    reg^.reg_ECX := $0866; // Get Media ID command

    reg^.reg_EDX := DWORD(pmid); // receives media ID info

    reg^.reg_Flags := $0001;

    reg^.reg_EDI := $0000;

    reg^.reg_ESI := $0000;



    hDevice := CreateFile('.vwin32',

    GENERIC_READ,

    FILE_SHARE_READ or FILE_SHARE_WRITE,

    nil,

    OPEN_EXISTING,

    FILE_ATTRIBUTE_NORMAL,

    0);



    if (hDevice = INVALID_HANDLE_VALUE) then

    begin

    MessageDlg('Failed to open vwin32.vxd', mtINFORMATION, [mbOK], 0);

    Exit;

    end;

    cb := 0;



    if not DeviceIoControl(hDevice,

    VWIN32_DIOC_DOS_IOCTL,

    reg,

    sizeof(Reg^),

    reg,

    sizeof(Reg^),

    cb,

    nil) then

    begin

    MessageDlg('Failed to DeviceIoControl', mtINFORMATION, [mbOK], 0);

    Exit;

    end;



    Info.Add('File System Type : '+pmid^.midFileSysType);

    Info.Add('Volumn Label : '+pmid^.midVolLabel);

    Info.Add('Serial Number : '+IntToStr(pmid^.midSerialNum));



    finally

    FreeMem(pmid);

    FreeMem(reg);

    end;

    end;



    --

    Lewis Howell

    http://members.truepath.com/LewisHowell

    _N_O_S_P_A_M_

    _N_O_S_P_A_M_lewishowell@yahoo.com

    _N_O_S_P_A_M_

    http://members.truepath.com/LewisHowell



    ///////////////////////////////////////////////////////////////////





    Steve Schafer (TeamB) wrote in message <373a4cb6.260474559@90.0.0.40>...

    >On Wed, 10 Feb 1999 10:13:59 -0200, "Bruno Lovatti"

    > wrote:

    >

    >>Did you get the code i sent ?

    >

    >Yes I did. That code won't work at all in Win32, but it did at least

    >point me in the right direction while searching for a Win32 solution.

    >

    >-Steve

    >



    On Mon, 8 Feb 1999 14:52:37 -0200, "Bruno Lovatti"

    wrote:



    >I have code too.

    >

    >Gets the serial number and more.

    >

    >TP7.

    >

    >Can you convert to Win32 ?



    Well, this is one of those unusual situations in which it is easier to

    perform the task in NT than in Win95/Win98. I am able to retrieve the

    information in NT, but the same code (with appropriate changes in the

    CreateFile code) doesn't work in Win95. I don't know what the problem

    is--the DFP_GET_VERSION command works just fine, but I get an "invalid

    argument" error with DFP_RECEIVE_DRIVE_DATA. When I get more time,

    I'll investigate the problem further.



    Anyway, I wrapped the code up into a component; how to use it should

    be pretty obvious. Remember, it only works in NT:



    --------8<--------

    unit uIdeDriveInfo;



    interface



    uses

    Windows,

    SysUtils,

    Classes;



    const

    DFP_GET_VERSION = $00074080;

    DFP_SEND_DRIVE_COMMAND = $0007C084;

    DFP_RECEIVE_DRIVE_DATA = $0007C088;

    IDE_IDENTIFY_DEVICE = $EC;



    type

    {$Z1}

    TDevices = (dmIdePrimary0, dmIdePrimary1, dmIdeSecondary0,

    dmIdeSecondary1, dmAtapiPrimary0, dmAtapiPrimary1,

    dmAtapiSecondary0, dmAtapiSecondary1);



    TDeviceMap = set of TDevices;



    TCapability = (cpIdeIdentify, cpAtapiIdentify, cpSmart,

    cpReserved03, cpReserved04, cpReserved05, cpReserved06,

    cpReserved07, cpReserved08, cpReserved09, cpReserved10,

    cpReserved11, cpReserved12, cpReserved13, cpReserved14,

    cpReserved15, cpReserved16, cpReserved17, cpReserved18,

    cpReserved19, cpReserved20, cpReserved21, cpReserved22,

    cpReserved23, cpReserved24, cpReserved25, cpReserved26,

    cpReserved27, cpReserved28, cpReserved29, cpReserved30,

    cpReserved31);



    TCapabilities = set of TCapability;



    PGetVersionOutParams = ^TGetVersionOutParams;

    TGetVersionOutParams = packed record

    Version: Byte;

    Revision: Byte;

    Reserved1: Byte;

    IdeDeviceMap: TDeviceMap;

    Capabilities: TCapabilities;

    Reserved2: array[0..3] of DWord end;



    PIdeRegs = ^TIdeRegs;

    TIdeRegs = packed record

    FeaturesReg: Byte;

    SectorCount: Byte;

    SectorNumber: Byte;

    CylLow: Byte;

    CylHigh: Byte;

    DriveHead: Byte;

    Command: Byte;

    Reserved: Byte end;



    PSendCmdInParams = ^TSendCmdInParams;

    TSendCmdInParams = packed record

    BufferSize: DWord;

    DriveRegs: TIdeRegs;

    DriveNumber: Byte;

    Reserved1: array[1..3] of Byte;

    Reserved2: array[0..3] of DWord end;



    PDriverStatus = ^TDriverStatus;

    TDriverStatus = packed record

    DriverError: Byte;

    IdeStatus: Byte;

    Reserved1: array[2..3] of Byte;

    Reserved2: array[0..1] of DWord end;



    PSendCmdOutParams = ^TSendCmdOutParams;

    TSendCmdOutParams = packed record

    BufferSize: DWord;

    DriverStatus: TDriverStatus;

    Buffer: array[0..255] of Word end;



    const

    DriveNumberMin = 0;

    DriveNumberMax = 3;



    type

    TDriveNumber = DriveNumberMin..DriveNumberMax;



    TIdeDriveInfo = class(TComponent)

    private

    FCylinders: array[TDriveNumber] of Integer;

    FFirmwareRevision: array[TDriveNumber] of String;

    FHeads: array[TDriveNumber] of Integer;

    FModelNumber: array[TDriveNumber] of String;

    FRemovableMedia: array[TDriveNumber] of Boolean;

    FSectorsPerTrack: array[TDriveNumber] of Integer;

    FSerialNumber: array[TDriveNumber] of String;

    protected

    procedure CheckDriveNumber(Drive: TDriveNumber); virtual;

    function GetCylinders(Drive: TDriveNumber): Integer; virtual;

    function GetFirmwareRevision(Drive: TDriveNumber): String;

    virtual;

    function GetHeads(Drive: TDriveNumber): Integer; virtual;

    function GetModelNumber(Drive: TDriveNumber): String; virtual;

    function GetRemovableMedia(Drive: TDriveNumber): Boolean;

    virtual;

    function GetSectorsPerTrack(Drive: TDriveNumber): Integer;

    virtual;

    function GetSerialNumber(Drive: TDriveNumber): String; virtual;

    procedure QueryDrive(Drive: TDriveNumber); virtual;

    public

    constructor Create(AOwner: TComponent); override;

    property Cylinders[Drive: TDriveNumber]: Integer

    read GetCylinders;

    property FirmwareRevision[Drive: TDriveNumber]: String

    read GetFirmwareRevision;

    property Heads[Drive: TDriveNumber]: Integer read GetHeads;

    property ModelNumber[Drive: TDriveNumber]: String

    read GetModelNumber;

    property RemovableMedia[Drive: TDriveNumber]: Boolean

    read GetRemovableMedia;

    property SectorsPerTrack[Drive: TDriveNumber]: Integer

    read GetSectorsPerTrack;

    property SerialNumber[Drive: TDriveNumber]: String

    read GetSerialNumber; end;



    EIdeDriveInfo = class(Exception);



    procedure Register;



    implementation



    procedure Register;

    begin

    RegisterComponents('Samples', [TIdeDriveInfo]) end;



    constructor TIdeDriveInfo.Create(AOwner: TComponent);

    var

    I: TDriveNumber;

    begin

    inherited Create(AOwner);

    for I := DriveNumberMin to DriveNumberMax do

    QueryDrive(I) end;



    procedure TIdeDriveInfo.CheckDriveNumber(Drive: TDriveNumber);

    begin

    if (Drive < DriveNumberMin) or (Drive > DriveNumberMax) then

    raise EIdeDriveInfo.CreateFmt('The drive number (%d) is out ' +

    'of range; the allowable range is %d to %d', [Drive,

    DriveNumberMin, DriveNumberMax]) end;



    function TIdeDriveInfo.GetCylinders(Drive: TDriveNumber): Integer;

    begin

    CheckDriveNumber(Drive);

    Result := FCylinders[Drive] end;



    function TIdeDriveInfo.GetFirmwareRevision(Drive: TDriveNumber):

    String;

    begin

    CheckDriveNumber(Drive);

    Result := FFirmwareRevision[Drive] end;



    function TIdeDriveInfo.GetHeads(Drive: TDriveNumber): Integer;

    begin

    CheckDriveNumber(Drive);

    Result := FHeads[Drive] end;



    function TIdeDriveInfo.GetModelNumber(Drive: TDriveNumber): String;

    begin

    CheckDriveNumber(Drive);

    Result := FModelNumber[Drive] end;



    function TIdeDriveInfo.GetRemovableMedia(Drive: TDriveNumber):

    Boolean;

    begin

    CheckDriveNumber(Drive);

    Result := FRemovableMedia[Drive] end;



    function TIdeDriveInfo.GetSectorsPerTrack(Drive: TDriveNumber):

    Integer;

    begin

    CheckDriveNumber(Drive);

    Result := FSectorsPerTrack[Drive] end;



    function TIdeDriveInfo.GetSerialNumber(Drive: TDriveNumber): String;

    begin

    CheckDriveNumber(Drive);

    Result := FSerialNumber[Drive] end;



    procedure TIdeDriveInfo.QueryDrive(Drive: TDriveNumber);

    var

    BytesReturned: DWord;

    CmdIn: TSendCmdInParams;

    CmdOut: TSendCmdOutParams;

    DriveName: String;

    H: THandle;

    I: Integer;

    VersionInfo: TGetVersionOutParams;

    begin

    FCylinders[Drive] := 0;

    FFirmwareRevision[Drive] := '';

    FHeads[Drive] := 0;

    FModelNumber[Drive] := '';

    FRemovableMedia[Drive] := False;

    FSectorsPerTrack[Drive] := 0;

    FSerialNumber[Drive] := '';

    DriveName := Format('.PHYSICALDRIVE%d', [Drive]);

    H := CreateFile(PChar(DriveName), GENERIC_READ or GENERIC_WRITE, 0,

    nil, OPEN_EXISTING, 0, 0);

    if H = INVALID_HANDLE_VALUE then

    Exit;

    try

    FillChar(VersionInfo, SizeOf(VersionInfo), 0);

    BytesReturned := 0;

    if not DeviceIoControl(H, DFP_GET_VERSION, nil, 0, @VersionInfo,

    SizeOf(VersionInfo), BytesReturned, nil) then

    Exit;

    if not (cpIdeIdentify in VersionInfo.Capabilities) then

    Exit;

    FillChar(CmdIn, SizeOf(CmdIn), 0);

    CmdIn.BufferSize := 0;

    CmdIn.DriveRegs.Command := IDE_IDENTIFY_DEVICE;

    CmdIn.DriveNumber := Drive;

    FillChar(CmdOut, SizeOf(CmdOut), 0);

    CmdOut.BufferSize := SizeOf(CmdOut.Buffer);

    BytesReturned := 0;

    if not DeviceIoControl(H, DFP_RECEIVE_DRIVE_DATA, @CmdIn,

    SizeOf(CmdIn), @CmdOut, SizeOf(CmdOut), BytesReturned, nil) then

    Exit;

    with CmdOut do begin

    for I := 10 to 19 do

    Buffer[I] := (Lo(Buffer[I]) shl 8) + Hi(Buffer[I]);

    for I := 23 to 46 do

    Buffer[I] := (Lo(Buffer[I]) shl 8) + Hi(Buffer[I]);

    FRemovableMedia[Drive] := (Buffer[0] and $80) <> 0;

    FCylinders[Drive] := Buffer[1];

    FHeads[Drive] := Buffer[3];

    FSectorsPerTrack[Drive] := Buffer[6];

    SetLength(FSerialNumber[Drive], 20);

    Move(Buffer[10], FSerialNumber[Drive][1],

    Length(FSerialNumber[Drive]));

    FSerialNumber[Drive] := Trim(FSerialNumber[Drive]);

    SetLength(FFirmwareRevision[Drive], 8);

    Move(Buffer[23], FFirmwareRevision[Drive][1],

    Length(FFirmwareRevision[Drive]));

    FFirmwareRevision[Drive] := Trim(FFirmwareRevision[Drive]);

    SetLength(FModelNumber[Drive], 40);

    Move(Buffer[27], FModelNumber[Drive][1],

    Length(FModelNumber[Drive]));

    FModelNumber[Drive] := Trim(FModelNumber[Drive]);

    end;

    finally

    CloseHandle(H) end end;



    end.

    --------8<--------



  • Profile
    김영대 1999.05.31 21:05
    이현신 께서 말씀하시기를...

    > 어떤 시스템의 고유의 시리얼이나 스트링을 구할수는 없나요?..

    > 하드의 시리얼넘버는 포멧하면 변하고..

    > LAN 카트의 시리얼 번호는 꼭 렌카드가 있어야 구할수 있고..

    > 이 게시판 어디엔가 CPU ID 구하는것이 있던데..

    > 그것은 기종이 같으면 넘어오는 값도 똑같더군요...

    >

    > 어떻게 하면 특정 PC의 고유 넘버를 구해낼수 있을까요??.

    > 하드디스크의 제품번호라든지 BIOS 의 고유 스트링을 구할수는 없는 것인지

    > ...

    > 조언 부탁 드립니다..

    >



    안녕하세요 김영대입니다

    저번에 한번 올렸던 내용같은데...



    각 시스템의 유일한 식별자를 찾으신다면 제한적일수는 있지만

    HDD의 Volume Serial Number 를 사용하시거나 아니면

    Network 카드의 MAC address 를 사용해 보세요



    그리고 대부분의 CPU 에는 serial number 가 없습니다

    BIOS 에도 copyright, release date, version number 등등의 자료가 있습니다



    그러나 HDD의 Volume Serial Number 는 포맷하면 다시 갱신되므로

    좀 위험하고 한가지 괜찮은 것은 GUID 를 사용하는 것입니다

    GUID의 뒤 6 byte는 네트워크 카드가 있다면 MAC address 이고

    no-networking 이나 PPP 의 경우에도 생성되므로 정확히는

    모르지만 id 가 생성되는걸로 봐서는(이건 제가 테스트를 못해봤습니다)

    사용해볼만 합니다



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, ActiveX;



    type

    TForm1 = class(TForm)

    Edit1: TEdit;

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    // Tip: 델파이 IDE에서 Ctrl-Shift-G 를 눌러보세요...

    // GUID가 생성 되는데 뒤에 6숫자(2자리씩 12 바이트) 는 네트워크 환경이

    // 있다면 MAC-address 와 같습니다

    function GetNicAddr: AnsiString;

    const

    GUID_MAX = 72;

    var

    guid: TGuid;

    buf: array[0..GUID_MAX] of WideChar;

    begin

    CoCreateGuid(guid);

    StringFromGUID2(guid, buf, GUID_MAX);

    Result := Copy(WideCharToString(buf),26,12);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Edit1.Text := GetNicAddr;

    end;



    end.



    • Heaven
    • 1999.05.31 21:14
    • 2 COMMENTS
    • /
    • 0 LIKES
    • rambo
      1999.06.01 01:19
      Heaven 께서 말씀하시기를... > 안녕하세요... > 항상 도움을 받는군요.. > > 다름이 아니라..Date형...
    • Heaven
      1999.06.01 04:07
      안녕하세요. 답변해 주셔서 고맙습니다.. 문제를 해결했네요.. 그럼..
    • 이정욱
      1998.12.07 21:49
      음.. 정확하게 해보지는 못했습니다. 그런데 이것을 쓰면 어떨까요? FieldValues 예를들면.. Customers...
    • 박성진
      1998.12.09 02:50
      위의 질문을 다시하겠습니다. 마이크로소프트 Access97을 이용해서 데이터베이스를 구축하였습니다. 마이...
    • july
    • 1999.05.31 19:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1998.12.07 21:49
      음.. 정확하게 해보지는 못했습니다. 그런데 이것을 쓰면 어떨까요? FieldValues 예를들면.. Customers...
    • 박성진
      1998.12.09 02:50
      위의 질문을 다시하겠습니다. 마이크로소프트 Access97을 이용해서 데이터베이스를 구축하였습니다. 마이...
    • 꺄꿍
    • 1998.11.25 02:08
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이현신
      1999.05.31 19:20
      어떤 시스템의 고유의 시리얼이나 스트링을 구할수는 없나요?.. 하드의 시리얼넘버는 포멧하면 변하고.. ...
    • 글쎄요.
      1999.06.01 01:30
      이현신 께서 말씀하시기를... > 어떤 시스템의 고유의 시리얼이나 스트링을 구할수는 없나요?.. > 하드의...
    • 김영대
      1999.05.31 21:05
      이현신 께서 말씀하시기를... > 어떤 시스템의 고유의 시리얼이나 스트링을 구할수는 없나요?.. > 하드의...
    • 1999.05.31 20:41
      정성호 께서 말씀하시기를... > 안녕하세요.. 꾸벅 ^^ > > 하나 여쭤볼게 있어서 이리 글을 올립니다....
    • 1999.05.31 20:43
      정성호 께서 말씀하시기를... > 안녕하세요...^^ 꾸벅... > > 여러가지로 부족한 점이 많아서 이리 글...
    • 북해
    • 1999.05.31 18:09
    • 9 COMMENTS
    • /
    • 0 LIKES
    • 꺄꿍
      1998.11.21 03:03
      디비 그리드를 아래로 계속 내리거나 올리면 BLOB필드에 데이타가 제법 많이 들어있는 경우 데이타 셋에 연...
    • 김영대
      1999.05.31 20:17
      북해 께서 말씀하시기를... > 안녕하세요. Calendar의 특정날짜에 제가 원하는 그래픽을 표시해 넣고 싶은...
    • 이 재원
      1999.01.05 16:56
      거시기 TMemo에는 32K Limit이 있는걸로 알고 있는데 혹시 더 큰거 아닌가요? 글코 크기 Value를 100에서 ...
    • 신인재
      1998.11.24 02:16
      냥냥.... 쩝...이상하군요...... 디비 익스플로러에서 잘된다면 델파이 어플에서도 잘되야 정상이거든요...
    • 꺄꿍
      1998.11.24 10:22
      신인재 wrote: > 냥냥.... > 쩝...이상하군요...... > 디비 익스플로러에서 잘된다면 > 델파이 어플에...
    • 신인재
      1998.11.24 22:40
      음냐.... 저두 방법이 없군요.... 이거 받아서 테스트 해보세요.. 실행파일과 소스를 함께 넣었습니다.....
    • 이정욱
      1998.11.21 14:56
      제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. 리치에디트 데이터를 메모로 읽으려고 ...
    • • • •
    • 하명훈
    • 1999.05.31 15:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.31 20:48
      하명훈 께서 말씀하시기를... > delphi3.0으로 db를 엑세스하는 프린트폼을 Quick Report로 만들었습니다...
    • 한 재
    • 1999.05.31 14:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김태균
      1999.05.31 18:02
      내용을 보니 체인지 이벤트가 일어날 때 combo의 내용에 들어 있는 파일의 이름을 불러서 메모에 내용을...
    • 1999.05.31 17:56
      한 재 께서 말씀하시기를... > 가르쳐주신 것을 바탕으로 맹글어봤는데 컴파일이 안되는군요. > 문제...
    • 꺄꿍
    • 1998.11.21 03:03
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 이 재원
      1999.01.05 16:56
      거시기 TMemo에는 32K Limit이 있는걸로 알고 있는데 혹시 더 큰거 아닌가요? 글코 크기 Value를 100에서 ...
    • 신인재
      1998.11.24 02:16
      냥냥.... 쩝...이상하군요...... 디비 익스플로러에서 잘된다면 델파이 어플에서도 잘되야 정상이거든요...
    • 꺄꿍
      1998.11.24 10:22
      신인재 wrote: > 냥냥.... > 쩝...이상하군요...... > 디비 익스플로러에서 잘된다면 > 델파이 어플에...
    • 신인재
      1998.11.24 22:40
      음냐.... 저두 방법이 없군요.... 이거 받아서 테스트 해보세요.. 실행파일과 소스를 함께 넣었습니다.....
    • 이정욱
      1998.11.21 14:56
      제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. 리치에디트 데이터를 메모로 읽으려고 ...
    • 꺄꿍
      1998.11.22 07:30
      이정욱 wrote: > 제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. > 리치에디트 데이터...
    • 이정욱
      1998.11.22 20:40
      현재 사용하시는 DB포맷은 무엇입니까? XPower 컴포넌트 트라이얼을 받아서 한번 해보세요.. 그래도 느리...
    • 변대섭
      1999.06.02 19:13
      장헌영 께서 말씀하시기를... > Ttable,Tdatasource,TDBgrid 이렇게 세 가지를 사용해서 oracle7.3 의 한 ...
    • 1999.05.31 18:54
      장헌영 께서 말씀하시기를... > Ttable,Tdatasource,TDBgrid 이렇게 세 가지를 사용해서 oracle7.3 의 한 ...
    • 김태균
      1999.05.31 18:11
      장헌영 께서 말씀하시기를... > Ttable,Tdatasource,TDBgrid 이렇게 세 가지를 사용해서 oracle7.3 의 한 ...
    • 박성훈
    • 1999.05.31 04:37
    • 8 COMMENTS
    • /
    • 0 LIKES
    • 꺄꿍
      1998.11.21 03:03
      디비 그리드를 아래로 계속 내리거나 올리면 BLOB필드에 데이타가 제법 많이 들어있는 경우 데이타 셋에 연...
    • 이 재원
      1999.01.05 16:56
      거시기 TMemo에는 32K Limit이 있는걸로 알고 있는데 혹시 더 큰거 아닌가요? 글코 크기 Value를 100에서 ...
    • 신인재
      1998.11.24 02:16
      냥냥.... 쩝...이상하군요...... 디비 익스플로러에서 잘된다면 델파이 어플에서도 잘되야 정상이거든요...
    • 꺄꿍
      1998.11.24 10:22
      신인재 wrote: > 냥냥.... > 쩝...이상하군요...... > 디비 익스플로러에서 잘된다면 > 델파이 어플에...
    • 신인재
      1998.11.24 22:40
      음냐.... 저두 방법이 없군요.... 이거 받아서 테스트 해보세요.. 실행파일과 소스를 함께 넣었습니다.....
    • 이정욱
      1998.11.21 14:56
      제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. 리치에디트 데이터를 메모로 읽으려고 ...
    • 꺄꿍
      1998.11.22 07:30
      이정욱 wrote: > 제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. > 리치에디트 데이터...
    • • • •
    • 박성훈
    • 1999.05.31 04:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.31 05:38
      아래 말씀하신것은 전혀 컴포트와 상관이 없습니다. 달려있는 프린터의 제어코드들마다 틀립니다. 또, 프...
    • eojin
    • 1999.05.31 02:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.31 05:42
      쩝.. 대단한 대답은 아니구요... ASyncProfessional 이라는 컴포넌트가 있는데 이것안에 VT100, ANSI 처리...
    • 신호철
    • 1999.05.31 01:18
    • 8 COMMENTS
    • /
    • 0 LIKES
    • 꺄꿍
      1998.11.21 03:03
      디비 그리드를 아래로 계속 내리거나 올리면 BLOB필드에 데이타가 제법 많이 들어있는 경우 데이타 셋에 연...
    • 이 재원
      1999.01.05 16:56
      거시기 TMemo에는 32K Limit이 있는걸로 알고 있는데 혹시 더 큰거 아닌가요? 글코 크기 Value를 100에서 ...
    • 신인재
      1998.11.24 02:16
      냥냥.... 쩝...이상하군요...... 디비 익스플로러에서 잘된다면 델파이 어플에서도 잘되야 정상이거든요...
    • 꺄꿍
      1998.11.24 10:22
      신인재 wrote: > 냥냥.... > 쩝...이상하군요...... > 디비 익스플로러에서 잘된다면 > 델파이 어플에...
    • 신인재
      1998.11.24 22:40
      음냐.... 저두 방법이 없군요.... 이거 받아서 테스트 해보세요.. 실행파일과 소스를 함께 넣었습니다.....
    • 이정욱
      1998.11.21 14:56
      제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. 리치에디트 데이터를 메모로 읽으려고 ...
    • 꺄꿍
      1998.11.22 07:30
      이정욱 wrote: > 제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. > 리치에디트 데이터...
    • • • •
    • 이정욱
      1999.05.31 05:40
      말씀하신 부분은 오토마타 입니다. 오토마타를 구현하셔야 하는데 워낙 양이 방대합니다. 여러군데에서 ...
    • 문창완
      1999.06.02 01:30
      이정욱 께서 말씀하시기를... > 말씀하신 부분은 오토마타 입니다. > 오토마타를 구현하셔야 하는데 워낙...
    • 영인
    • 1999.05.30 22:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.31 05:51
      Chart가 무슨 Chart를 사용하시는지... Series에 Clear라는 메소드나 Count라는 프로퍼티가 있다면 그것을...
    • 꺄꿍
      1998.11.21 03:03
      디비 그리드를 아래로 계속 내리거나 올리면 BLOB필드에 데이타가 제법 많이 들어있는 경우 데이타 셋에 연...
    • 이 재원
      1999.01.05 16:56
      거시기 TMemo에는 32K Limit이 있는걸로 알고 있는데 혹시 더 큰거 아닌가요? 글코 크기 Value를 100에서 ...
    • 신인재
      1998.11.24 02:16
      냥냥.... 쩝...이상하군요...... 디비 익스플로러에서 잘된다면 델파이 어플에서도 잘되야 정상이거든요...
    • 꺄꿍
      1998.11.24 10:22
      신인재 wrote: > 냥냥.... > 쩝...이상하군요...... > 디비 익스플로러에서 잘된다면 > 델파이 어플에...
    • 신인재
      1998.11.24 22:40
      음냐.... 저두 방법이 없군요.... 이거 받아서 테스트 해보세요.. 실행파일과 소스를 함께 넣었습니다.....
    • 이정욱
      1998.11.21 14:56
      제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. 리치에디트 데이터를 메모로 읽으려고 ...
    • 꺄꿍
      1998.11.22 07:30
      이정욱 wrote: > 제 생각에는 Richedit데이터를 Memo에서 읽으려고 하는것 같네요. > 리치에디트 데이터...
    • • • •