procedure TForm1.Button1Click(Sender: TObject);
var str1,str2:widestring;
a1:integer;
begin
str1:=edit1.text;
str2:=edit2.text;
a1:=pos(str2,str1);
edit3.Text:=inttostr(a1);
end;
>>899だけど
899で書いたやつより、896さんがいった感じでやったほうが
日本語と英語まざってても対応できるから
こっちのほうがいいね
勉強になったよ、thx
ハードディスクのファイルって本当は全部0と1の集まりなんでしょう?
テキストファイルも0と1の集まりだよね?
このスレの文章も本当は0と1の集まりなの?
Delphiで文章を0と1だけの本当の変換する方法を教えてZ!
>>902 >全部0と1の集まりなんでしょう?
いいえ、違います。
on/offならともかく0と1というのは明らかに間違い。
本当
という文字は
数字で
96 7B 93 96
と表され、これを二進数(0と1の集まり)で表すと
10010110011110111001001110010110
となる。すべてのデジタル情報はこの表記に変換できる。
型識別子を引数にしたいのですがどうかけばよいのでしょうか?
function SizeOf(X): Integer;
function High(X);
function Low(X);
の(X)のように書きたいのですが、このまま書いても「パラメータの型が必要です」と言われてしまいます
function High(var X);
でどんな変数でも取れるけど目的には適わないな。
C#とかののgenericsを使うと実現できるけどDelphiにはない。
IntegerでもStringでもDoubleでもちゃんと処理する関数を書きたいなら
function High(X: Integer): Integer; overload;
function High(X: String): Stirng; overload;
function High(X: Double): Double; overload;
と地道に書くしかない。
質問したそうそうなんですが、
やりたいことは別の方法で実現できました
スレ汚しすいません。
バリアント型とか、TypeInfoを受け取ってRTTIで処理するとか、方法はあるけどね
910 :
デフォルトの名無しさん:04/07/12 16:45
3MBぐらいのビットマップ画像を TImage の Picture プロパティに読み込ませて実行すると
[エラー] RLINK32: Error opening file "C:\Program Files\Borland\Delphi6\Projects\Unit1.dfm"や
[エラー] RLINK32: Error opening file "Unit1.dfm"などのエラーが出てしまいます。
以前は同じ画像を読み込ませても何もエラーが出なかったのですが
なぜか最近エラーが出るようになりました。原因がわかりますでしょうか?よろしくお願いします。
Delphi6のパーソナル版を使用しています。
TImageだけの新規プロジェクトで試してみたら
TForm に TImage だけを貼り付けて試してみたら、ということでしょうか?
やってみました。でも、15秒程度Delphiがストールした状態になり、
その後、同じエラーが出てしまいました。
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
>15秒程度Delphiがストールした状態になり、
そこでDelphiがぶっ壊れてると思わない思考に萌えます
う〜ん・・・
一応Delphiを再インストールしてみたんですが・・・
それから、ファイルに保存してみようとしたら
「メモリストリームの拡大中にメモリが足りなくなりました」
って怒られました。自分のパソコンの問題なのかな('A`)
>>915 Del6Pro+パッチ全部の環境では7MBのファイル一瞬でロードできるな。
単にOSのメモリが足りないんじゃないの。
というか最初からエラーメッセージを書けよゴルァ
↓のような型を自分で作成し、そこに入れたデータをバイナリでファイルにセーブしようと
しましたが、
const CMaxFld = 12;
type TIni = record
TableName: string;
InsertFld: array[0..CMaxFld-1]of string;
UpDateFld: array[0..CMaxFld-1]of string;
UpDateKeyFld: string;
DeleteKeyFld: string;
end;
ファイル型の宣言をした際にコンパイルエラーが発生してしまいます。
var
F: File of TIni;
「'TIni'型は終了処理が必要です。-ファイル型として使うことはできません」
とのメッセージ内容がいまいち分からないのですが、どなたかご教授下さい。
お願いします。
stringは使えない。ShortString使っとけ
ファイルへの書き込みはTFileSream使っとけ。
ありがとうございました。
タイトルバーが消せなくて困っています。
フォーム1を親 フォーム2を子にしてるんですが
親のタイトルバーは消せるんですが子フォームのが消せません。
なぜでしょうか?
>>924 >>808を別に否定はしないが
シーケンシャルなバイナリファイルの読み書きに
TFileStreamが向かない理由とその代案を説明してくれ。
808は無視してよし
MDI子フォームのタイトルバーがなかったら不便だろうなー
ListViewにて任意のセルにユーザー直接文字入力できるよう
設定できるプロパティってありますか?
任意のセルは無理なんじゃないの
仕様だったんでしょうか?
なぜできないのか疑問だっただけなんで。
>>513の質問、誰かヒントだけでも良いのでいただけない
でしょうか。。。完璧に行き詰まってしまっています。
>>931 いろんなやり方があると思うが、
普通のグリッド使って、一括処理、というのもありだと思うよ。
例えば最大99行ぐらいの伝票処理なんかだと特に向いてるかも。
同じ伝票を同時に複数人がカキコすることがある、とかだと難しくなってくるけど。
>>928 つーか、Listviewの各項目はセルとはいわんだろ。
これは純粋にDelphiの問題じゃないのかもしれませんが、
よろしくお願いします。
ビットマップAに背景色と前景色を指定して文字を描画し、
それに少々処理を加えます。ビットマップBには任意の画像が
読み込まれています。
ここでビットマップAの背景色を透明色として、ビットマップAを
ビットマップBにコピーしたいんです。このとき、ビットマップAの
文字のアンチエイリアス処理で生じた半透明の部分も上手く
コピーしたいんです。
こんな場合、どんな方法があるんでしょうか。
BitmapB.Canvas.Draw(x,y,BitmapA);
>文字のアンチエイリアス処理で生じた半透明の部分も上手く
Canvas.Draw だとこれがうまくいかないか
>>935 重ね合わせた後に文字を書くとか?
知らんけど
やっぱアルファブレンドの方法を
ちゃんと勉強しないとだめかな...
C#でGDI+叩けば一発なんだけどな
DelphiでもGDI+使えるよ。
ネットワークドライブの割り当てがされているフォルダがあり
OpenDialogでパスを取得したとき
e:\filder\faile.txt (ネットワークドライブ)ではなく
\\コンピュータ名\filder\faile.txt
にしたいのですがどのようにすればよいでしょうか
おねがいします。
WNetGetUniversalName
bccで作ったobjファイルをリンクしようとしているのですが、
コンパイルすると、
"forward または external 宣言された 'sum' が見つかりません"
というエラーが出ます。
具体的なコードは以下のようになってます。
=== sum.cpp ( bcc32 -c sum.cpp ) ===
extern "C" {
int __stdcall sum(int a, int b)
{
return a + b;
}
}
=== Unit1.pas ( 一部 )==============
{$L sum.obj}
function sum(a: Integer; b: Integer): Integer; StdCall; external;
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageBox(0, PChar(IntToStr(sum(2, 5))), '', MB_OK);
end;
どのようにしたら解決できるか、教えていただけると嬉しいです。
恐らく"sum"ではなく"_sum"になってると思われます
.objをバイナリエディタで開いてみてください
(伝統的にC呼びだし規約はアンダーラインが付く)
ついでに、C呼びだし規約に対応するのはstdcallではなくてcdeclです
Timageをクリックしたときに指定フォルダ(c:\pic\)にある画像(00〜10.bmp)を
ランダムに表示させるにはどうしたらいいでしょうか?
>>945 レスありがとうございます
いろいろ試してわかったのですが、
sum.cpp を sum.c にして作成した obj ファイルだとリンクできました。
extern "C" をつけてるので大丈夫だと思ったのですが、C++だと駄目なようです。
呼び出し規約については、
stdcall でも cdecl でも Cの関数提供側とPascalの呼び出し側で統一してやれば、
問題ないようです。
C++のobjファイルがリンクできないと自分には不便なのですが、
方法はないのでしょうか?
>>946 具体的に何が知りたい?
画像の読み込ませ方?
ファイル名をランダムに得る方法?
誰かTStream のテキストファイル対応版を知りませんか。
ResourceStreamやMemoryStreamから
Readln、Writeln したいのれす。