PSN jschut_82 | Xbox: JSchut82
Verwijderd
ik heb ook al es zowiets gehad... het "eval" van delphi maar dat was met tabellen en k weet niet meer precies hoe t zat. maar t gaat wel
Z'n index gebruiken.
oogjes open, snaveltjes dicht
ik weet z'n index niet alleen de naam
PSN jschut_82 | Xbox: JSchut82
Verwijderd
Je hebt de naam dus zal het vrij eenvoudig zijn om je TButton op te zoeken.Op dinsdag 14 mei 2002 10:26 schreef JSchut het volgende:
ik heb een aantal buttons die het button1 button2 enz....
nu heb ik alleen het nummer dus bijv 2
dan maak ik een string met als value button2
en als naam deleteButton
Hiervoor gebruik je de Button zijn parent.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| procedure TForm1.Button1Click(Sender: TObject);
const
sName: String='';
C: TComponent=nil;
begin
sName := InputBox('Voorbeeld', 'Voer component naam in:', 'Button1');
if sName<>'' then
begin
C:=FindComponent(sName);
if Assigned(C) then
C.Free;
end;
end; |
Dit voorbeeld spreekt voor zich.
Eventueel kun je de regel if Assigned(C) then vervangen door:
code:
1
| if (Assigned(C)) and (C is TButton) then |
In bovengenoemd geval zal alleen de knop worden vrijgegeven als deze een TButton is.
Dit mag niet omdat je appels met peren vergelijkt, strings met TCOmponents. Probeer bovengenoemd voorbeeld maar eens toe te passen op jouw toolbar.Form1.Toolbar1.deleteButton.destroy Mag niet
omdat deleteButton niet bestaat als button naam
Extra tipje: GEBRUIK GEEN DESTROY! Gebruik Free, veel veiliger. Wil je het helemaal goed doen dan gebruik je FreeAndNil(); Oh ja, bij een afgeleide van TForm kun je beter Release gebruiken.
Veel suc6.
Verwijderd
waarom gebruik (misbruik) je writeable typed constants hiervoor?Op dinsdag 14 mei 2002 10:55 schreef hvdberg het volgende:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13procedure TForm1.Button1Click(Sender: TObject); const sName: String=''; C: TComponent=nil; begin sName := InputBox('Voorbeeld', 'Voer component naam in:', 'Button1'); if sName<>'' then begin C:=FindComponent(sName); if Assigned(C) then C.Free; end; end;
je kan beter var's gebruiken, omdat type-constants ook geheugen in beslag nemen, als je niet in de procedure zit.
Jouw code werkt trouwens niet in delphi 6 tenzij je {$J+}
of {$WRITEABLECONST ON} doet.
Verwijderd
Is gewoon mijn manier van programmeren (niet bewust gebeurd) aangezien ik mijn declaratie en assignment in één statement heb. Nou is dat voor Delphi-strings niet nodig maar een integer wordt standaard niet naar gezet.Op dinsdag 14 mei 2002 11:01 schreef deur het volgende:
waarom gebruik (misbruik) je writeable typed constants hiervoor?
[/quote]
je kan beter var's gebruiken, omdat type-constants ook geheugen in beslag nemen, als je niet in de procedure zit.
Jouw code werkt trouwens niet in delphi 6 tenzij je {$J+}
of {$WRITEABLECONST ON} doet.
[/quote]
Delphi 5 gebruikt
Pagina: 1