>>931 ありがとうございます。
とりあえず、新規フォームにコンボとXPMan貼り付けて以下のコードで
やってみましたが、うまくいきませんでした。
どこかおかしいところあったら指摘して下さい。
const
EM_SETCUEBANNER = $1501;
EM_GETCUEBANNER = $1502;
procedure TForm1.FormCreate(Sender: TObject);
begin
SendMessage(ComboBox1.Handle, EM_SETCUEBANNER, 1, LParam(PChar('abcd')));
ComboBox1.Refresh;
end;
参考
ttp://homepage1.nifty.com/ht_deko/tech022.html
まずEditで。あとOnShowかButtonのOnClickで。
おっとLParamは"A pointer to a Unicode string that contains the text to display as the textual cue."だ。
Editやボタンクリック、WideStringは既に試してました。
う〜んどこがおかしいんだろ
あと、折角教えて頂いたんですが、XPだと日本語使えない様で実用にはならないみたいですね
"参考ページ" をリロードしてみて下さい。
おぉ、態々ありがとうございます
コンボボックスはVista以降なんですね
結局エディットでも機能しませんでしたが、XPだと駄目駄目みたいなんで
他の方法を模索します
>>929 Integer突っ込むだけならNewなんてしなくてもキャストだけでよくねえか?
>>938 後だしでスマン
後々、ほかの型を突っ込みたいとき(今ならジェネリックスか?)、
修正範囲を狭く出来るから。
TListのまま、integer型の値入れるのは、問題あり(修正箇所が散らばるという点で)だけど、
今回の例は、派生クラス作るので、キャストでも問題ないか...
|PANEL1|PANEL2|
となってるとき、間のSPLITTERでサイズを変えると
PANEL2の幅はそのままでPANEL1のサイズとClientWidthのサイズが変わるようにするのってどうやるの?
941 :
928:2009/11/22(日) 22:41:05
>>929 俺はTObjectListを多用する方だけど
プリミティブな型を入れるのにはTList系を使わないので
そういう発想はなかったわ。
今回はIntegerだったり配列だったりするので、
言われるとおりクラスを作っちゃうのもいいかもね。
>>940 MinWidthとMaxWidthをWidthと同じにする
例えば拡張子.aaaをクリックすると自作アプリが起動し、
その.aaaファイルに記載されている情報を
自作アプリに反映させたいのですが、どのような方法がありますか?
関連付けして、ParamStr(1)を読む。
>>941 バージョンは?ジェネリクス使えるならそっちでいいと思うけど
946 :
928:2009/11/23(月) 19:59:28
俺
>>926じゃないよ。
ちなみに知識はD7で止まってる。
今って無料で公式が作ってるDelphiを手に入れる方法って書籍のCDROMくらいでしょうか。
VSExpressとかが出揃ってるのに、こんなに出し渋ってるとユーザー離れが進むだけだと思うのですが
何かいいことってあるんですかね…
無料の時代は終わりました。
今世紀中に、フリーペーパーはおろか、フリーソフトやフリスビーもこの世から消えるでしょう。
無料でばらまいて手広くやるよりは単価を上げて企業向けに特化したということだろう。
ホビーグラマは素直にC#とかに行った方がいい。
残念な話ではあるけどもうどうにもならないだろう。
個人ユーザーの裾野が広がったら金かかるだろ
>>949 C#って.net framework上じゃないと動かないですよね
Javaもランタイムが必要だし
今は移植性を重視してこういう言語が流行ってるのかな?
デルヒみたいにexeですぐ実行ってプログラム作りたいなら、やっぱC++とかを勉強しないとダメかな?
デルヒのスレで聞くのもあれですが。
D7使いの俺はどうしたらいい?
>>951 今時数千円くらいのエントリCPUでもそんなに重くないし
ランタイムがどーたらというのはあまり意味のない拘りに思えるけどね。
デコンパイルを嫌がる人にとってはでかい制約かもしれないけど。
なんにしろネイティブコンパイルしたいって明確な目的があるならまだDelphiも悪くないよ。
処理系はオークションあたりでまだ手に入るんじゃないの。
ところでデルヒとはなんですか?
>>953 確かに、性能向上により、Javaが遅いとかは戯言だとは思うのですが
われわれが自分の環境で実行するならともかく、いろんなレベルの人に幅広く使ってもらうには
コンパイルされたものだけを実行すれば良いという方が理想ですよね
しかも.net frameworkで作ったソフトはオープンソースとまで揶揄されてますよね…
実行環境は私は持っています ありがとうございます
ユーザー離れっていうか無料ユーザ抱えてもデメリットしかないしな
サポート対象外とは言ったってパッチ出したり実質サポートの手間が発生するし
>>949 FreePascalあるじゃん
>>953 最近じゃオークションで手に入れるのはまず不可能に近い気がする
かなり粘れば出るかもしれないけど、まず見かけない
アマゾンの横流し野郎が出してるの位しか見たこと無いわ
リンクリストみたいなのにEnumerator実装してfor-in-doでループ書きたいんですが、
下記のコードでは変数が2つ必要な辺りが無駄っぽいですし、もう少しシンプルに書く方法ってありますか?
type
TLinkedListEnumerator = class
private
FCurrent, FNode: TNode;
public
constructor Create(AList: TLinkedList);
function MoveNext: Boolean;
property Current: TNode read FCurrent;
end;
constructor TLinkedListEnumerator.Create(AList: TLinkedList);
begin
inherited Create;
FNode := AList.First;
end;
function TTreeNodeEnumerator.MoveNext: Boolean;
begin
FCurrent := FNode;
Result := FCurrent <> nil;
if Result then
FNode := FNode.Next;
end;
MoveNext実装部のクラス名が変ですが気にしないで下さいorz
959 :
デフォルトの名無しさん:2009/11/24(火) 22:34:46
D7から2010への乗換えを検討してます
とりあえず体験版を入れて既存のプロジェクトをコンパイルしてみたんですがエラーがいっぱい出ました
予備知識ゼロなんですが、乗り換えに際して変更点とか注意点とか纏めてるページってありませんか?
纏める程注意点なんてない
なんのためのエラーなのかと
D7で当然コンパイル通るのがエラーって言われるから困ってるんだけど馬鹿ですか?
仕様変更について知らなければエラーの意味さえ分からないし、ソース見れないから原因追求も困難
じゃあもうそんな糞ソフトアンインストールした方が良いな。
ここのウンチ・・・じゃなくてアンチはがんばるなぁ〜
そんなどうでもいいレスする時間があるならその1/10でもいいから時間を使ってググった方が速いよ
馬鹿だから無理かもしれないけど
まあ、ここは超初心者スレな訳だけど
こんなエラーが出て、回避策がわからないとか
何故、エラーなのかわからないとかって感じの
具体的な質問ならちゃんとしたレスが返るだろうけど
ただ、唐突に、エラーが出る。なんとかすれ・・・って感じだから、バカだねというレスしか付かないわなぁ。
コンパイラのバージョンUPでエラーが出るのは、とくに珍しいことじゃない。ごくごく普通。
下位完全互換なんて謳っているコンパイラなど存在していない。
質問内容的には超初心者を受け入れるってことだけど
常識性が劣悪超初心者的な質問は、結局こうなるよねぇ。
釣られんなよ
アンチの工作質問なんだから
967 :
デフォルトの名無しさん:2009/11/25(水) 06:15:27
delphi6personalのインストールCDは持っているのですが、ライセンスキーがありません
今でも正規のライセンスを得る事は出来ないのでしょうか?
>959
> 予備知識ゼロなんですが、
初心者なんですが、っていうのと同じくらいダメな質問だと思うんだが。2009/2010は2007および
それ以前のバージョンとは断絶がある。きちんと変更点を調べて、その上で事に当たるのが望ましい。
従来のコードが通らない最大のポイントは文字/文字列のUnicode(UTF-16)化で文字列の
各要素であるCharが16bitになったことと、サロゲートや結合文字などを除き1文字がChar1つで
表されるようになったこと、これらに伴ってRTL/VCLのライブラリ関数が変更になったことだ。
おまいら質問にちゃんと答えろ。
>>959は纏めてるページってありませんか?って訊いてるんだから
無い!でいいだろ。
Excelのある範囲(仮にA1〜B10とします)の値を、一度で二次元配列に取得したいのですが、
どのようにすればいいのでしょうか?
下記のソースだと、for ix := Low(aryDt) to High(aryDt) do の行で
「互換性の無い型です」のエラーとなりコンパイルが通りません。
使用しているのは、Turbo Delphiです。
よろしくお願いします。
procedure TF_Main.B_ExcelClick(Sender: TObject);
var
E_Excel : Variant;
E_Application : Variant;
E_WorkBook : Variant;
E_WorkSheet : Variant;
aryDt : Variant;
ix,iy : Integer;
TotalAmt : Integer;
begin
// Excelをオープン
(中略)
// A1〜B10の値を一度に取得
aryDt := E_WorkSheet.Range['A1:B10'].Value;
TotalAmt := 0;
for ix := Low(aryDt) to High(aryDt) do // 互換性の無い型?
begin
for iy := Low(aryDt[ix]) to High(aryDt[ix]) do
begin
TotalAmt := TotalAmt + aryDt[ix][iy]; // A1〜B10の値を合計する。
end;
end;
end;
バリアント配列はVarArrayLowBound,VarArrayHighBound使うんじゃ?
>>957程度の質問にも答えられないなんて、Delphiスレはレベルが低いですね
それにC#ならこんなのもっと簡単に書けるのに(笑)
煽っても何も出てきませんよw
出てこないんじゃなくて無理なんでしょ?
馬鹿だからDelphiみたいな糞言語に必死でしがみついてるわけだし
その馬鹿に必死に噛み付く人間もいるんだわ
大変だね
978 :
デフォルトの名無しさん:2009/11/27(金) 20:55:03
天才言語DELPHIができる人ってすごいですねー
できない人よりはすごいかもな
980 :
デフォルトの名無しさん:2009/11/27(金) 21:39:28
希少言語、日本語できるひと凄いかも
お前は上手に扱えてないみたいだしな