function TForm103.Rette(Dato: TDateTime; F: TCoordinates): TModalResult; begin Label3.Caption := Global.UgeDag.Items[DayOfWeek(Dato + F.X)]; Label1.Caption := DateToStr(Dato + F.X); // Dato der henvises til. Label2.Caption := IntToStr(F.Y) + ':00 - ' + IntToStr(F.Y + 1) + ':00'; // Tidspunkt der henvises til.
Studio.ItemIndex := F.Z; // Studio der henvises til
// Label4.Caption := IntToStr(F.Z);
Form103.ShowModal; Rette := ModalResult; end;
procedure TForm103.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_Cancel : ModalResult := MrCancel;
else
end; end;
end.
TCoordinates er en record med tre numeriske værdier, X, Y, Z. Studio er en TRadioGroup, og indeholder fire linier. Formen åbnes fra et andet sted via public function Rette(). Det er linien "Studio.ItemIndex := F.Z;" der driller. // Label4.Caption := IntToStr(F.Z); er sat på for at se om F.Z overfører den rigtige værdi, og det gør den. Første gang formen vises, reagerer "Studio.ItemIndex := F.Z;" korrekt, men de næste gange gør den ikke. Hvad gør jeg forkert?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Det skal du rette ALLE steder i TForm103 procedurende, åg så kan du spørge igen hvis det ikke hjælper, det gælder forøvrigt gennerelt at du SKAL ref. til formen-selv med self. og IKKE din form-var !
Det er linien "Studio.ItemIndex := F.Z;" der driller. Første gang formen vises, reagerer "Studio.ItemIndex := F.Z;" korrekt, men de næste gange gør den ikke.
At jeg ændrer Formshow, hjælper ikke på mit problem.
du skulle overveje at lave din kode RIGTIGT, det er skrub-forkert at du refferer til form-var'en inde i formens egne procedurer, hvilken kan gi nogle mærkelige fejl....
Og jeg må tilstå jeg ikke gider spilde tid på noget kode der er skrub-forkert kodet....
Jeg har rettet det du skrev til; procedure TForm103.FormShow(Sender: TObject); begin Self.Top := Unit59.Top + 40; Self.Left := Unit59.Left + 200; end;
Men hvad har det at gøre med at man ikke kan ændre hvilken knap der er valgt i en TRadioGroup, i runtime?
Du skriver "det er skrub-forkert at du refferer til form-var'en inde i formens egne procedurer, hvilken kan gi nogle mærkelige fejl...."
Hvordan vil du så sikre at din form er placeret på det rigtige sted?
Mit program er designet således at hvis brugeren farer vild, så kan vedkommende bare trykke på "ESC" en hel masse gange, og så prøve igen, og alle formene er placeret der hvor man forventer, med default indstillingerne. Og det kan jeg kun gøre ved at ændre på formens propeties, og default indstillingerne.
du skal rette det alle steder i alle form-procedurende, ellers kan du komme ud for at dine procedure retter på form-var'en selv om du evt. bruger en anden instance og du kan få fejl hvis din form-var slet ikke er created osv.... så det skal du starte med.
Hvordan vil du så sikre at din form er placeret på det rigtige sted? --> ved at bruge self. så sikrer du at det altid er aktuelle instance du arbejder på :-)
ps. så vit jeg husker var der nogle ting med combobox og itemindex, måske der også er det med radiogroup
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.