ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室A

このエントリーをはてなブックマークに追加
939コンポ―念と作りたい:02/01/26 22:42
>>938
それは解るんです。
どこにどうやって書いたらよいのですか
940デフォルトの名無しさん:02/01/26 22:47
コンポーネントか、じゃあメンバで
procedure CMExit(var Msg: TCMExit); message CM_EXIT;
と宣言して、実装は
begin
 inherited;
ShowMessage('Hell World');
end;
って感じ
>>939
TTestEdit = class(TEdit)
protected
 procedure DoExit; override;
end;

procedure TTestEdit.DoExit;
begin
 inherited;
 Self.Text:='Hello World';
end;
942コンポ―念と作りたい:02/01/26 22:57
>>940-941

ありがとうございます!
コレをベースに色々作ってみたいと思ってます。
ありがとうございました
>>941 追記
 Self.Text:='Hello World';

 Text:='Hello World';
でいいよ
8.3形式のファイルネームをロングファイルネーム形式にするのってどうやるんですか?
FindFirst?
946ななしヘタぐらま ◆B18Bks.Y :02/01/28 02:47
FindFirst関数みたいですね.

使い方はDelphiのヘルプを見ていただくとして
検索レコードの変数がヘルプのようにFだとすると
F.FindData.cAlternateFileName
に8.3形式のファイル名が格納されるようです.
947仕様書無しさん:02/01/28 03:20
一応GetLongFileName(だったかな?)ってAPIあるらすぃ。
けど古いWin95とかでは使えないからだめぽ

よって、>>945-946氏の仰られた、
全Win32環境で使える(ハズ)のFindFirst関数とか
FindFirstFile API使うと(・∀・)イイ!!
>>945-947
FindFirstですか、なるほど。ありがとうございました。
949デフォルトの名無しさん:02/01/29 19:57
ageさせてもらいます。
オープン記念です。
950デフォルトの名無しさん:02/01/29 21:47
http://www.fukkan.com/vote.php3?no=4407
復刊ドットコムで、デルファイの名著に投票して。
951Delフサギコ:02/01/29 21:55
         _________
  ∧,,∧   / フルパスを変換するには
 ミ,,゚Д゚彡<  再帰的に呼び出す
  ミつ つ  \ 必要があるんじゃなかった?
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U  ロングファイルメイ ノコトネ
D6 なら System.pas に ToLong 関数が隠れているからコピーして使いなさい。
953Delフサギコ:02/01/29 22:12
         _________
  ∧,,∧   /
 ミ゚Д゚;彡< なんですと!??
  ミつ つ  \
〜ミ ,, ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∪∪   ドコダドコダ
954デフォルトの名無しさん:02/01/29 23:06
TGraphicControl を継承した自作コンポーネントをコンパイルして登録し、
フォームに貼りつけようとすると、
「コントロール””は親ウィンドウを持っていません」
といわれますが、どういうことですか?大変困っています。
>>954 コンストラクタの定義行だけ見せてみ
親設定してないんでしょ?
957954:02/01/29 23:27
Createの宣言と定義は以下のようになっております。どうか、
解決方法をお教えください。

TKGrid = class(TGraphicControl)
 ...
public
 constructor Create(AOwner: TComponent); override;
 ...
end;

...

constructor TKGrid.Create(AOwner: TComponent);
begin
inherited;

FRowHeights := TList.Create;
FColWidths := TList.Create;

DefaultColWidth := 80;
DefaultRowHeight := 20;
Width := 100;
Height := 100;
LeftCol := 0;
TopRow := 0;
FMouseOver := Point( -1, -1 );
SetSize(8,100);
end;
958デフォルトの名無しさん:02/01/29 23:31
只で教えてもらうのもアレなので、ロングファイル名の取得関数を示します。ToLong、探したけど無かったです。

// * ExpandFileName のコードはDelphiML で紹介されていたソースに手直ししたもの *
//DelphiML検索サービスで「ロングファイル」で検索
function ExpandFileName(const ShortFileName:string):string;
var
 Path:string;
 SearchRec:TSearchRec;
begin
 if ShortFileName = '' then Exit;
 Result := ExcludeTrailingPathDelimiter( ShortFileName );
 if ( Length( Result ) = 2 ) and ( Result[2] = ':' ) then Exit;
 if FindFirst( Result, faAnyFile, SearchRec )=0 then
 begin
  Path := ExpandFileName( ExtractFileDir( Result ) );
  Path := IncludeTrailingPathDelimiter( Path );
  Result := Path + SearchRec.Name;
 end;
 SysUtils.FindClose( SearchRec );
end;
959デフォルトの名無しさん:02/01/29 23:34
「示します」て、あんたが作ったとチャウやろ?
>>957  てっきりコンストラクタ内で何か親指定せずに作成したコンポがあるんだろ思ったけど違うね

SetSizeの中か どれかのプロパティで直接描画か何かしてない?
961957:02/01/30 00:02
>>960
たしかに描画してます。
LeftCol, TopRow, SetSize で、
オーバーライドしたPaintメソッドを呼び出し、

procedure TKGrid.Paint;
begin
inherited;
Draw;
end;

Drawメソッドで自身のCanvasに描画しています。
962952:02/01/30 00:11
ToLongPath だ。スマン。
フリーカーソル無効化アドインと、GExpertsは有名だけど、
コードエクスプローラ代わりになるフリーのアドインあったよね?
名前が思い出せなくて検索できないんだけど、わかる人教えて。
過去に一回話題に上ったのは覚えているんだけど、過去ログ探しても見つからん……。
CodeWarpかな
>>961
 もう判ったんだと思うけど、
