¸¶¹Ù¸®´Ô ´äº¯ °¨»çÇÕ´Ï´Ù. ÇöÀç ÀúÀåÀº À§¿¡ Å×À̺í Á¤º¸¿Í °°ÀÌ BLOB Çü½ÄÀÔ´Ï´Ù. °Ë»ö¿¡¼ ¾òÀº Áö½ÄÀ¸·Î Parameter·Î ÄÚÆÃÀ» Çصµ Çü½ÄÀÌ À߸øµÇ¾ú´Â¾ú´ÂÁö Àß ¾ÈµË´Ï´Ù. À§ ÀúÀåÄڵ忡¼ Parameter¸¦ ¾îµð¿¡ ¾î¶»°Ô ³Ê¾î¾ßÇÒÁö À̸®Àú¸® ¸Ó¸®¸¦ Â¥³»¾î ÄÚÆÃÀ» ÇغÁµµ °á±¹ ½ÇÆÐÇÏ¿´½À´Ï´Ù.
¾Æ·¡ÄÚµå //Ç¥½ÃµÈ°÷Àº ÇãÁ¢ÇÏ°Ô Parameter ±¸¼ºÇÏ´Ù ½ÇÆÐÇÑ ÄÚµå ÀÔ´Ï´Ù. ¾îµð°¡ À߸øµÇ¾ú´ÂÁö ºÁÁÖ¼ÌÀ¸¸é °í¸¿°Ú½À´Ï´Ù.
// ÀúÀå¹öÆ°(¼³Á¤µÈ ¸ðµå¿¡µû¶ó SQL±¸¹®À» µ¿ÀûÀ¸·Î »ý¼ºÇÏ¿© ½ÇÇà procedure TMotice_F.Btn_SaveClick(Sender: TObject); var sSQL: string; sEPM_CD, sStreamVal : String; rtVal : Boolean; // SS: TMemoryStream; SS: TStringStream; begin // °øÁö¸í Á¡°Ë IF (Trim(RI_Motice_NM.Text) = '') then begin Application.MessageBox('°øÁö¸íÀ» ÁöÁ¤ÈÄ ÀÛ¾÷ÇϽÿä...','°øÁö¸í Á¡°Ë', mb_ok+mb_IconInformation); ActiveControl := RI_Motice_NM; Exit; end;
IF APPLICATION.MESSAGEBOX('ÀÔ·ÂµÈ µ¥ÀÌŸ¸¦ ÀúÀå ÇϽðڽÀ´Ï±î?','ÀúÀåÈ®ÀÎ', MB_YESNO+MB_ICONQUESTION) <> IDYES THEN EXIT;
// SS := TMemoryStream.Create; SS := TStringStream.Create(RI_Motice_NM.Text); // SS := TStream.Create;//(RI_MOTICE_NM.Text); try SS.Position := 0; // RI_MOTICE_NM.Lines.SaveToFile('C:\12345.txt'); RI_MOTICE_NM.Lines.SaveToStream(SS);
sStreamVal := SS.DataString;
// ¸ðµå¿¡µû¸¥ SQL ±¸¹®»ý¼º case MODETYPE of mAPPEND: // Ãß°¡ ¸ðµå½Ã begin sSQL := 'INSERT INTO TF_MOTICE(MOTICE_CD,MOTICE_NM) '+ 'VALUES(' + FORMAT('''%s''', [TRIM(ED_MOTICE_CD.TEXT)])+ //°øÁöÄÚµå // ', :MOTICE_NM' + //FORMAT(',''%s''', [TRIM(RI_MOTICE_NM.TEXT)])+ //°øÁö¸í FORMAT(',''%s''', [TRIM(sStreamVal)])+ //RI_MOTICE_NM.TEXT)])+ //°øÁö¸í ')'; end; mUPDATE: // ¼öÁ¤¸ðµå begin sSQL := 'UPDATE TF_MOTICE SET' + //FORMAT(' MOTICE_NM =''%s''', [TRIM(RI_MOTICE_NM.TEXT)])+ // °øÁö¸í FORMAT(' MOTICE_NM =''%s''', [TRIM(sStreamVal)])+ // °øÁö¸í // ':MOTICE_NM'; //'WHERE MOTICE_CD= :MOTICE_NM';// FORMAT(' WHERE MOTICE_CD=''%s''', [TRIM(ED_MOTICE_CD.Text)]); // °øÁöÄÚµå end; mDELETE: // »èÁ¦¸ðµå begin if APPLICATION.MESSAGEBOX('Á¤¸»·Î »èÁ¦ ÇϽðڽÀ´Ï±î?', '»èÁ¦È®ÀÎ', MB_YESNO + MB_ICONQUESTION) <> IDYES then EXIT; sSQL := 'DELETE FROM TF_MOTICE Where ' + // 'MOTICE_NM ' + // 'MOTICE_CD = :MOTICE_NM'; 'MOTICE_CD = ' + FORMAT('''%s''', [TRIM(ED_MOTICE_CD.Text)]); end; end;
// NOTICE1 //showmessage(sSQL); RI_MOTICE_NM.Lines.SaveToFile('.\RI_MOTICE.txt'); Memo1.Lines.Add(sSQL); // µ¿Àû QUERY »ý¼º // rtVal := DM.SQL_ExecBlob(DM.qryExec, sSQL, 'MOTICE_NM', SS); // DataModule¸¦ OpenÇÑ´Ù. rtVal := DM.SQL_Exec(DM.qryExec, sSQL); // DataModule¸¦ OpenÇÑ´Ù. if not rtVal then begin case MODETYPE of mAPPEND: APPLICATION.MessageBox('°øÁö»çÇ× Å×À̺í Ãß°¡µµÁß ERROR ¹ß»ý!!!', '¿À·ù', MB_OK + MB_ICONINFORMATION); mUPDATE: APPLICATION.MessageBox('°øÁö»çÇ× Å×ÀÌºí ¼öÁ¤µµÁß ERROR ¹ß»ý!!!', '¿À·ù', MB_OK + MB_ICONINFORMATION); mDELETE: APPLICATION.MessageBox('°øÁö»çÇ× Å×ÀÌºí »èÁ¦µµÁß ERROR ¹ß»ý!!!', '¿À·ù', MB_OK + MB_ICONINFORMATION); end; end;
sStreamVal := ss.DataString; finally SS.Free; end;
// ÃʱâÈ DM.SQL_OPEN(QR_MOTICE, startSQL); CHECKNUM(SENDER); ACTIVECONTROL:=RI_Motice_NM; end;
>> ¾Æ±â»ç¶û´Ô ´äº¯ °¨»çÇÕ´Ï´Ù. >> ´Ô²²¼ ¸»¾¸ÇϽŠ¿¡·¯Á¤º¸¿Í DataModule.pas ÆÄÀÏÀ» ZIP·Î ¾ÐÃàÇÏ¿© ÷ºÎÆÄÀÏ·Î ¿Ã¸²´Ï´Ù. >> ºÎµð ÁÁÀº °á°ú Àֱ⸦ ºÎŹµå¸³´Ï´Ù. >> >> ¾Æ·¡´Â °øÁö»çÇ× Å×À̺í Á¤º¸ ÀÔ´Ï´Ù. >> CREATE TABLE TF_MOTICE ( >> MOTICE_CD VARCHAR(20) NOT NULL, >> MOTICE_NM BLOB SUB_TYPE 0 SEGMENT SIZE 32762, >> ONOFF VARCHAR(10), >> SAT_TIME VARCHAR(10), >> END_TIME VARCHAR(10) >> ); >> >> >> ALTER TABLE TF_MOTICE ADD PRIMARY KEY (MOTICE_CD); >> >> >> >> >> 1. °³¹ß/½ÇÇà Ç÷§Æû >> >> (1) OS : Windows 7 >> >> (2) °³¹ßÅø :Delphi 7 >> >> (3) »ç¿ë Database : Firebird 2.1 >> >> 2. °³¹ß ÁßÀÎ ÇÁ·Î±×·¥ °øÁö»çÇ× >> >> >> >> 3. Áú¹® ³»¿ë >> >> ¾È³çÇϼ¼¿ä? >> >> °øÁö»çÇ× ÇÁ·Î±×·¥À» ¸¸µå´Â ÁßÀÔ´Ï´Ù. >> >> ¸®Ä¡¿¡µðÅ͸¦ ÀÌ¿ëÇÏ¿© ±Û²Ã ÆùÆ®·Î º¯È¯ÇÏ¿© ½ºÆ®¸²À¸·Î DB¿¡ ¹ÙÀ̳ʸ®·Î º¯È¯Àº µÇ´Âµ¥ ÀúÀåÁß >> >> ÀúÀåÀÌ ¾ÊµÇ°í ¿¡·¯°¡ ³³´Ï´Ù. ÷ºÎÆÄÀÏÀº ¹ÙÀ̳ʸ®·Î ÅؽºÆ®¿¡ ÀúÀåµÈ ÄÚµåÀÔ´Ï´Ù. >> >> Á¾Àü¿¡´Â ºÎºÐÀûÀ¸·Î Äڵ带 ¿Ã·È´Âµ¥ ´ä±ÛÀÌ ¾ø¾î¼ À̹ø¿¡´Â Ç® ÄÚµå·Î Áú¹®À» µå¸³´Ï´Ù. >> >> >> >> >> >> ¾Æ·¡¿Í °°ÀÌ ÀúÀåÀü SQLÀ̳ª Text·Î ÀúÀåÇؼ º¸¸éÀº º¯È¯Àº µË´Ï´Ù. >> >> //showmessage(sSQL); >> >> //Memo1.Lines.Add(sSQL); >> >> //RI_MOTICE_NM.Lines.SaveToFile('C:\12345.txt'); >> >> >> >> >> >> >> >> ¾Æ·¡´Â °øÁö»çÇ× Ç® ÄÚµåÀÔ´Ï´Ù. >> >> >> >> unit Motice; >> >> >> >> interface >> >> >> >> uses >> >> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, >> >> Dialogs, AdvToolBtn, ExtCtrls, StdCtrls, ComCtrls, DB, DBTables, Buttons, >> >> ADODB, Contnrs; >> >> >> >> type >> >> TModeType = (mNone,mAppend,mUpdate,mDelete); >> >> TMotice_F = class(TForm) >> >> Panel1: TPanel; >> >> Panel2: TPanel; >> >> Panel3: TPanel; >> >> Btn_Save: TAdvToolButton; >> >> Btn_CLOSE: TAdvToolButton; >> >> spAPPEND: TAdvToolButton; >> >> spUPDATE: TAdvToolButton; >> >> spDELETE: TAdvToolButton; >> >> QR_MOTICE: TQuery; >> >> Sp_Motice_CD: TSpeedButton; >> >> ED_MOTICE_CD: TEdit; >> >> RI_Motice_NM: TRichEdit; >> >> Panel4: TPanel; >> >> Panel5: TPanel; >> >> FontDialog1: TFontDialog; >> >> Btn_Font1: TAdvToolButton; >> >> Memo1: TMemo; >> >> procedure Btn_CLOSEClick(Sender: TObject); >> >> procedure FormCreate(Sender: TObject); >> >> procedure FormShow(Sender: TObject); >> >> procedure ED_MOTICE_CDChange(Sender: TObject); >> >> procedure Sp_Motice_CDClick(Sender: TObject); >> >> procedure spAPPENDClick(Sender: TObject); >> >> procedure Btn_SaveClick(Sender: TObject); >> >> procedure Btn_Font1Click(Sender: TObject); >> >> private >> >> { Private declarations } >> >> MODETYPE: TMODETYPE; // ÇöÀçÀÇ ¸ðµå»óÅ >> >> PROCEDURE COMPONENTCLEAR; // ÄÄÆ÷³ÍÆ® ÃʱâÈ ÇÔ¼ö >> >> PROCEDURE CHECKNUM(SENDER: TOBJECT); >> >> procedure GET_MOTICE(sMOTICECD: string); >> >> public >> >> { Public declarations } >> >> end; >> >> >> >> var >> >> Motice_F: TMotice_F; >> >> >> >> implementation >> >> >> >> uses GOCOMU,ULSEQRUM, DataModule; >> >> >> >> var >> >> startSQL : String; >> >> >> >> {$R *.dfm} >> >> >> >> // ÀÛ¾÷¸ðµå¸¦ ¼öÁ¤¸ðµå·Î ÀüȯÇÑ´Ù.(ÇÁ·Î±×·¥ ÃʱâÈ) >> >> procedure TMotice_F.FormCreate(Sender: TObject); >> >> begin >> >> spUPDATE.Click; // ¼öÁ¤¹öÆ° È°¼ºÈ >> >> end; >> >> >> >> // EDIT ÃʱâÈ >> >> PROCEDURE TMotice_F.COMPONENTCLEAR; >> >> VAR >> >> wCC: WORD; >> >> BEGIN >> >> // Àüü COMPONENTÁß¿¡¼ EDIT CHECKBOXÃʱâÈ >> >> FOR wCC:=1 TO COMPONENTCOUNT - 1 DO >> >> IF COMPONENTS[wCC] IS TEDIT THEN >> >> TEDIT(COMPONENTS[wCC]).TEXT:='' >> >> ELSE >> >> IF COMPONENTS[wCC] IS TCHECKBOX THEN >> >> TCHECKBOX(COMPONENTS[wCC]).CHECKED:=FALSE >> >> ELSE >> >> IF COMPONENTS[wCC] IS TRichEdit THEN >> >> TRichEdit(COMPONENTS[wCC]).Lines.Text:=''; >> >> end; >> >> >> >> // µî·ÏµÈ ÀÚ·á º¸¿©ÁÖ±â ÇÔ¼ö >> >> PROCEDURE TMotice_F.CHECKNUM(SENDER: TOBJECT); >> >> Var >> >> sSQL : String; >> >> begin >> >> sSQL := ' Select * From TF_MOTICE'; >> >> DM.SQL_OPEN(QR_MOTICE, sSQL); >> >> if QR_MOTICE.Eof then >> >> Exit; >> >> try >> >> QR_MOTICE.OPEN; >> >> except >> >> APPLICATION.MESSAGEBOX('°øÁö»çÇ× Á¤º¸ Å×ÀÌºí »ý¼ºµµÁß ¿¡·¯¹ß»ý!!!', >> >> '¿À·ù', MB_OK + MB_ICONINFORMATION); >> >> QR_MOTICE.CLOSE; >> >> end; >> >> end; >> >> >> >> // ÀÛ¾÷Á¾·á >> >> procedure TMotice_F.Btn_CLOSEClick(Sender: TObject); >> >> begin >> >> Close; >> >> end; >> >> >> >> // µî·ÏµÈ ÀڷḦ º¸¿©ÁØ´Ù. >> >> procedure TMotice_F.FormShow(Sender: TObject); >> >> Var >> >> sSQL : String; >> >> begin >> >> startSQL := ' Select * From TF_MOTICE'; >> >> DM.SQL_OPEN(QR_MOTICE, startSQL); >> >> if QR_MOTICE.Eof then >> >> Exit; >> >> try >> >> QR_MOTICE.OPEN; >> >> except >> >> APPLICATION.MESSAGEBOX('°øÁö»çÇ× Á¤º¸ Å×ÀÌºí »ý¼ºµµÁß ¿¡·¯¹ß»ý!!!', >> >> '¿À·ù', MB_OK + MB_ICONINFORMATION); >> >> QR_MOTICE.CLOSE; >> >> end; >> >> end; >> >> >> >> // °øÁöÄڵ尡 ¹Ù²î¸é µî·ÏµÈ ÀڷḦ Àç ÀÛ¼ºÇÑ´Ù. >> >> procedure TMotice_F.ED_MOTICE_CDChange(Sender: TObject); >> >> begin >> >> // °øÁöÄڵ带 Àç ÀÛ¼ºÇÑ´Ù. >> >> Sp_Motice_CD.Click; >> >> >> >> // µî·ÏµÈ Àڷΰ¡ ÀÖÀ¸¸é º¸¿©ÁÖ°í »èÁ¦¹öÆ° È°¼ºÈ¿©ºÎ Á¡°Ë >> >> IF SENDER = ED_MOTICE_CD THEN >> >> BEGIN >> >> GET_MOTICE(TRIM(TEDIT(SENDER).TEXT)); >> >> IF QR_MOTICE.ACTIVE THEN >> >> QR_MOTICE.Locate('MOTICE_CD',TRIM(TEDIT(SENDER).TEXT),[lopartialkey]); >> >> END; >> >> >> >> // ÀԷ¿¡¼ °øÁö»çÇ× ÄÚµå±â ÀÔ·ÂµÇ¸é °øÁö ³»¿ëÀ» ã¾ÆÁØ´Ù. >> >> if SENDER = ED_MOTICE_CD then >> >> BEGIN >> >> RI_MOTICE_NM .TEXT:= >> >> GET_CODE_DESC('TF_MOTICE',1,[1],['MOTICE_CD'],[TRIM(ED_MOTICE_CD.TEXT)],'MOTICE_NM'); >> >> END; >> >> end; >> >> >> >> // µî·ÏµÈ ÀÚ·á º¸¿©ÁÖ±â ÇÔ¼ö >> >> procedure TMotice_F.GET_MOTICE(sMOTICECD: string); >> >> Var >> >> Q1 : TQUery; >> >> SS: TStringStream; >> >> sTemp: String; >> >> begin >> >> if MODETYPE in [mNone] then >> >> EXIT; >> >> >> >> Q1:=TQUERY.CREATE(SELF); >> >> Q1.DATABASENAME:=ALIASNAME; >> >> Q1.SQL.CLEAR; >> >> Q1.SQL.ADD(' SELECT * FROM TF_MOTICE WHERE MOTICE_CD = '''+sMOTICECD+''''); >> >> Q1.OPEN; >> >> SS := TStringStream.Create(''); >> >> sTemp := Q1.FieldByName('MOTICE_NM').AsString; >> >> RI_MOTICE_NM.Lines.SaveToStream(SS); >> >> SS.Free; >> >> Q1.CLOSE; >> >> Q1.FREE; >> >> ACTIVECONTROL:=RI_MOTICE_NM; >> >> end; >> >> >> >> // °øÁö»çÇ×ÄÚµå ½ÇÇà >> >> procedure TMotice_F.Sp_Motice_CDClick(Sender: TObject); >> >> begin >> >> ED_MOTICE_CD.Text := 'MOT001'; >> >> end; >> >> >> >> //----------------------------------------------------------------------------- >> >> // BUTTON EVENT >> >> //----------------------------------------------------------------------------- >> >> // »ðÀÔ¹öÆ°(¼±ÅùöÆ° ¸ðµå¼³Á¤ >> >> procedure TMotice_F.spAPPENDClick(Sender: TObject); >> >> Var >> >> sSQL :String; >> >> begin >> >> // ÇöÀç ÀÛ¾÷¸ðµå »óÅ ¼³Àü >> >> if SENDER = spAPPEND then MODETYPE := mAPPEND >> >> else >> >> if SENDER = spUPDATE then MODETYPE := mUPDATE >> >> else >> >> if SENDER = spDELETE then MODETYPE := mDELETE; >> >> >> >> // µî·ÏµÈ ÀüüÀÚ·á º¸¿©ÁÖ±â >> >> sSQL := 'SELECT * FROM TF_MOTICE'; >> >> DM.SQL_Open(QR_Motice, sSQL); >> >> if not QR_Motice.Active then >> >> QR_Motice.OPEN; >> >> CHECKNUM(SENDER); >> >> ACTIVECONTROL := RI_Motice_NM; // Ä¿¼ÅÁ¦¾î >> >> end; >> >> >> >> // ÀúÀå¹öÆ°(¼³Á¤µÈ ¸ðµå¿¡µû¶ó SQL±¸¹®À» µ¿ÀûÀ¸·Î »ý¼ºÇÏ¿© ½ÇÇà >> >> procedure TMotice_F.Btn_SaveClick(Sender: TObject); >> >> var >> >> sSQL: string; >> >> sEPM_CD, sStreamVal : String; >> >> rtVal : Boolean; >> >> // SS: TMemoryStream; >> >> SS: TStringStream; >> >> begin >> >> // °øÁö¸í Á¡°Ë >> >> IF (Trim(RI_Motice_NM.Text) = '') then >> >> begin >> >> Application.MessageBox('°øÁö¸íÀ» ÁöÁ¤ÈÄ ÀÛ¾÷ÇϽÿä...','°øÁö¸í Á¡°Ë', >> >> mb_ok+mb_IconInformation); >> >> ActiveControl := RI_Motice_NM; >> >> Exit; >> >> end; >> >> >> >> IF APPLICATION.MESSAGEBOX('ÀÔ·ÂµÈ µ¥ÀÌŸ¸¦ ÀúÀå ÇϽðڽÀ´Ï±î?','ÀúÀåÈ®ÀÎ', >> >> MB_YESNO+MB_ICONQUESTION) <> IDYES THEN >> >> EXIT; >> >> >> >> SS := TStringStream.Create(RI_Motice_NM.Text); >> >> try >> >> SS.Position := 0; >> >> RI_MOTICE_NM.Lines.SaveToStream(SS); >> >> >> >> sStreamVal := SS.DataString; >> >> >> >> // ¸ðµå¿¡µû¸¥ SQL ±¸¹®»ý¼º >> >> case MODETYPE of >> >> mAPPEND: // Ãß°¡ ¸ðµå½Ã >> >> begin >> >> sSQL := 'INSERT INTO TF_MOTICE(MOTICE_CD,MOTICE_NM) '+ >> >> 'VALUES(' + >> >> FORMAT('''%s''', [TRIM(ED_MOTICE_CD.TEXT)])+ //°øÁöÄÚµå >> >> FORMAT(',''%s''', [TRIM(sStreamVal)])+ //RI_MOTICE_NM.TEXT)])+ //°øÁö¸í >> >> ')'; >> >> end; >> >> mUPDATE: // ¼öÁ¤¸ðµå >> >> begin >> >> sSQL := 'UPDATE TF_MOTICE SET' + >> >> FORMAT(' MOTICE_NM =''%s''', [TRIM(sStreamVal)])+ // °øÁö¸í >> >> FORMAT(' WHERE MOTICE_CD=''%s''', [TRIM(ED_MOTICE_CD.Text)]); // °øÁöÄÚµå >> >> end; >> >> mDELETE: // »èÁ¦¸ðµå >> >> begin >> >> if APPLICATION.MESSAGEBOX('Á¤¸»·Î »èÁ¦ ÇϽðڽÀ´Ï±î?', '»èÁ¦È®ÀÎ', >> >> MB_YESNO + MB_ICONQUESTION) <> IDYES then >> >> EXIT; >> >> sSQL := 'DELETE FROM TF_MOTICE Where ' + >> >> 'MOTICE_CD = ' + FORMAT('''%s''', [TRIM(ED_MOTICE_CD.Text)]); >> >> end; >> >> end; >> >> >> >> //showmessage(sSQL); >> >> //Memo1.Lines.Add(sSQL); >> >> //RI_MOTICE_NM.Lines.SaveToFile('C:\12345.txt'); //<- ÅؽºÆ®·Î ÀúÀåÇÏ¸é ¹ÙÀ̳ʸ®·Î ÀúÀå µÊ >> >> >> >> // µ¿Àû QUERY »ý¼º >> >> rtVal := DM.SQL_Exec(DM.qryExec, sSQL); // DataModule¸¦ OpenÇÑ´Ù. >> >> if not rtVal then >> >> begin >> >> case MODETYPE of >> >> mAPPEND: >> >> APPLICATION.MessageBox('°øÁö»çÇ× Å×À̺í Ãß°¡µµÁß ERROR ¹ß»ý!!!', '¿À·ù', >> >> MB_OK + MB_ICONINFORMATION); >> >> mUPDATE: >> >> APPLICATION.MessageBox('°øÁö»çÇ× Å×ÀÌºí ¼öÁ¤µµÁß ERROR ¹ß»ý!!!', '¿À·ù', >> >> MB_OK + MB_ICONINFORMATION); >> >> mDELETE: >> >> APPLICATION.MessageBox('°øÁö»çÇ× Å×ÀÌºí »èÁ¦µµÁß ERROR ¹ß»ý!!!', '¿À·ù', >> >> MB_OK + MB_ICONINFORMATION); >> >> end; >> >> end; >> >> >> >> sStreamVal := ss.DataString; >> >> finally >> >> SS.Free; >> >> end; >> >> >> >> // ÃʱâÈ >> >> DM.SQL_OPEN(QR_MOTICE, startSQL); >> >> CHECKNUM(SENDER); >> >> ACTIVECONTROL:=RI_Motice_NM; >> >> end; >> >> >> >> // ¸®Ä¡¿¡µðÅÍ¿¡ ºí·°À¸·Î ±Û²Ã°ú »ö»ó Å©±â ÆùÆ® ³Ö±â >> >> procedure TMotice_F.Btn_Font1Click(Sender: TObject); >> >> begin >> >> if RI_Motice_NM.SelLength > 0 then >> >> begin >> >> FontDialog1.Font.Assign(RI_Motice_NM.DefAttributes); >> >> if FontDialog1.Execute then >> >> RI_Motice_NM.SelAttributes.Assign(FontDialog1.Font); >> >> end; >> >> end; >> >> >> >> end.
|