Kezdőoldal » Számítástechnika » Programozás » Lazarus IDE - Lehet-e kóddal...

Lazarus IDE - Lehet-e kóddal megváltoztatni egyszerre több objektum (pl. gomb) tulajdonságait? Pl "Edit[n]. Text. Caption: =. "-nél elvégezni ezt egy for loop-pal n: 1- 10 Edit-re?

Figyelt kérdés
Tehát valahogy becsempészni egy változót a kódba. Előre köszi a választ!

2015. okt. 29. 16:51
 1/7 A kérdező kommentje:

Kis kiegészítés:


Tehát e helyett:

edit1.text:='xy';

edit2.text:='xy';

edit3.text:='xy';

edit4.text:='xy';

edit5.text:='xy';


meg szeretném írni ezt rövidebben, vagy úgy, hogy ezt akár 100+ edit-re is el tudjam végezni 100+ sor nélkül.


A kérdésben elrontottam, nincs olyan, hogy text.caption, elgépeltem.

2015. okt. 29. 17:01
 2/7 anonim ***** válasza:

Delphiben ez működik, valószínűleg Lazarusban is:


for i := 0 to Form1.ComponentCount - 1 do begin

if Form1.Components[i] is TEdit then begin

TEdit(Form1.Components[i]).Text := 'xy';

end;

end;


Ez a kód az összes TEdit objektumnak átírja a Text-jét a Form1-en.

2015. okt. 29. 18:02
Hasznos számodra ez a válasz?
 3/7 SimkoL ***** válasza:

#2 A begin..end elhagyható:


with Form1 do for i := 0 to ControlCount - 1 do if (Controls[i] is TEdit) and (Copy(Controls[i].Name,1, 4) = 'Edit') then TEdit(Controls[i]).Text := 'xy';

2015. okt. 29. 18:23
Hasznos számodra ez a válasz?
 4/7 ejbenjaro ***** válasza:

Létrehozhatod az Editeket dinamikusan is, amelyeket szintén dinamikusan tudsz módosítani is.

pl.:

unit Unit1;


{$mode objfpc}{$H+}


interface


uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;


type


{ TForm1 }


TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);

private

{ private declarations }

EditList: TList;

fMennyi: byte;

public

{ public declarations }

end;


var

Form1: TForm1;


implementation


{$R *.lfm}


{ TForm1 }


procedure TForm1.Button1Click(Sender: TObject);

var

i: integer;

DinEdit: TEdit;

begin

If Edit1.Text<>'' then

fMennyi:=StrToInt(Edit1.text);

EditList:=TList.Create;

For i:=0 to fMennyi-1 do

begin

DinEdit:=TEdit.Create(self);

with DinEdit do

begin

Parent:=self;

height:=27;

left:=10;

top:=112+(i*30);

width:=100;

text:='MyDinEdit - '+IntToStr(i+1);;

end;

EditList.Add(DinEdit);

end;

Label2.Enabled:=True;

Edit2.Enabled:=True;

Button2.Enabled:=True;

end;


procedure TForm1.Button2Click(Sender: TObject);

var

i: integer;

begin

If Edit2.Text<>'' then

For i:=0 to fMennyi-1 do

TEdit(EditList[i]).Text:=Edit2.Text+' - '+IntToStr(i+1);

end;


procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);

var

i: integer;

begin

FreeAndNil(EditList);

end;


end.

2015. okt. 29. 18:33
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Köszi a válaszokat, a dinamikus módot még nem tudom megcsinálni (kb tudom hogy működik, de még nem nagyon foglalkoztam dinamikus létrehozással, csak 4 info órám volt eddig, kicsit előbbre szeretnék menni, órán nagyon lassan haladunk).


Esetleg valaki el tudná magyarázni SinkoL vagy a 2. válaszoló módszerét? Meg hogy hogy lehet specifikusabban, tehát nem minden, csak mondjuk Edit[1,2,3,4]-et állítani, és Edit[5,6,stb.]-t hagyni?


Ha nagyon sok előismeretet igényel, akkor nem muszáj, majd eljutunk órán is biztos, csak érdekel...

2015. okt. 29. 18:47
 6/7 SimkoL ***** válasza:
Mielőtt belekezdenék a magyarázatba tudod-e mi a különbség a Component és a Control között, hogyan működik egy halmaz - felsorolt típus - ...
2015. okt. 29. 20:03
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
Nem, még nem is vettük, hogy azok mik.
2015. okt. 30. 10:45

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!