Arsip: set property komponen saat runtime?

 
user image
more 13 years ago

ianhade

temen2 mau minta bantuannya lg, misal sy create komponen TEdit pd saat runtime. Setiap nge-create, nama komponennya disimpan di database(Edit1,Edit2,Edit3..dst). jd setiap form muncul(onshow) komponen didalam di database td ditampilkan(di create). pertanyaannya, gmana cara agar setiap komponen yg sudah di create/muncul bs sy set property nya pd saat runtime?
user image
more 13 years ago

DelphiExpert

Yang pasti property yang diinginkan harus disimpan di suatu tempat dengan suatu format / cara. - Cara paling mudah adalah menyimpan property2 yg diinginkan dalam format IniFile (simpan dalam DB/Table dengan field-type BLOB).

IniFile.WriteString('Edit1', 'Text', Edit1.Text);
...
- Cara dinamis lainnya adalah memanfaatkan RTTI (google please), simpan dalam DB/Table dengan field-type BLOB)
user image
more 13 years ago

ianhade

Yg sy bingung pd saat memanggil/menulis "Edit1.Text" karna tdk dikenali oleh delphi. Dan pd saat design code tidak ada komponen vcl apapun, karna semua jenis/nama komponen diambil dr database saat runtime. Jd klo sy tulis
IniFile.WriteString('Edit1', 'Text', Edit1.Text);
mungkin tdk bs jalan karna hal td (komponen edit1 tidak dikenali pd saat design code). CMIIW. ini contoh filenya ato source code nya : contoh.7z

procedure TForm1.FormShow(Sender: TObject);
var
  edt:TEdit;
begin
  with ADOQuery1 do
  begin
    Close;
    SQL.Text:='SELECT * FROM komponen';
    Open;
    First;    
    while not eof do
    begin
      edt:= TEdit.Create(form1);
      with edt do
      begin
        name:=FieldByName('nama').AsString;
        Text:=FieldByName('nama').AsString;
        Visible:=True;
        Left:=FieldByName('x').AsInteger;
        Top:=FieldByName('y').AsInteger;
        Parent:=Form1;
      end;
      Next;
    end;
  end;
end;
Yang sy inginkan mengubah teks pd Edit1 pada saat tombol di klik. untuk yang RTTI msh sy pelajari dulu, tp klo ada solusi yg lebih simple mohon dibantu ya kk. trima kasih.
user image
more 13 years ago

DelphiExpert

Edit1 satu itu object yang mana? Edit1 = edt:TEdit; ? atau Edit1 = Sudah tersedia di form?
user image
more 13 years ago

ianhade

Edit1 dicreate oleh edt:TEdit saat aplikasi dijalankan, Edit1 tidak ada di form pd saat design code, jd hanya muncul pd saat runtime. maaf klo pertanyaannya kurang jelas.
user image
more 13 years ago

ianhade

maaf sy sundul lg kk hehe, blum ketemu solusinya.....
user image
more 13 years ago

iwancs

Jangan pake Edit1, karena Edit1 tidak pernah ada di runtime maupun di design time, untuk bisa menset property text dari komponen edit yang sudah dicreate, bisa pake cara berikut: procedure SetText(AName: string;AValue: string); var cmpTemp : TComponent; begin cmpTemp := FindComponent(AName); if (cmpTemp <> nil) and (cmpTemp is TEdit) then begin TEdit(cmpTemp).Text := AValue; end; end; Dicoba dulu yee, Iwan
user image
more 13 years ago

ianhade

terima kasih banyak mas iwan......udah bisa, code nya berfungsi dgn baik. thx juga buat DelphiExpert yg udah bantu cari solusi. skalian mo ngucapin, Marhaban Yaa Ramadhan... Selamat menjalankan ibadah puasa... Mohon maaf lahir & batin ....
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com