くだすれDelphi(超初心者用)その39

このエントリーをはてなブックマークに追加
747デフォルトの名無しさん:2007/02/28(水) 13:27:43
>>746
元々は白黒じゃなかったんだよね? だったらパレットが付いてないんじゃないの?
748デフォルトの名無しさん:2007/02/28(水) 13:50:43
WordのマクロをDelphiで書いて、自動実行させようとしたら、Wordのマクロ見ると:=とかpascalっぽい記述。
こんなんどうしろっつーんじゃ!!
749デフォルトの名無しさん:2007/02/28(水) 13:51:57
>>748
なんか面白そうな事やってるね。 もうちっと詳しく書いてくれたら皆んなも楽しめるかも
750748:2007/02/28(水) 13:58:26
Wordで記録するとこんなマクロ。どうやってDelphiで記述すればいいのか・・。
しかも入力したとおりに記録されてないし。何これ。

Sub Macro1()
'
' Macro1 Macro
' 記録日 2007/02/28 記録者
'
Selection.TypeText Text:="こんにちは。"
Selection.TypeParagraph
Selection.TypeText Text:="こので。"
Selection.TypeParagraph
Selection.MoveUp Unit:=wdLine, Count:=2
Selection.Style = ActiveDocument.Styles("見出し 1")
End Sub
751デフォルトの名無しさん:2007/02/28(水) 14:01:07
>>750
それはVBAじゃないのか? Delphiでどうしたいの?
752750:2007/02/28(水) 14:15:21
この処理を、Delphiで書きたいだけだよ。
753デフォルトの名無しさん:2007/02/28(水) 14:19:06
>>752
オートメーションコントローラとして?
754デフォルトの名無しさん:2007/02/28(水) 21:08:22
これで良いのだろうか?
const
 wdLine = 5;
var
 app, selection: Variant;
begin
 app := CreateOLEObject('Word.Application');
 app.visible := true;
 app.Documents.Add;
 selection := app.Selection;

 selection.TypeText(Text := 'こんにちわ');
 selection.TypeParagraph;
 selection.TypeText(Text := 'こので。');
 selection.TypeParagraph;
 selection.MoveUp(Unit := wdLine, Count := 2);
 selection.Style := '見出し 1';
end;
755デフォルトの名無しさん:2007/03/01(木) 12:52:38
あの質問です。delphi6personalをインストールするときの、キーが分らないんです。
登録して、アンケート答えて、キーをメールで送信するってとこをクリックしてもページが見つかりませんとなってしまう。
どうすればいいですか??
756デフォルトの名無しさん:2007/03/01(木) 12:53:59
インストールできません
757デフォルトの名無しさん:2007/03/01(木) 12:55:11
758デフォルトの名無しさん:2007/03/01(木) 13:33:14
>>755
ウェブサイトを弄っている途中みたい。
面倒だがボーランドに電話汁。
759デフォルトの名無しさん:2007/03/01(木) 13:38:07
http://dn.codegear.com/article/33580
>4、. http://register.borland.com/delphi6 にアクセスします。

ここがつながらないんだろ?
なんか、このページがソレらしいんだけど、違うのかなあ
https://reg.borland.com/
760デフォルトの名無しさん:2007/03/01(木) 13:57:08
インストール番号はどうするのよ?
761デフォルトの名無しさん:2007/03/01(木) 16:11:07
>>755
OS環境が許せばTurbo delphi (Explorer版)を使えば?
こっちも無料だよ
762デフォルトの名無しさん:2007/03/01(木) 16:17:24
Turboはコンポ入れられないから糞
763デフォルトの名無しさん:2007/03/01(木) 16:54:48
ある文字列をクリップボードにコピーしようと思ったのですが
一番最後に改行が入ってしまいます。
これはどうにもならないのでしょうか?

uses
  Clipbrd;
....
var
  Form1: TForm1;
  clip: TClipboard;
  tex: TStrings;
.....
procedure TForm1.FormCreate(Sender: TObject);
begin
  clip:=TClipboard.Create;
  tex:=TStringList.Create;
  tex.Add('');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  clip.Free;
  tex.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  tex[0] := CurrentDirectly;
  clip.AsText := tex.Text;
end;
764デフォルトの名無しさん:2007/03/01(木) 16:59:19
function chop(s: string): string;
begin
result := s;
whlie length(result) > 0) and (result[length(result)] in [#10, #13]) do
setlength(result, length(result)-1);
end;

...

  clip.AsText := chop(tex.Text);

とかやっとけ。それからClipboardインスタンスは定義済みだから
create/freeは不要。
Clipboard.AsText := で桶
765デフォルトの名無しさん:2007/03/01(木) 17:15:44
つーか、そもそも

procedure TForm1.Button1Click(Sender: TObject);
begin
 Clipboard.AsText := CurrentDirectly;
end;

でいいんじゃ・・
766デフォルトの名無しさん:2007/03/01(木) 18:22:56
TStringListを継承して独自のクラスをつくりたい… で、
Createしたときに一行目に予め注意書きみたいなのを入れるようにしたくて

TMyStringList = class(TStringList)

public
constructor Create(note: String); overload;


で、実装部で
constructor Create(note: String); overload;
begin
 inherited;
 Append(note);
end;

で、なにも問題ないですか?
overrideつけないといけないようですが、引数なしのコンストラクタはoverrideする元がないようですし…
767デフォルトの名無しさん:2007/03/01(木) 18:22:57
横から質問スマソ
TStringListって最初の行にstringを代入する時
addを使わずに
tex[0] := CurrentDirectly;
ってやってOKなの?
768デフォルトの名無しさん:2007/03/01(木) 18:23:52
んなわけない
769デフォルトの名無しさん:2007/03/01(木) 18:41:38
>>767
FormCreateのときに空文字をAddしてるから
tex[0]が使えてるだけです

length(result)て改行文字も含めた値が返るんですか?
770デフォルトの名無しさん:2007/03/01(木) 20:03:55
かけあい漫才ですかwwwwww
771デフォルトの名無しさん:2007/03/02(金) 05:46:08
お尋ねします。
Excelでは画面を更新する時に、ちらつきを抑えるために
ScreenUpdatingプロパティをFalseにすることで実現できるのですが
Delphiにもそういった機能はあるのでしょうか?
772デフォルトの名無しさん:2007/03/02(金) 06:09:33
何について知りたいのかわからない
フォーム?
773デフォルトの名無しさん:2007/03/02(金) 07:49:23
グラフィックの描画がちらつく場合は DoubleBufferedというのがある
774771:2007/03/02(金) 09:02:50

771で質問した者です。
レスありがとうございます。
あまりにも質問が抽象的過ぎたので具体的に説明します。

エクスプローラーのようなものを作ろうとしております。
TreeViewをAlineプロパティを上下左右に変えることで
上下左右に移動できるような機能を兼ね備えたものです。
たとえばTreeViewのalineプロパティがalLeftの時にalTopに変えたら
TreeViewは左から上に移動しますが、この時デフォルトでは
alLeftの時の幅がalTopの時の高さになります。
しかしこのままでは、適切な高さにならない場合もあるので
強制的にプログラムで適切な高さになるように修正しているのですが、
修正しているさまがあまりにもバレバレでかっこ悪いのです。

ExcelVBAにはScreenUpdatingという機能があり、
これを使えば、見せたくないものに関しては途中の描画を見せずに
プログラム実行後の最終結果だけを見せることができます。
これに類似した事をDelphiで実現することは可能でしょうか?
775デフォルトの名無しさん:2007/03/02(金) 09:05:27
beginupdate endupdate かな?
776デフォルトの名無しさん:2007/03/02(金) 09:30:43
>>774
TApplicationのProcessMessagesメソッドは使ってみた?
777デフォルトの名無しさん:2007/03/02(金) 12:28:16
>>774
LockWindowUpdate(Form1.Handle);
try
 (処理)
finally
 LockWindowsUpdate(0);
end;
778ななしへたぐらま ◆XcB18Bks.Y :2007/03/02(金) 15:08:45
>>766
オーバーライドは継承元のクラスのCreateメソッドが仮想メソッドか動的メソッドの場合にだけ関係しますので
ここでは気にしなくて結構です.

このクラスではパラメータ無しのCreateを記述することもできて実行すると継承元クラスのCreateが呼び出されますが
これは想定した仕様ですか?(もしそうなら問題ないと思います)
779766:2007/03/02(金) 20:08:25
>>778
そうですね、パラメータ無しのCreateを呼んだときは何かデフォルトの文字が入ってるような感じにしてごまかそうかと思ってます。
無しのCreateにもoverloadつけてデフォの値をいれても(パラメータ、有り、無し2つのCreateを書いてしまっても)問題はありませんか?
780デフォルトの名無しさん:2007/03/02(金) 20:40:44
オーバーロードする必要なんて無いような気がしてならない。
781デフォルトの名無しさん:2007/03/02(金) 22:10:10
overrideとoverloadをごっちゃにしているような気がしてならない。
782771:2007/03/02(金) 23:54:26
>>775
>>776
>>777
質問に答えていただいて、ありがとうございます。

783766:2007/03/03(土) 09:58:34
引数ありのCreateと無しのCreateではoverloadしなくちゃならないかな、と思っただけ。
overrideは継承した子クラスでの手続の振る舞いを変えるための上書きみたいなもんでそ?

うっふん♥
784デフォルトの名無しさん:2007/03/03(土) 10:08:07
言われてみれば、コンストラクタはoverloadしなくて複数宣言出来るのは、勘違いしてもしょうがないな

overloadが導入される前からの設計だからしょうがないけど
785デフォルトの名無しさん:2007/03/03(土) 20:39:46
横槍スマン
デストラクタはどうなの?
786デフォルトの名無しさん:2007/03/03(土) 20:47:23
プログラムを起動したとき、ボタンでなくてエディタにフォーカスを
移すにはどうしたらいいですか?
787デフォルトの名無しさん:2007/03/03(土) 20:48:31
edit1.setfocus;
788デフォルトの名無しさん:2007/03/03(土) 21:02:00
ActiveControl
789デフォルトの名無しさん:2007/03/03(土) 21:15:24
>>785
デストラクタは Destroy をオーバーライド一択だろ。
790デフォルトの名無しさん:2007/03/04(日) 03:00:14
だよねぇ
791デフォルトの名無しさん:2007/03/04(日) 09:15:22
>>786
setfocusはFormが既にアクティブじゃないと使えない

Formが最初に得るフォーカスを指定するときは
ActiveControlを使うべし
792デフォルトの名無しさん:2007/03/04(日) 10:05:55
設計時にEdit1のTabOrderを0にするというのはあり?
793デフォルトの名無しさん:2007/03/05(月) 07:33:58
Print Tools/32用のチェーンストア統一伝票各種のテンプレートどっかにないですか?
794デフォルトの名無しさん:2007/03/05(月) 09:40:47
Visual dBASE まだ使ってるのか・・・・
795デフォルトの名無しさん:2007/03/05(月) 12:10:30
Delphi2007のDMきたお。
Delphi−PHPのチラシも入ってたんだが、「英語版日本先行販売」ってのは「日本語版後行発売」と受け取っていいのか!?

PHP使いたいんだが、マニュアルやらサンプルやら全部英語だと滅入っちまう…
日本語環境では保証ありませんとか書いてるし。
796デフォルトの名無しさん
>>日本語環境では保証ありませんとか書いてるし。
これかなり重要だよな
マルチバイト文字環境では動作不安定とかマジ日常茶飯事