Avatar billede ossi Nybegynder
28. marts 2002 - 09:56 Der er 4 kommentarer og
1 løsning

Kalde en form via en string...

Hey alle jer Delphi-genier,

Jeg har en string som indeholder <b>navnet</b> på en form...

Nu vil jeg så gerne, ud fra det navn der ligger i stringen, lave farven om på formen...

Hvordan gøres dette??

Jeg har prøvet med: TForm(MinString).Color := clBlack; men det virker ikke!!

Plz help... Vigtigste del i programmet!!

[.:saBA:.]
--> Henrik Ossipoff Hansen
<-- InetSoft - We make your software!

"To Think, or not to Think - That's the Quest... ThinkQuest!!"
Avatar billede laffe Nybegynder
28. marts 2002 - 10:01 #1
I din applikation har du en global variable der hedder Application. Denne variable indeholder en liste over alle TComponents i din application.

Det du kan gøre er at lede efter en TComponent med navnet=MinString, hvis du finder en TComponent nevnet, så kan du Typecatse pointeren til en TForm, hvorefter du kan ændre alt det du vil.
Avatar billede ossi Nybegynder
28. marts 2002 - 10:04 #2
Hmm...

Jeg er desværre ikke så meget Delphi-nørd så jeg forstod alt det...

Kan du ikke give et eksempel??

Hvorfor virker det andet egentlig ikke?? Det har jeg da brugt, dog i en anden sammenhæng med andre komponenter, før...!

saBA
Avatar billede speedy Nybegynder
28. marts 2002 - 10:04 #3
Jeg har lavet en lille procedure der kan gøre det for dig:

procedure ColorForm(FormName: string; FormColor: TColor);
var
  i: integer;
begin
  for i := 0 to Application.ComponentCount-1 do
    begin
      if (Application.Components[i] is TForm) and (Application.Components[i].Name = FormName) then
        (Application.Components[i] as TForm).Color := FormColor;
    end;
end;


Du bruger den ved at skrive:

ColorForm('FormensNavn', clGreen);

Så bliver formen med navnet FormensNavn "malet" grøn.

/SpEeDy
Avatar billede laffe Nybegynder
28. marts 2002 - 10:14 #4
Du kan ikke typecaste en String til en TForm. Det kan man ikke.
Avatar billede speedy Nybegynder
28. marts 2002 - 10:18 #5
laffe>>Jeg burde ikke have alle 60 points. Jeg opretter lige et spørgsmål til dig hvor du kan få halvdelen. Du skitserede trods alt hvad han skulle gøre og jeg skrev et eksempel.

http://www.eksperten.dk/spm/190930

/SpEeDy
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester