AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi viele componenten auf visible := false setzen?
Thema durchsuchen
Ansicht
Themen-Optionen

viele componenten auf visible := false setzen?

Ein Thema von Pseudemys Nelsoni · begonnen am 19. Okt 2003 · letzter Beitrag vom 20. Okt 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#11

Re: viele componenten auf visible := false setzen?

  Alt 19. Okt 2003, 19:44
danke dir
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12

Re: viele componenten auf visible := false setzen?

  Alt 19. Okt 2003, 19:52
Zitat von alexander:
Findcomponent sucht in diesem Fall nach den Edits mit dem NAmen "'Edit' + IntToStr(laufVar)", besser geht es wohl nciht...
...weil Delphi sämtliche Komponenten in einer Baumstruktur speichert. So ähnlich wie die Registry. In dem Beispiel wird mit AS TEdit die Suche eben auf den "Zweig" beschränkt, der aus den TEdits besteht und den davon abgeleiteten Typen. Im Prinzip bräuchte man das AS nicht.
Gruß
Hansa
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#13

Re: viele componenten auf visible := false setzen?

  Alt 19. Okt 2003, 20:11
Jupp, genau so.
Nur das man das "AS" meiner Meinung nach schon braucht.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#14

Re: viele componenten auf visible := false setzen?

  Alt 19. Okt 2003, 20:15
konnte nicht gehen, hatte 'ne ")" vergessen:
TEdit(FindComponent('Edit' + IntToStr(I))).Visible := False;

es ist nicht möglich einer Kombination aus Stringkonstannte, Stringfunktion und Eigenschaft einen Wert zu zuweisen:
Zitat:
'Edit' + IntToStr(I).Visible := False;

Add:
Komponente suchen und in TEdit konvertieren:
TEdit(FindComponent('Edit' + IntToStr(laufVar))).Enabled Komponente als TEdit suchen:
(FindComponent('Edit' + IntToStr(laufVar)) as TEdit).Enabled
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#15

Re: viele componenten auf visible := false setzen?

  Alt 19. Okt 2003, 20:36
das:

TEdit('Edit' + IntToStr(laufVar)).Enabled funzt bei mir nicht, ich bekomme eine zugriffsverletzung
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: viele componenten auf visible := false setzen?

  Alt 19. Okt 2003, 20:44
Hi,
dann schreib folgendes:
Delphi-Quellcode:
hCmp := FindComponent('Edit' + IntToStr(i)); // hCmp ist vom Typ TComponent
if (hCmp is TEdit) and (hCmp <> nil) then
  (hCmp as TEdit).Enabled := false
else
  ShowMessage('Error');
Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: viele componenten auf visible := false setzen?

  Alt 20. Okt 2003, 00:33
Moin silent,

Zitat von silent:
das:

TEdit('Edit' + IntToStr(laufVar)).Enabled funzt bei mir nicht, ich bekomme eine zugriffsverletzung
kann auch nicht klappen.

'Edit' + IntToStr(laufVar) ist ein String. Der normale Hugestring ist ein Pointer und mit der o.g. Konstruktion erzwingst Du einen Typecast eines Stringpointers auf einen TEdit Pointer zur Laufzeit, und das führt zur AV, da ein String kein TEdit Objekt ist.

Verallgemeinert:

Mit
TKlassenBezeichner(WasAuchImmerFuerEinPointerHierAngegebenWird) erzwingst Du, dass der in den Klammern stehende Pointer vom Compiler als vom Typ TKlassenBezeicher angesehen wird. Kann man machen, wenn sichergestellt ist, dass der Pointer vom Typ TKlassenBezeichner, oder eine davon abgeleitete Klasse ist.
Wichtig ist, dass der Programmierer bei dieser Konstruktion die Verantwortung dafür übernimmt, dass die Typen zusammen passen.

Machst Du es hingegen so

(WasAuchImmerFuerEinPointerHierAngegebenWird AS TKlassenBezeichner) übernimmt der Compiler schon beim Compilieren die Typüberprüfung, und meckert wenn's nicht passt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#18

Re: viele componenten auf visible := false setzen?

  Alt 20. Okt 2003, 01:07
Uuups!

TEdit('Edit' + IntToStr(laufVar)).Enabled => TEdit(FindComponent('Edit' + IntToStr(laufVar))).Enabled

(siehe Chris)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
InSys

Registriert seit: 20. Okt 2003
Ort: Erfurt/Thüringen
8 Beiträge
 
#19

Re: viele componenten auf visible := false setzen?

  Alt 20. Okt 2003, 01:46
Delphi-Quellcode:
Procedure TForm1.editclear;
Var Count : Integer;
Begin //
 For Count:=0 to ComponentCount-1 do
  If Components[Count] is TEdit Then Begin
                                       TEdit(Components[Count]).Clear;
                                       {edit(Components[Count]).Color:=ClInfoBk;}
                                      END;
end;
[edit=sakura]Delphi-Tag geschlossen Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
InSys

Registriert seit: 20. Okt 2003
Ort: Erfurt/Thüringen
8 Beiträge
 
#20

Re: viele componenten auf visible := false setzen?

  Alt 20. Okt 2003, 01:53


[edit=FuckRacism]Beitrag leserlich gemacht. Aber was soll der Anhang? Ist doch genau des gleiche wie in dem Post davor! Mfg, FuckRacism[/edit]
Angehängte Dateien
Dateityp: txt delphi.txt (346 Bytes, 11x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz