Besser konnte ich's auf die schnelle nicht betiteln..
Ich schreib' grad einen FormularEditor, der dann an Hand einer Liste diverse Controls auf ein Fenster klatschen soll... Soweit klappt das schon ganz proper, jetzt bin ich wieder an einer Grenze angelangt.
Ich habe ein globales Array von TControl gebastelt,
Code:
var
arCtl: array of TControl;
mittels meiner Routinen erstelle ich die diversen Controls, zB:
Code:
procedure MSK_Edit(s:string;p:TForm;o:TComponent);
var
rC: rCtl; //BESCHREIBUNG DES CONTROLS
i: integer;
begin
rC:=MSK_Coords(s); //BESCHREIBUNG HOLEN
i:=MSK_NewIndex; //NEUEN INDEX HOLEN
arCtl[i]:=TEdit.Create(o); //CONTROL ERSTELLEN
arCtl[i].Parent:=p; //PARENT EINTRAGEN
arCtl[i].Left:=rC.myL;
arCtl[i].Top:=rC.myT;
arCtl[i].Width:=rC.myW;
arCtl[i].Height:=rC.myH;
if rC.myCC='N' then (arCtl[i] as TEdit).CharCase:=ecNormal;
if rC.myCC='U' then (arCtl[i] as TEdit).CharCase:=ecUpperCase;
if rC.myCC='L' then (arCtl[i] as TEdit).CharCase:=ecLowerCase;
(arCtl[i] as TEdit).MaxLength:=rC.myML;
myCtl:=arCtl[i];
if rc.PC='J' then (arCtl[i-1] as TLabel).FocusControl:=myCtl; <--------------- GENAU HIER KLEMMTS WIEDER MAL...
end;
soll dieser Code ein EditFeld am Form darstellen, tut er auch recht brav. Dann bin ich auf die Idee gekommen, dass ja vor jedem Edit-Feld üblicherweise ein Label ist. In meiner Liste der Beschreibung steht das Label-Feld vor dem Edit Feld. Jetzt sollte beim Label-Feld als .FocusControl das darauf folgende Edit-Feld eingetragen werden können, damit der Anwender mit ALT-Buchstabe auf's Label fokussieren kann (bzw. Versucht) und das Label den Fokus auf das passende Edit-Feld durchreicht... Hoffe es kann mir da noch jemand folgen?
Wenn ich's mit dem Code im obigen Beispiel verwende meint der Compiler frecherweise, dass ich wieder mal Äpfel (TWinControl, welches er erwarten täte) mit Birnen (TControl, welches ich sichtlich übergebe) verwechsle... rc.PC bedeutet ungefähr "Previous Control", wenn da nen "J" drin ist soll das vorig erstellte Control (=Label) eben diesen Eintrag bekommen...
Ich bitte wieder um Ideen/Lösungsansätze...
greetz, Joerginger