1) Create直後では実際に描画してはいけない。 まだ窓ハンドルを持ってないからね

2)プロパティの設定中でPaintを呼ぶのは格好悪い そういう場合はInvalidateを呼ぶ
966963:02/01/30 11:04
>>964
サンキュー
早速落としてみる
967デフォルトの名無しさん:02/01/30 11:45
>>965
おおおお
ありがとうございます。無事に解決しました。

ついでなのですが…

自作コントロールをスクロール処理した際に、描画処理が繰り返し行われ
画面がちらついてしまいます。
オーバーライドした MouseMove メソッドでスクロールを
キャッチし、その都度 Invalidate を呼び出しているのですが…

一度 TBitmap を作成し、それに全てを書きこんでから
コントロール.Canvas.Draw(0,0,Bitmap)
してみても、結果は同じでした。

普通はどういう風にやっているのでしょうか。ちなみに、作っているのは
グリッドコントロールです。
>>967
普通かどうか知らないけど
1) 今のやり方で ControlStyle からcsOpaque を外す
   あるいはInvalidate をoverrideして InvalidateRectを直接呼ぶ
2) 窓ハンドルを持ってる親に対して DoubleBuffered:=Trueにする
3)スクロールだけなら ScrollWindowEx で
969デフォルトの名無しさん:02/01/30 17:20
わーい。Delphi6 Personalが2分10秒で落ちたー!! ブロードバンドマンセー!!
というわけで10分間ほど遊んでみよう。
970デフォルトの名無しさん:02/01/30 17:45
>>969
とりあえず、アップデートして、indyとフリーカーソル無効化アドイン入れとけ
971デフォルトの名無しさん:02/01/30 21:24
TScrollBox のスクロールバーを Flat = True にしたときのようなスクロールバーがほしいのですが TScorllBar.Flat というプロパティは存在しません。
そこで、TScrollBarを継承して TFlatScrollBar を作ろうとしました。
TScrollBar の描画メソッドをオーバーライドすれば出来ると思っていたのですが、描画部分はどうもDLLを呼び出しているみたいです。

このような DLL を呼び出しているものの場合 (TButton とか) は、
独自の描画を施すことは不可能なのでしょうか。
>>971
コンポーネントパレットの'Standard'にあるやつの大部分は Win32 の標準
コントロールのラッパーです。TButton がラップしている'BUTTON'クラスには
オーナードローがあるが、'SCROLLBAR'クラスにはないと思うよ。だから、サブ
クラス化すると不可能ではないと思うけど、めんどくさそう。
973icbm:02/01/31 03:30
デルファイ6使ってます
フラッシュを再生させるコードを教えていただけますか?
フラッシュのアクティブXを取り込んで
ショックウェーブフラッシュって白い四角を貼り付けるまではしました。


974デフォルトの名無しさん:02/01/31 08:01
フラッシュを再生させるタグを書いたHTMLを保存し、それを
WebBrowser で読みこむ。

3行で終わるな。
975デフォルトの名無しさん:02/01/31 08:27
950を越えてるみたいだけど、新スレは立てないの?
DelフサギコのフサフサDelphi談話室B(仮称)
>>973 すぐに返事がないのは
   movieプロパティにファイル名指定するだけだゴラァ!
   TLBファイル見りゃPlay/Stopとか使えそうなメソッドくらいみえるだろゴラァ! だと思われ
                  

>>975 たてられるならたてて下さい 当人はどうやら スレたてすぎ病でたれられないと思われ
977 973:02/01/31 08:48
>>976 すみません恐縮です ヘルプの開き方しか知らないので。。
ありがとうございました
マ板に新スレができてる…
あ!ほんとだ
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室B
http://pc.2ch.net/test/read.cgi/prog/1012435004/

よかったよかった これで MLウオッチネタも遠慮なくやれる
980Delフサギコ:02/01/31 09:17
  ∧,,∧    / >>976 いや、持病の怠け癖が…
 ミ,,゚Д゚彡 <  フラッスとか使ったことないので
Π ̄ ̄ ̄|  \ 返事できませヌ。
|つ 怠惰 ()   
| |___.|
  ∪∪ コテハン タタキ トカモ ビミョウニ コワカッタリ
ブビチュウ vs. Del厨でマ板が荒れてる時に…
982Delフサギコ:02/01/31 09:24
間違えて、マ板に立ててしまいましたが、新スレができたので移動をお願いします。

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室B
http://pc.2ch.net/test/read.cgi/prog/1012435004/
983Delフサギコ:02/01/31 10:52
  ∧,,∧ ──────
 ミ゚Д゚,,彡 < なんだか名前が
 ⊂⊂ ミ──勝手に使われているようなー?
    ヾ ,,ミ〜 ────
     し じ ─────
トリップ トリップ
機種依存文字はヤメレと言うのに。
皆がWindowsから見ていると思わんでくれ。
>>984
マカー?
つーか2ちゃんねるで機種依存文字云々といっても無理だろう。
よそのサイトで使うなと言うならまだわかるが。
目に頼るから見えない、心の目で見れ
HGCハ モンモウノ マカー
バーカ バーカ
>>985
Linux板辺りの原理主義者かも知れず。