AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Typen varibel machen?

Ein Thema von Taladan · begonnen am 11. Jan 2006 · letzter Beitrag vom 11. Jan 2006
Antwort Antwort
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#1

Typen varibel machen?

  Alt 11. Jan 2006, 16:58
Wenn man so einen Typen deklariert im Interface Teil

Delphi-Quellcode:
type
  ItemCollections = (A_Test1, A_Test2, A_Test3, A_Test4);
Ist dies ja eine Constante. Kann man diese Konstante irgendwie Variabel bekomen? Problem ist, das dies nicht zu einen Array werden darf, sondern letztliche eine Konstante bleiben muß. Warum? Wenn ich eine Eigenschaft als Constante deklariere brauch ich keinen eigenen Eigenschaftseditor. Was ich bei einer simplen Auflistung einfach zu viel des guten ansehe.
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Typen varibel machen?

  Alt 11. Jan 2006, 17:03
Hmmm *les*



*nochmal les*



Entweder liegts an mir oder an die das ich dich nicht versteh
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Typen varibel machen?

  Alt 11. Jan 2006, 17:07
ItemCollections ist keine Variable, das ist ein Typ. Es wäre konventioneller es TItemCollections zu nennen.

Jetzt kannst du Variablen von diesem Typ erstellen:

Delphi-Quellcode:
var
  itemcollection:itemcollections;
begin
  itemcollection:=a_test1;
end;
außerdem werden "Aufzählungstypen" immer mit 2 Buchstaben vorne in jeder Eigenschaft benannt, also etwa so:
Delphi-Quellcode:
type
  tdelphiforum=(dfdelphipraxis,dfdelphiforum,dfdsdt);
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Typen varibel machen?

  Alt 11. Jan 2006, 17:13
Ups, gilt eigendlich für .Net aber egal.

Also, wenn ich eine Property als o.g. Aufzählungstyp definiere, dann stellt der Objekt-Inspektor eine Liste bereit, die sich nahtlos einfügt. Leider kann man diese Liste scheinbar nicht manuell erzeugten (daran verzweifle ich im Moment), siehe Posting
http://www.delphipraxis.net/internal...ct.php?t=72418

Nun möchte ich einen solchen Aufzählungstyp per Code erzeugen lassen. Geht das?
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Typen varibel machen?

  Alt 11. Jan 2006, 17:19
was heisst nicht manuell erzeugen?
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Typen varibel machen?

  Alt 11. Jan 2006, 17:27
Man kann einen eigenen PropertyEditor erschaffen, was das für unnöte Arbeit ist kannst du dir denken. Funktioniert ungefähr so.

Delphi-Quellcode:
function AktivePageEditor.EditValue(context: ITypeDescriptorContext;
  provider: IServiceProvider; value: TObject): TObject;
var
  wFes : IWindowsFormsEditorService;
  DropDown : ListBox;
  control: Talaspanel;
  i,f : Integer;
begin
    control := context.Instance as Talaspanel;
    wfes := (IWindowsFormsEditorService(provider.GetService(TypeOf(IWindowsFormsEditorService))));
    DropDown := ListBox.Create;
    DropDown.BorderStyle := BorderStyle.FixedSingle;
    for i := 0 to Control.Items.Count-1 do begin
      if (control.Items[i] as PanelItem).Name <> nil then
        DropDown.Items.Add((control.Items[i] as PanelItem).Name)
      else
        DropDown.Items.Add(control.Items[i]);
    end;
    wfes.DropDownControl(DropDown);
    if (Value <> nil) then begin
      f := DropDown.FindString(Value as String);
      if f <> -1 then begin
        Messagebox.Show(f.ToString);
        DropDown.SelectedItem := (Value as String);
      end;
    end;
    if DropDown.SelectedIndex <> -1 then
      result := (control.Items[DropDown.SelectedIndex] as PanelItem).Name;
end;
Dann kommt noch hinzu, das du jedes Event schreiben mußt, um das Click oder das Escape Verhalten für die Maus und dann noch das selbe für die Tastatur festzulegen usw. Dieses kann ich mir mit eienr Aufzählung spaaren. Jedoch kann man diese Aufzählung (das angezeigte Element wenn man auf den Pfeil klickt) nicht manuell erzeugen. Die Klasse (bei mir eine ListBox) muß es gehen, jedoch scheint diese keinen hier bekannt zu sein, davon mal abgesehen, ob diese überhaupt zugänglich ist, da ich auch mit Google nichts finde (meistens wird die Listbox genommen).
Diese Prozedure oben muß ich für jede Liste neu schreiben .
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Typen varibel machen?

  Alt 11. Jan 2006, 19:37
Vielleicht klärst du uns mal auf, ob du nun einen richtigen Container oder nur eine Flags in deinem Editor bearbeiten willst.
Für Flags ist das ziemlich easy, da der code immer der gleiche ist.
Lassen sich die Items des Containers in Strings umwandeln ist es auch dort möglich den gleichen Editor für mehrere Container zu nehmen.
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Typen varibel machen?

  Alt 11. Jan 2006, 21:34
Die Eigenschaft soll nur eine Auswahl werden, die sich allerdings nach dem Property (ist ein kontainer) Items richtet. Die Eigenschaft soll den jeweiligen Namen der sich in Items befindlichen Komponenten (hier Panels) anzeigen und zum Auswählen anzeigen. Sobald eines der Items ausgewählt wird, wird die Komponente neu gezeichnet (im Moment noch soll ).

Also handelt es sich im Prinzip nur um ein dynamisches Array of Strings.
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:47 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