Avatar billede ossi Nybegynder
30. marts 2002 - 07:44 Der er 16 kommentarer og
1 løsning

Kalde en form via String--IGEN!

Hej,

Sidst jeg kom med spørgmsålet fik jeg et svar.. Den kode jeg fik virkede bare ikke :)

Her er spørgmsålet igen:

Jeg har en string som indeholder navnet 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 speedy Nybegynder
30. marts 2002 - 08:22 #1
Hej,

Det var mig der lavede koden fra dit sidste spørgsmål: http://www.eksperten.dk/spm/190924

Det virkede da fint dengang ? Men hvis vi skal hjælpe, bliver vi nødt til at vide hvad det er der ikke virker ved koden.

Altså hvorfor virker den pludselig ikke mere ?

/SpEeDy
Avatar billede ossi Nybegynder
30. marts 2002 - 08:28 #2
Hej,

Den har aldrig virket!! Jeg fik bare ikke testet den inden jeg gav point...!

Det der ikke virker er som "ham den anden" (kan ikke huske hans navn) sagde: Man kan ikke typecaste en TForm en String; eller noget i den retning :)

Det er den vigtigste del af mit program og derfor ret vigtigt at det kommer til at virke!!

Du er her : Eksperten : Programmering : Delphi : Kalde en form via String--IGEN! :
Kalde en form via String--IGEN!    60 point fra ossi
Hej,

Sidst jeg kom med spørgmsålet fik jeg et svar.. Den kode jeg fik virkede bare ikke :)

Her er spørgmsålet igen:

Jeg har en string som indeholder navnet 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 speedy Nybegynder
30. marts 2002 - 08:34 #3
jamen det er umuligt at typecaste en string til en TForm. (som laffe også sagde i sidste spørgsmål)

Den procedure jeg lavede virkede, og jeg har testet det. Det er selvfølgelig vigtigt at formens navn er angivet med de præcise samme store og små bogstaver.

Jeg har rettet den så den er ligeglad. Jeg ved ikke om det var det der var fejlen, men prøv igen...

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 (lowercase(Application.Components[i].Name) = lowercase(FormName)) then
        (Application.Components[i] as TForm).Color := FormColor;
    end;
end;


En anden gang så lad være med at acceptere før du er tilfreds med svaret eller har testet det i hvert fald.

Hvis den nye procedure heller ikke virker, ja så må du gerne sende mig dit program (Hvis det ikke er noget vildt hemmeligt/kommercielt som du ikke vil vise) på speedy@espeedy.dk  så vil jeg gerne kigge på hvorfor den ikke virker...

/SpEeDy
Avatar billede ossi Nybegynder
30. marts 2002 - 08:41 #4
OK... Jeg tester den om lidt...

Men jeg tror ikke det var det der var galt!!

Det er en længere funktion!!

Den henter navnet et andet sted fra...1

men jeg kan da prøve din procedure igen... Ellers sender jeg dig bare sourcen!!

Du er her : Eksperten : Programmering : Delphi : Kalde en form via String--IGEN! :
Kalde en form via String--IGEN!    60 point fra ossi
Hej,

Sidst jeg kom med spørgmsålet fik jeg et svar.. Den kode jeg fik virkede bare ikke :)

Her er spørgmsålet igen:

Jeg har en string som indeholder navnet 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 ossi Nybegynder
30. marts 2002 - 08:43 #5
Hmm... Der går da vist noget galt for min computer med Copy 'n Paste... Sorry for de gengivne indlæg!
Avatar billede speedy Nybegynder
30. marts 2002 - 08:44 #6
Det er i orden...jeg skal nok kigge på den hvis du sender..

Du behøves ikke at sende spørgsmålet med i hver post du laver :)

/SpEeDy
Avatar billede speedy Nybegynder
30. marts 2002 - 08:44 #7
hehe så ikke lige din sidste kommentar :)
Avatar billede ossi Nybegynder
30. marts 2002 - 11:12 #8
Det virker!!

Du får nogle Point... TAK!
Avatar billede speedy Nybegynder
30. marts 2002 - 17:34 #9
Nej, tag dem selv...Jeg fik jo pointene i sidste spm...

/SpEeDy
Avatar billede Slettet bruger
30. marts 2002 - 22:34 #10
Se Her

Mvh. Simon
Avatar billede Slettet bruger
30. marts 2002 - 22:35 #11
Avatar billede speedy Nybegynder
30. marts 2002 - 23:06 #12
Det var faktisk en meget smart funktion jeg ikke har set før...

ossi>>I dit tilfælde kan du bruge den sådan her i stedet for min gamle funktion:

  (Application.FindComponent('form1') as TForm).Color := clRed;

/SpEeDy
Avatar billede borrisholt Novice
02. april 2002 - 07:56 #13
har i tænkt på FindComponent er Case sensetive således hvis din form hedder "Form1" så virker
(Application.FindComponent('form1') as TForm).Color := clRed; Ikke ? og omvendt ?

Jens B
Avatar billede speedy Nybegynder
02. april 2002 - 10:07 #14
Jens>>Den er faktisk IKKE case sensitive :) Jeg har lige testet og den er ligeglad om man skriver FoRm1 eller form1 eller FORM1

/SpEeDy
Avatar billede borrisholt Novice
02. april 2002 - 10:08 #15
hmmn ... så blev jeg så klog :-)
Avatar billede borrisholt Novice
03. april 2002 - 08:36 #16
Skal i ikke snart have lukket dette spm ?

Jens B
Avatar billede ossi Nybegynder
05. april 2002 - 12:10 #17
Jeg tager dem så selv :-)
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