ミ,,゚Д゚彡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形式のファイル名が格納されるようです.
一応GetLongFileName(だったかな?)ってAPIあるらすぃ。
けど古いWin95とかでは使えないからだめぽ
よって、
>>945-946氏の仰られた、
全Win32環境で使える(ハズ)のFindFirst関数とか
FindFirstFile API使うと(・∀・)イイ!!
949 :
デフォルトの名無しさん:02/01/29 19:57
ageさせてもらいます。
オープン記念です。
950 :
デフォルトの名無しさん:02/01/29 21:47
_________
∧,,∧ / フルパスを変換するには
ミ,,゚Д゚彡< 再帰的に呼び出す
ミつ つ \ 必要があるんじゃなかった?
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U ロングファイルメイ ノコトネ
D6 なら System.pas に ToLong 関数が隠れているからコピーして使いなさい。
_________
∧,,∧ /
ミ゚Д゚;彡< なんですと!??
ミつ つ \
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪ ドコダドコダ
954 :
デフォルトの名無しさん:02/01/29 23:06
TGraphicControl を継承した自作コンポーネントをコンパイルして登録し、
フォームに貼りつけようとすると、
「コントロール””は親ウィンドウを持っていません」
といわれますが、どういうことですか?大変困っています。
親設定してないんでしょ?
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の中か どれかのプロパティで直接描画か何かしてない?
>>960 たしかに描画してます。
LeftCol, TopRow, SetSize で、
オーバーライドしたPaintメソッドを呼び出し、
procedure TKGrid.Paint;
begin
inherited;
Draw;
end;
Drawメソッドで自身のCanvasに描画しています。
ToLongPath だ。スマン。
フリーカーソル無効化アドインと、GExpertsは有名だけど、
コードエクスプローラ代わりになるフリーのアドインあったよね?
名前が思い出せなくて検索できないんだけど、わかる人教えて。
過去に一回話題に上ったのは覚えているんだけど、過去ログ探しても見つからん……。
CodeWarpかな
>>961 もう判ったんだと思うけど、
1) Create直後では実際に描画してはいけない。 まだ窓ハンドルを持ってないからね
2)プロパティの設定中でPaintを呼ぶのは格好悪い そういう場合はInvalidateを呼ぶ
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'クラスにはないと思うよ。だから、サブ
クラス化すると不可能ではないと思うけど、めんどくさそう。
デルファイ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 たてられるならたてて下さい 当人はどうやら スレたてすぎ病でたれられないと思われ
>>976 すみません恐縮です ヘルプの開き方しか知らないので。。
ありがとうございました
マ板に新スレができてる…
∧,,∧ /
>>976 いや、持病の怠け癖が…
ミ,,゚Д゚彡 < フラッスとか使ったことないので
Π ̄ ̄ ̄| \ 返事できませヌ。
|つ 怠惰 ()
| |___.|
∪∪ コテハン タタキ トカモ ビミョウニ コワカッタリ
ブビチュウ vs. Del厨でマ板が荒れてる時に…
∧,,∧ ──────
ミ゚Д゚,,彡 < なんだか名前が
⊂⊂ ミ──勝手に使われているようなー?
ヾ ,,ミ〜 ────
し じ ─────
トリップ トリップ
機種依存文字はヤメレと言うのに。
皆がWindowsから見ていると思わんでくれ。
>>984 マカー?
つーか2ちゃんねるで機種依存文字云々といっても無理だろう。
よそのサイトで使うなと言うならまだわかるが。
目に頼るから見えない、心の目で見れ
HGCハ モンモウノ マカー
バーカ バーカ
>>985 Linux板辺りの原理主義者かも知れず。